Automation library

Sync one stock count across Shopify, Amazon, Walmart and TikTok Shop without overselling

Updated · By Ecomsellertool editorial team

Short answer

To sync inventory between Shopify, Amazon, Walmart and TikTok Shop without overselling, keep one stock count in a single source of truth, usually your warehouse or 3PL system, and publish each channel a buffered quantity: sellable units minus a buffer sized to that channel's sales between syncs. Push on every order and stock change, reconcile everything on a schedule, and let a person own the exceptions.

  • Shopify's inventorySetQuantities mutation sets absolute quantities, and Shopify says to use it only on behalf of the system that is the source of truth for inventory (checked October 14, 2026).
  • Amazon's Listings Items API supports quantity for seller-fulfilled (MFN) offers but not for FBA; FBA stock is read through the FBA Inventory API.
  • Amazon's patchListingsItem has a default limit of 5 requests per second with a burst of 5, and an ACCEPTED response means accepted for processing, not applied.
  • Walmart updates seller-fulfilled stock one SKU at a time or in bulk through inventory feeds, and the feed endpoints are throttled.
  • TikTok Shop's Update Inventory call sets quantity per SKU per warehouse and must include every warehouse that stocks the product.
  • In this recipe fixed rules move every number; an AI model only explains unusual sales, and a person owns the exceptions.

The step map: who runs each step

Trigger: Every order, cancellation, return restock or stock adjustment in any channel or the warehouse, plus a full reconciliation of every SKU on a schedule (for example every 4 hours and nightly).

Each step of the workflow in order, and whether a fixed rule, an AI model or a person runs it
StepWhat happensWho runs it
1A change arrives: a new or cancelled order from any channel, a receipt or adjustment in the warehouse system, or a restocked return. The workflow records it against the SKU in one stock ledger.Rule
2Channel SKUs are mapped to warehouse SKUs, and kits and multipacks are converted into their components, so a sale of a 3-pack takes three single units from the shared pool.Rule
3The workflow computes sellable units in the shared pool: on hand at the source of truth, minus units committed to open orders that the warehouse has not yet deducted, minus units on hold.Rule
4For each channel it subtracts that channel's buffer and applies the zero-out threshold, then pushes the new quantity through the channel's own API call, only when the number has changed.Rule
5Each push is checked: Amazon submissions that come back with issues, Walmart feed lines with errors and TikTok Shop calls that fail are retried once, then raised as exceptions.Rule
6An AI model reads the last hours of sales per channel and flags SKUs selling far faster than their buffer assumes, such as a TikTok video or a Lightning Deal, with a one-line reason. It never changes a quantity.AI model
7A person works the exception list: oversells that happened anyway, SKUs where the warehouse and a channel disagree, promotion-locked stock and buffer changes for flagged SKUs.Person
8A scheduled full reconciliation compares every channel's live quantity with what the ledger says it should be, corrects drift and logs every correction.Rule

6 rule steps · 1 AI model step · 1 person step. A rule follows fixed logic you approve; an AI model handles messy input and its output is checked by rules; a person makes the calls listed below.

Person

What stays with a person

  • Orders that oversold anyway: cancel, backorder or source the unit from another location
  • Variances between the warehouse count and the ledger after a cycle count or receiving error
  • Buffer and zero-out settings, and temporary changes for promotions, launches and live sales
  • SKUs whose channel quantity cannot be lowered, such as TikTok Shop products locked by a promotion
  • New SKU, kit and multipack mappings before they go live
Tools

Which tools can run it

  • A multichannel inventory app, when your channels, kits and warehouse are all on its supported list
  • Zapier, Make or n8n for one warehouse and two channels at low volume, with a log of every push and a nightly reconciliation
  • Custom code on your accounts, for several warehouses, FBA plus seller-fulfilled offers, kits and per-channel buffers

Systems it connects

  • Warehouse system, 3PL or ERP (source of truth)
  • Shopify inventory
  • Amazon Listings Items API and FBA Inventory API
  • Walmart Marketplace inventory API and feeds
  • TikTok Shop Products API
  • Slack or email for exceptions

Build size: Medium

Each push is one API call; the work is the SKU and kit map, one trustworthy pool and buffers that match how fast each channel sells.

