// Writing · Operations

Stock sync will not stop you overselling

Auto sync sounds like one feature. It is three separate problems, and the tools are sold on the one they genuinely solve. The other two are the ones that cost you a cancelled order and a rating.

·9 min readInventoryMarketplaceOversellMulti-channel

In a single day I saw the same question asked four times, by four different sellers, in almost the same words. What do you use to manage stock and POS across Shopee, Tokopedia and TikTok Shop? I need stock to sync automatically, and I have more than one warehouse. Every one of those threads filled up with product names within the hour.

Not one of them contained the question that decides whether any of those products will work, which is not which tool but what happens on the day it is wrong.

Because it will be wrong. Not because the tools are bad, most of them do the advertised job competently, but because “sync stok otomatis” is three different problems wearing one name. The tools solve the first one. The second and third stay yours, and those are the ones that produce a cancelled order, a refund, and a seller rating you cannot undo.

01

The window

Sync runs over each marketplace's API, so there is always an interval between a sale on one channel and the decrement landing on the others. In that interval the last unit can sell twice. No tool removes this.

02

The channel that is not a marketplace

WhatsApp orders, the counter in your shop, a bazaar. The tool reconciles marketplaces to each other and never sees these, so it stays confidently wrong until someone counts.

03

Stock that is not stock

Made to order items are capacity, not inventory. Bundles consume components. Unpaid orders hold units. A flat number per SKU cannot express any of it.

01

The window is not a bug you can buy your way out of

Every one of these tools connects to each marketplace through that marketplace’s own API. Orders arrive by polling on a schedule, or by webhook into a queue that is processed in turn. Either way there is a non zero interval between a unit selling on one channel and the decrement arriving at the others.

For almost all of your catalogue this does not matter, because you hold more than one unit. It matters for exactly one unit of one SKU: the last one. Two buyers on two channels inside that interval both get a confirmed order, and one of them is going to be told no.

This is why real time is not an answer to the question. Every vendor says real time. It is not a lie, it is a description of intent, and it does not tell you the only thing you need to know, which is what the system does when two orders land inside the window.

There are only two honest mechanisms, and you should ask which one you are buying:

  • Buffer stock per channel. You publish less than you hold, so the window has somewhere to fail safely. This costs you sales on fast moving SKUs and it is still usually the right answer. Ask whether the buffer can be set per channel and per SKU, or only globally.
  • A defined oversell path. The sale is allowed, the conflict is detected, and somebody is told immediately which order to cancel and on which channel. Ask to see that notification, not a description of it.
02

The channel that is not a marketplace

A seller asking to sync Shopee and Tokopedia usually also sells somewhere else. Orders in WhatsApp. A counter in a physical shop. A bazaar at the weekend. A reseller who takes twenty pieces on consignment.

A marketplace sync tool reconciles marketplaces to each other. It reads what the marketplaces tell it and writes back to them. The unit you handed over the counter this morning is invisible to that loop, so the tool is not merely missing information, it is confidently publishing a number it believes and you know is wrong.

This is the difference between two requests that sound identical. “Sync stock between Shopee and Tokopedia” is a solved, cheap, off the shelf problem. “Sync stock between my offline shop and my marketplaces” is a different and harder one, because it requires a second authoritative source of stock movement that is not a marketplace order.

If most of your volume is offline, you are not shopping for a sync tool at all. You are shopping for a stock system that happens to push to marketplaces, which is a different product with a different centre of gravity.

03

Stock that is not stock

Every one of these tools models a SKU as a number. That is correct for a finished good sitting on a shelf and wrong for at least three common cases.

Made to order. A wooden door, a printed banner, a cake, anything produced after the order lands. There is no stock to sync. What you have is capacity, which is a rate, and a lead time. Publishing “stock 10” when you can produce three a week is not a synchronisation problem, it is a promise you cannot keep, and no sync tool models it because a sync tool has no concept of a queue or a working day.

Bundles and paket. Sell a gift set of three items and three different component stocks must fall. Treat the bundle as its own flat SKU and every bundle sold quietly oversells its components everywhere they are listed individually. This one is worth testing specifically, because it is common, it is silent, and it only surfaces at stock opname.

Reserved against available. An unpaid order holds a unit. Each marketplace has its own rule for how long, and a cancelled or expired order has to give the unit back. If your tool syncs physical stock while the marketplace is reasoning about available stock, the two numbers will diverge without either of them being wrong.

