Skip to content

Docs/MYOB Exo

Stock Sync

Stock Sync pushes stock levels from MYOB Exo into Shopify so storefront availability matches the warehouse. Turn it on with inventory_sync_enabled.

On each run, InSyncer:

  1. Reads stock levels from Exo for every mapped warehouse
  2. Combines the Exo stock figures according to inventory_sync_logic
  3. Aggregates the result across the Exo warehouses mapped to each Shopify location
  4. Writes the total to the matching Shopify inventory item

Shopify is never the source of truth for stock in this flow. Manual Shopify adjustments are overwritten on the next successful run.

Exo holds several stock figures per item, per warehouse:

Exo figure Meaning
physical Total physical stock count
committed Quantity allocated to existing orders
incoming Quantity on inbound purchase orders
free Physical, less committed, plus incoming
notforsale Quantity reserved and unavailable for sale
onbackorder Quantity on back-order

inventory_sync_logic decides which of these InSyncer combines. The common choice is physical-committed, which syncs physical stock less committed stock.

Each Shopify location maps to up to three Exo warehouses. Stock is aggregated across the warehouses mapped to that location, then written as one figure.

Shopify location Exo warehouses Result
Online MAIN Online availability follows the main warehouse
Warehouse MAIN + OVERFLOW The two warehouses are summed into one figure
Retail floor unmapped No stock is written; the location is ignored

Leave a Shopify location unmapped if that stock should not affect online availability.

Stock is joined on item code: the Shopify variant SKU must equal the Exo stock code. Matching uses the first 23 characters, Exo’s stock code length. Unmatched SKUs are skipped and logged.

If you only want to sync Exo items that already exist in Shopify, set stockitem.shopify_skus_only. That stops InSyncer working through stock items with no storefront counterpart.

exo_pagesize controls how many records InSyncer requests per Exo API call. The Exo API caps a page at 100 records. Lower it if Exo is under load; leave it alone otherwise.

Stores with a large catalogue and a custom Exo search template can use stockitem.sam_sync.enabled and stockitem.sam_sync.config to drive stock sync from that template instead of walking all stock items. That is an implementation-time decision — talk to us before turning it on.

Stock Sync only writes quantities. These adjacent settings control the rest of the inventory picture:

  • inventory_policy_sync_enabled — sets Shopify’s continue/deny oversell policy from an Exo extrafield
  • track_quantity_sync_enabled — sets Shopify’s “track quantity” flag from an Exo extrafield
  • deactivate_products_enabled — deactivates the Shopify product when the Exo item goes inactive