Overselling is rarely a counting problem. The warehouse usually knows exactly how many units are on the shelf. The trouble is that Shopify, Amazon, Walmart and TikTok Shop each hold their own copy of that number, and each copy is a little late. When the last unit sells on TikTok Shop, Walmart keeps selling it until its quantity changes, and that gap is where the cancelled orders come from. This recipe keeps one count, pushes a buffered quantity to every channel through each vendor's own API call, and hands a person only the exceptions. It is one page of our automation library.

Which system should hold the real stock count?

One system holds the number, and every channel is an output of it. In most brands that is the system that knows what is physically on the shelf: your warehouse system, your 3PL's system or your ERP. If you hold stock in two places, the ledger keeps a count per location and adds up the ones each channel may sell from. Shopify draws the same line in its own documentation. Its inventorySetQuantities mutation sets absolute quantities, and Shopify says to use it only on behalf of a system that acts as the source of truth for inventory, with inventoryAdjustQuantities for everything else (checked October 14, 2026).

The rule that follows is simple: only one tool writes absolute numbers to each channel. When a listing app, a 3PL connector and a spreadsheet import all set Shopify's quantity, each overwrites the others, and the count drifts in ways nobody can trace. Turn off every other writer before this workflow goes live. The one place you do not write at all is Amazon FBA, because Amazon counts that stock itself.

How is stock updated on each channel?

This table is the build spec. Each row names the call the vendor documents, what the vendor states about limits or delays on that page today, the buffer rule we start from, and the exception that stays with a person. Where a vendor page states no limit, the table says so rather than guessing one.

ChannelHow stock is updated thereWhat the vendor documents (checked October 14, 2026)Buffer ruleException a person owns
Warehouse, 3PL or ERP (source of truth)Read on-hand and allocated units per SKU and location from its API or a scheduled fileDepends on the system; log the time of every readNone: this is the real countCycle-count and receiving variances before they flow to every channel
ShopifyinventorySetQuantities with the available quantity per location, plus a compare quantity so the write fails if someone changed it in between; the INVENTORY_LEVELS_UPDATE webhook reports changes made in ShopifyNeeds the write_inventory scope; idempotency keys were optional in API version 2026-01 and are required from 2026-04Small, when your pushes land within minutes of a saleA write rejected because the stored quantity no longer matched: someone edited stock in the admin
Amazon FBANot pushed. Read fulfillable, inbound, reserved, unfulfillable and researching units through the FBA Inventory APIAmazon counts FBA stock; quantity in the listing is supported for seller-fulfilled offers onlyNone on Amazon. Add one if other channels ship from FBA through Multi-Channel FulfillmentResearching and unfulfillable units, and stock that stops counting as sellable
Amazon seller-fulfilled (MFN)patchListingsItem with a merge on fulfillment_availability, channel code DEFAULT, new quantity; JSON_LISTINGS_FEED for bulk updatesDefault 5 requests per second, burst 5. ACCEPTED means accepted for processing; issues found later show up on getListingsItem, not in the responseLarger: a push is accepted first and applied afterSubmissions accepted and later rejected, found by checking the listing after the push
Walmart Marketplace (seller-fulfilled)PUT /v3/inventory for one SKU at the default ship node, PUT /v3/inventories/{SKU} across ship nodes, or a bulk feed (inventory or MP_INVENTORY) through POST /v3/feedsFeed endpoints are throttled: on HTTP 429, wait the seconds in the Retry-After header. No feed size or processing time is statedLarger for SKUs updated by feed; check the feed status before trusting the numberFeed lines that fail, read from the feed status calls
TikTok ShopUpdate Inventory: POST /product/202309/products/{product_id}/inventory/update, quantity per SKU per warehouse_idEvery warehouse that stocks the product must be in the call; a product cannot have more than 100 SKUs; combo stock cannot be edited; a promotion-locked product cannot go below its current stockLargest: live video and creator posts spike sales in minutesPromotion-locked SKUs that cannot be lowered, and combos

Sources for the rows: Shopify's InventoryLevel object tracks available, on-hand, incoming and committed quantities per location, and its webhook topic list describes INVENTORY_LEVELS_UPDATE as occurring whenever an inventory level is updated. Amazon's patchListingsItem reference gives the 5-per-second default and the ACCEPTED status; its merge a listing guide shows a quantity-only merge on fulfillment_availability that leaves restock date and handling time unchanged; the Listings Items use case guide points bulk work to JSON_LISTINGS_FEED and says issues after acceptance appear on getListingsItem; and Amazon's multiple-fulfillment guide says quantity is supported for MFN but not for FBA. The FBA Inventory API defines the five FBA stock states. Walmart's inventory management overview lists the single-SKU and multi-node calls, and its bulk inventory guide covers the two feed types and the throttling. TikTok Shop's Update Inventory reference lists the warehouse, 100-SKU, combo and promotion-lock errors (all checked October 14, 2026).