04

“Multiple warehouse in one dashboard” is an allocation question

This one comes up almost every time, and the phrasing hides the difficulty. Seeing several warehouses on one screen is a reporting feature and it is easy. Deciding which warehouse serves which order is an operations decision and it is not.

The questions that actually matter: does a channel map to a specific warehouse, or does every channel draw from a shared pool? If the nearest warehouse is empty and a further one is not, does the order still go through, and who pays the higher shipping cost? Can you move stock between warehouses and have every channel update, or does a transfer look like a loss in one place and a windfall in another?

If you sell wholesale as well as retail, the same question decides whether your shipping cost is even predictable, which I have written about separately and at length.

05

Count your channels before you buy

Worth checking before you pay for anything: the three channels in the question may already be two. TikTok took 75.01% of Tokopedia effective 31 January 2024, the storefront was rebranded Shop | Tokopedia, and an integrated Seller Center replaced the separate portals, with migration opening to all sellers on 8 April 2025.

The practical consequence is not philosophical. If your own shops have already migrated, then a tool advertising Tokopedia and TikTok Shop as two separate integrations may be describing the world before the merge, and you should ask which portal it actually connects to today. If they have not migrated, you should know that before you build a process around the old one.

06

Four tests, ten minutes, during the free trial

Every vendor demo is built to succeed. These four are built to fail, which is the only way to tell two tools apart. Run them on a real SKU with real stock before you commit to anything.

Test 1

Set one SKU to stock 1, then order it on two channels inside the same minute.

You want to see what the tool does when it loses, not when it wins. Does it let both orders through, does it flag the second, and does it tell you which order to cancel? A tool that has no answer here has no answer in production either.

Test 2

Sell one unit outside the marketplaces, the way you actually do it.

Record a WhatsApp sale or a counter sale, then look at the marketplace stock. If nothing moved, the tool is only reconciling marketplaces to each other, and your worst channel conflict is the one it cannot see.

Test 3

Build a bundle that shares a component with a standalone SKU, then sell the bundle.

Check whether the component's stock fell everywhere it is listed. Many tools treat a bundle as its own flat SKU, which means the components quietly oversell every time a bundle moves.

Test 4

Create an unpaid order, then cancel it.

Watch when the unit is held and when it comes back. Held too long and you stop selling goods you own. Released too early and you sell goods that are spoken for. Ask what the rule is, per channel, in writing.

07

When to buy nothing at all

This is the part the vendor replies leave out, so here it is plainly. If you sell on two marketplaces, hold finished goods, and have never actually cancelled an order because of a stock conflict, you do not have this problem yet. Updating stock by hand once or twice a day is not primitive, it is proportionate, and it costs nothing.

When it does start to hurt, buy before you build. This category has mature products with free tiers, BigSeller being one that publishes a permanently free plan for low order volumes, and at the small end an off the shelf tool will be better than anything commissioned, because it is already integrated with marketplace APIs that change without warning and someone else is paid to keep up with them.

Paying a developer to rebuild that is the most expensive way to arrive at a worse version of something free. I say this as the developer you would be paying.

08

When custom is actually the answer

There is a real line, and it is not about volume. It is about whether your stock behaves like stock.

  • Production capacity rather than inventory. Made to order items where lead time and throughput decide what you can promise. No sync tool models this, because it is a schedule, not a number.
  • A non marketplace channel carrying real volume. If WhatsApp or a counter is a first class order source, it needs to be a first class input, not a spreadsheet someone reconciles on Sunday.
  • Cost per batch. If your buy price moves between batches and you need honest margin per order, that is an accounting model, and most sync tools deliberately do not have one.

That is the shape of system I build: stock, purchase orders, approvals, supplier records and imports from the spreadsheet you are already running, in StokAlur, and the wholesale side of it, with tiered pricing and shipping that is computed rather than guessed, in KEMASA. Both are demos I built and own, with seeded data, not client work.

What I have not done is run a live multi marketplace sync at scale for a client. The mechanics above come from building stock and order systems, and from reading how these integrations are specified. If you need someone with years of Shopee API scars, that is a fair thing to want and it is not me.

// Stock numbers you cannot trust?

Start by finding out which of the three problems you actually have.

If it is only the first one, buy a tool and keep your money. If your worst channel is the one that is not a marketplace, or your stock is really capacity, that is worth a conversation. I will tell you which it is before quoting for anything.