GoatLabels GoatLabels
Shopify and WooCommerce docs checked November 5, 2026.

Shopify and WooCommerce inventory sync: set it up safely


The method, then the limits.

For WooCommerce inventory management and Shopify inventory sync, pick one source of truth, match SKUs exactly, hold back a buffer and test one SKU first. GoatLabels, on the Pro plan, pushes its count one way to your store by exact SKU. A buffer lowers the oversell risk and does not remove it.

Stock sync, per store, on the Pro plan

Turn it on for each Shopify or WooCommerce store. Your GoatLabels count goes to the store, matched by exact SKU.

one way
One way GoatLabels to the store.
Exact SKU No match, no push.
Buffer Optional, per store.

Off until you turn it on

Stock sync is a switch on each store's card. Temporary failures retry, and you get an alert if a push stops.

Per store Switch on each card.
Retries Alert if a push stops.
Pro plan Not on Free.
From Shopify and WooCommerce help pages

How do you sync stock to Shopify and WooCommerce without losing count?

Give one system the job of owning the number, send it to the store in one direction, and make sure every SKU is spelled the same on both sides. Then keep a buffer, test a single product, and check the store the same day.

Store facts, checked

  • Shopify says SKUs "must be unique" and that no two product variants should share one. It adds that duplicates can cause problems with third-party integrations and inventory tracking (Shopify SKU help page).
  • WooCommerce says "Each SKU must be unique across your store" (WooCommerce product editor settings).

Checked

Which system should be the source of truth?

Pick the system where stock actually changes first, and treat every other number as a copy. If you sell from one store and use no other tool, the store itself is the source and there is nothing to sync.

Write the choice down, so that when two numbers disagree you know which one to fix.

Is one-way or two-way sync safer?

One-way sync is easier to reason about, and two-way sync is more convenient when more than one place takes sales.

One-way and two-way inventory sync compared on which count wins, where you adjust stock and the main risk
Question One way Two way
Which count wins The source of truth. The store count is overwritten. Whichever side changed last, unless the tool has other rules.
Where you adjust stock In one place only. A manual edit in the store is lost at the next send. In either place.
Main risk A store sale that the source has not seen yet is overwritten. Both sides change within the same short window and one change is dropped, or the tool loops.

How do you prepare SKUs so they match exactly?

Export your products from both sides, put the SKU columns next to each other, and fix every mismatch before you turn anything on. A tool that compares text exactly treats "TSHIRT-BLK-M" and "tshirt-blk-m" as two SKUs.

  1. Give every sellable variant its own SKU. Shopify says many apps need SKUs to sync inventory, and WooCommerce says each SKU must be unique across the store.
  2. Pick one format and keep it short. Shopify suggests all numbers or a mix of numbers and letters, no special characters, symbols or spaces, and no more than 16 characters.
  3. Trim spaces and agree on letter case. Copy SKUs from one sheet into both systems instead of retyping them.
  4. Find duplicates, and settle each one before you sync.

Checked 2026-11-05: Shopify SKU help page; WooCommerce product editor settings.

What is a buffer, and how big should it be?

A buffer is a number of units you hold back from the store, so the store shows a little less than you own. It gives you slack for a sale the source has not recorded yet, a miscount, or a delayed update.

Example, with invented numbers: you own 12 units and set a buffer of 2. The store is sent 10. Two orders land in the store, so it drops to 8, while your own count still reads 12 because the labels are not bought yet. If a send goes out now, it carries 10 again and the store climbs back to 10. You have two units spoken for, so 10 are really free, and the store shows exactly that. Without the buffer it would have shown 12 and sold two units you had already promised.

Size it from your own data. Look at the most units you sold of a fast item in the gap between two updates, and start there. A buffer lowers the risk of selling stock you do not have. It does not remove it.

How do you test a sync on one SKU first?

Pick one low-risk product, send it, and compare the store with your source before you let the rest through. Shopify's own tracking guide recommends a test order: confirm the inventory decreases, then cancel it and check that the quantity returns.

  1. Choose a product that sells slowly and has a clean, unique SKU on both sides.
  2. Set its count in the source to a number you will recognize, such as 7, and set the buffer to 0 for the test.
  3. Send it, then open the product in the store and read the quantity.
  4. Place a test order in the store, and watch what the store does. Then cancel it and check the quantity returns.
  5. Only then widen the sync to the rest of the catalog.

Watch one trap with any tool that sends every matching product when you switch it on. A product with a count of zero in the source sends zero, and zero in the store can take the item off sale. Load real starting counts before you switch on.

Checked 2026-11-05: Shopify inventory tracking help page.

What should you check on day one?

Check the store itself, because the store is where a wrong number costs you a sale or an oversold order.

  • Open five products in the store, including your fastest seller, and compare each quantity with the source.
  • Look for items showing zero that you own. They usually mean a zero count or a missing starting count in the source.
  • Look for items with no change at all. They usually mean a SKU mismatch, so the tool never matched them.
  • On WooCommerce, confirm that Manage stock is checked on the products you sync, because the quantity is used only when it is.
  • On Shopify, confirm the quantity sits in the location you meant, and check your Continue selling when out of stock setting.
  • Read any failure alert, and fix the cause before the next sale.

What do Shopify and WooCommerce do natively?

Both platforms count stock on their own, as their help pages describe.