How big should each channel's buffer be?

Big enough to cover what a channel can sell before its next update lands, and no bigger, because every buffered unit is a sale you turn away. The buffer rule we start from:

Channel buffer = the channel's peak hourly units × hours until an update takes effect (rounded up) + a fixed floor

Published quantity = sellable units in the pool − channel buffer, never below 0, and 0 on marketplaces once the pool is at or below the zero-out threshold

Sellable units in the pool means on hand at the source of truth, minus units committed to orders the warehouse has not yet deducted, minus units on hold. Here is an illustrative example for one SKU with 120 sellable units at a 3PL. The sales rates and update times are assumptions for the example, not vendor figures or client data.

ChannelPeak units an hour (illustrative)Hours until an update takes effect (assumed)FloorBufferPublished quantity
Shopify60.2526 × 0.25 = 1.5, rounded to 2, + 2 = 4116
Amazon seller-fulfilled101310 + 3 = 13107
Walmart (bulk feed)4124 + 2 = 6114
TikTok Shop (live video planned)300.2557.5, rounded to 8, + 5 = 13107

With a zero-out threshold of 10 units, the marketplaces drop to 0 once the pool falls to 10, and the last units sell where a cancellation costs you least, often your own store. The AI model's job is to flag the moment an hourly rate breaks the assumption, such as a TikTok video taking off, so a person can raise that channel's buffer before the pool runs dry. Buffers are not safety stock: safety stock protects you from running out before a supplier delivers, and our low-stock alerts and draft purchase orders recipe handles that side.

How do kits and multipacks fit into one count?

A kit or multipack has no stock of its own. It is a recipe of components, and its sellable quantity comes from the scarcest component:

Kit quantity = the lowest result, across its components, of (component sellable units ÷ units of that component in the kit), rounded down

For example, a gift set with one mug and two coasters, with 40 mugs and 60 coasters sellable, can be published at 30. Sell one gift set on Walmart and the ledger takes one mug and two coasters, which lowers the published quantity of the single mug on Shopify and the coaster 4-pack on Amazon at the same time. Without the component map, each listing looks independent, and the same mug is sold three times.

How often should the sync run?

Two speeds. Push on every event: an order or cancellation from any channel, a receipt or adjustment in the warehouse, a restocked return. Then reconcile in full on a schedule, for example every 4 hours and once a night, comparing each channel's live quantity with what the ledger says it should be. The event pushes keep numbers current; the reconciliation catches what the events missed, such as an Amazon submission that was accepted and later failed, or a Walmart feed line with an error. Only push when a number has changed, so you stay well inside each vendor's throttling.

New orders reach the ledger the same way they reach a warehouse; our Amazon and Walmart orders to a 3PL and Shopify orders to a 3PL recipes cover that handoff, and our order routing page covers which location ships each order.

What stays with a person?

The decisions that cost money or customers. When an oversell happens anyway, a person chooses between shipping from another location, a backorder the customer agrees to, or a cancellation. When the warehouse count and the ledger disagree after a cycle count, a person confirms which is right before the correction flows to every channel. Buffer settings belong to the team that runs promotions, because a planned live sale on TikTok Shop or a Lightning Deal changes how fast a channel sells. And some quantities cannot be lowered by the workflow at all: TikTok Shop will not take a stock level below the current one for a product locked by a promotion, so a person decides whether to end the promotion or accept the risk.

Amazon's own multichannel tools in Seller Central show other channels' orders, but they do not describe pushing stock quantities to those channels, so this layer stays yours. If other channels ship from FBA, read our MCF vs WFS vs a 3PL comparison before deciding how to split the pool, and our stockouts page for keeping that pool full.

Which tool should run it?

The simplest one that sees every channel, every kit and every warehouse you sell from.

