Skip to content

Shopify Dude Fix

Why Does an ERP Inventory Sync Keep Causing Shopify Overselling?

ERP inventory syncs can cause overselling when they overwrite Shopify Available quantities instead of syncing the right location and inventory state.

Quick answer: Overselling often happens when an ERP repeatedly sends physical stock as Shopify Available, ignoring units Shopify has already moved to Committed. Sync the correct named quantity, location, and inventory state, and avoid blind absolute overwrites.

The real symptom

  • Orders reduce Shopify availability, then the ERP sync restores it.
  • Popular items oversell even though Shopify initially reserved stock.
  • The ERP and Shopify disagree on On hand, Available, or Committed units.
  • Multi-location inventory gets overwritten at the wrong location.

Likely causes

  • The integration confuses On hand and Available.
  • Committed inventory is ignored by the ERP feed.
  • The sync sends absolute values without compare-and-set protection.
  • The ERP updates one location while orders are assigned to another.
  • Fulfillment is delayed, leaving many units committed.

Fix path

  1. Map every Shopify location to the matching ERP warehouse.
  2. Decide whether the ERP is the source of truth for On hand or Available.
  3. Use Shopify inventory states consistently.
  4. Inspect adjustment history for overwritten quantities.
  5. Use compare-and-set or audit references where the API supports them.
  6. Stop sending blind absolute updates during order peaks until the logic is corrected.

Simple checks

  • Compare one SKU across ERP, Shopify On hand, Shopify Available, and Shopify Committed.
  • Open inventory adjustment history after a sale and after the next ERP sync.
  • Check whether the sync writes to the location that fulfills online orders.

Useful code or DevTools check

# Conceptual rule:
# Do not replace Available with physical stock if Shopify has committed units.
# Sync the intended named quantity and location deliberately.

Do not do this

Do not “fix” overselling by enabling Continue selling when out of stock. That turns a sync bug into an operational policy.

Sources