What Shopify and WooCommerce say about stock counts, turning tracking on and zero stock, checked 2026-11-05
Topic Shopify WooCommerce
Where the count lives Per location. Shopify says you need at least one location to track inventory. One quantity on the product, or on each variation of a variable product.
Turning tracking on Turn on Track quantity for the product or variant, then enter the Available units. Check Manage stock on the product, which appears when the store-wide Manage stock option is enabled, then enter the Quantity.
When the count reaches zero Customers cannot add the item to the cart, unless you turn on Continue selling when out of stock. The default is Stop selling when out of stock. WooCommerce sets the item to Out of stock. The Allow back orders field offers 'Do not allow', 'Allow, but notify customer' and 'Allow'.

Checked 2026-11-05: Shopify inventory help page; Shopify inventory tracking help page; WooCommerce product editor settings; WooCommerce managing products.

What does GoatLabels stock sync do on the Pro plan?

It pushes your GoatLabels count to a connected Shopify or WooCommerce store, one way, matched by exact SKU. It is included on the Pro plan, $40 a month as checked , as part of the Operations hub, with no separate add-on fee, and it is not on the Free plan. Your count is the one you keep in GoatLabels, from starting counts, deliveries, adjustments, and the labels you buy.

How GoatLabels stock sync works: plan, switch, direction, matching, number sent, warehouses and failures
Part What it does
Plan Stock sync is part of the Operations hub, which is on the Pro plan. The Free plan does not have it.
Switch Off by default. You turn it on for each store, on that store's card on the Connect page (Settings, then Stores).
Direction One way. Your GoatLabels count is pushed to the store and overwrites the store count. Store counts are never read back.
Matching Exact SKU. A product with no match is not pushed until you map it by hand. A SKU used twice on either side is not matched automatically.
Number sent On-hand minus an optional per-store buffer, never below zero.
Warehouses All your warehouses are summed into one store location. On Shopify you can send each warehouse to its own mapped location instead, and an unmapped warehouse is not pushed.
Failures A temporary failure is retried, up to 6 attempts. A refused login, permission or item stops that push until you act. When a push stops, you get an alert, once per store per day, and you can retry by hand.

Turning it on for a store queues every tracked product and pushes each one that matches a store SKU, so there is no switch for a single SKU. A matched product with no count loaded can send zero. To test one product first, load counts for that one product and leave the other SKUs out of GoatLabels until the test passes.

To set it up, see how GoatLabels works with Shopify or with WooCommerce, connect the store, add your products with exact SKUs and starting counts, then turn on stock sync on the store's card.

What are the limits of GoatLabels stock sync?

It is one way, it overwrites the store count, and it leaves an oversell gap. Read these before you turn it on.

  • The store count is overwritten. GoatLabels never reads store counts back, so a stock edit made only in the store is lost at the next push.
  • Existing Shopify stores must reinstall the app. The reinstall grants inventory permission, and pushes wait until it is done.
  • Store items with tracking off are not matched by SKU. That means Track quantity off on Shopify or Manage stock off on WooCommerce. If you map a WooCommerce product by hand, the push turns Manage stock on for it. A Shopify variant you map by hand needs tracking on, or pushes are rejected.
  • The oversell gap is real. A store sale lowers the store count now, and it lowers the GoatLabels count only when you buy the label. A push sent in between can overwrite the store with a count that has not seen that sale. A buffer reduces this and does not remove it.
  • Etsy, eBay and Wix stores cannot receive a stock push. No switch appears for them.
  • Stock moves only when a label line carries a SKU that matches a tracked product. Bulk CSV import and Wix orders do not move stock, and only a void restocks.
  • No sync time is promised. Check the store, as in the day-one list, instead of assuming it is current.

What GoatLabels does and does not do. GoatLabels tracks your counts and does not store your goods. Stock sync is a one-way push on the Pro plan, matched by exact SKU, and it does not prevent overselling. If you need two-way sync, a count the store can edit, or allocation across channels, GoatLabels stock sync is not the right tool, and the method above still applies to whatever you use.

Shopify and WooCommerce inventory sync: FAQ

How do I sync inventory between GoatLabels and Shopify?
On the Pro plan, load your products with exact SKUs and starting counts, then turn on stock sync for the Shopify store on its card on the Connect page. An existing Shopify store must reinstall the GoatLabels app to grant inventory permission, and pushes wait until it does.
Does GoatLabels sync WooCommerce inventory in both directions?
No. On the Pro plan, the sync is one way. GoatLabels pushes its count to WooCommerce and overwrites the store count, and it never reads WooCommerce counts back. A product with Manage stock off is not matched by SKU, and if you map one by hand, the push turns Manage stock on.
Does stock sync stop overselling?
No. Stock sync, on the Pro plan, leaves a gap. A store sale lowers the store count now, and GoatLabels lowers its own count only when you buy the label. A push sent in between can overwrite the store with a count that has not seen that sale. A buffer reduces this gap and does not remove it.
Which stores can receive a stock push?
On the Pro plan, stock sync pushes to Shopify and WooCommerce. Etsy, eBay and Wix stores cannot receive a stock push.
Is stock sync on the Free plan?
No. Stock sync is part of the Operations hub, which is included on the Pro plan with no separate add-on fee.

Related reading: shipping labels for Shopify, shipping labels for WooCommerce, GoatLabels plans and pricing, the GoatLabels Operations hub, how to set low-stock alerts, how to calculate a reorder point, how to set up scan-to-pack, how to make a pick list, how to run purchase orders for an online store.

One way, matched by exact SKU.

Send your count to the store
and check it on day one.

Stock sync pushes your GoatLabels count to a connected Shopify or WooCommerce store, with an optional buffer per store. It is part of the Operations hub on the Pro plan, and it does not prevent overselling.

Stock sync is included on the Pro plan, with no separate add-on fee.

Updated