LevelFits whenWhat to watch
A multichannel inventory appYour channels, kits and warehouse are all on its supported listMake it the only writer to each channel; check how it handles FBA and buffers per channel
Zapier, Make or n8nOne warehouse, two channels, few kits, modest volumeLog every push and run a nightly reconciliation, or a silent failure becomes an oversell
Custom code on your accountsSeveral warehouses, FBA plus seller-fulfilled offers, kits, per-channel buffers and a reconciliation reportCan run on Ecomsellertool Growth OS beside your order and replenishment flows

When the rules need to forecast demand per channel rather than use a fixed peak rate, the same ledger feeds our multichannel operations agent, which also routes orders. Amazon calls go through the Selling Partner API, and Walmart through the Walmart Marketplace API.

Who builds multichannel inventory sync?

Ecomsellertool builds workflow automation on your own accounts and systems. We have built software on Amazon's seller APIs since 2017, shipped integrations for 20+ marketplaces and 50+ tools for 100+ teams. For inventory sync we map your SKUs, kits and stock locations first, then build the ledger, the per-channel pushes and the exception list. Send a project brief below, or read how our workflow automation service works.

The building blocks are work we have shipped:

  • Kits, multipacks and components in one count. For Cheddy we built stock management software for a business whose Amazon catalog mixed kits, multipacks and single-pack ASINs while the warehouse held components, the mapping that ready-made software handled poorly.
  • Stock-change rules per marketplace. For Ecom Global, a platform built for 100M+ products, 20+ marketplaces and 13+ carriers, we built stock-change rules with zero-out thresholds and push triggers that run per marketplace and per country.
  • Walmart inventory updates. For IVCSR we built an Amazon and Walmart system whose Walmart module creates and updates items, prices and inventory.

Get your inventory sync built

Send us your version of this workflow

Describe the workflow you want automated. We reply with a written plan: scope, timeline and a fixed price.

A few sentences is enough: what happens today, who does it and how often.

Starts when you fill in the form

A quick private check that runs in your browser. No tracking, no puzzles.

A person reads every brief. You get a written plan within 2 business days; no obligation.

Frequently asked questions

How do I sync inventory between Shopify and Amazon to prevent overselling?

Pick one system to hold the real count, usually your warehouse or 3PL, and treat Shopify and Amazon as outputs. On every order and stock change, compute sellable units, subtract a buffer for each channel and push the result: to Shopify with an inventory quantity update, and to Amazon seller-fulfilled offers with a Listings Items update. FBA stock is counted by Amazon, so you read it rather than push it.

Can I set my FBA inventory quantity through the API?

No. Amazon's documentation says quantity is supported for seller-fulfilled offers but not for FBA. Amazon counts FBA stock itself, and you read it through the FBA Inventory API. If you ship Shopify or Walmart orders from FBA through Multi-Channel Fulfillment, the FBA fulfillable quantity becomes a pool those channels share, and it needs its own buffer.

How big should my inventory buffer be for each channel?

Size it to how many units that channel can sell before the next update lands: its peak hourly sales times the hours between syncs, plus a small fixed floor. A store updated within minutes needs a few units; a channel that updates through a slower feed, or one that spikes during live video, needs more. Review buffers when a promotion starts.

How often should multichannel inventory sync?

Push on every order and stock change, then run a full reconciliation of every SKU on a schedule, for example every few hours and once a night. Event pushes keep the numbers current; the reconciliation catches pushes that failed silently or were accepted and later rejected by the marketplace.

Which system should be the source of truth for inventory?

The system that knows what is physically on the shelf: your warehouse system, your 3PL's system or your ERP. Shopify's own documentation says its absolute set call should be used only by the system that is the source of truth. If two tools both write absolute numbers to the same channel, they overwrite each other and the count drifts.

What happens when a sale oversells anyway?

A person decides. The options are to ship from another location, backorder with the customer's agreement, or cancel. The workflow lists every oversell with the channel, the order and the stock at the time, so the team can see whether a buffer was too small or a push failed, and fix the cause.

Jaimin Dholakia, founder of Ecomsellertool
Jaimin Dholakia · Founder
Schedule a call

Get this workflow built on your own systems.

Prefer to talk the workflow through first? Schedule a free call with the engineers who would build it. Selling on Amazon? The free 24-hour diagnostic finds the operations gaps in your account: connect it with Login with Amazon, on Amazon’s own consent screen (we only read data; we never change listings, prices, stock or ads), and get a report within 24 hours of connecting, on business days.

Free · 30 minutes · Pick any open slot