WMS integration should make stock movements explainable across the warehouse and selling systems. The first milestone is not a live API connection. It is an agreed mapping of products, locations, stock states and transaction owners that survives a receipt, a reservation, a shipment and a correction.
A China warehouse may serve several stores and suppliers at once. Integration should preserve those identities instead of treating every carton on the premises as stock available to every channel.
Build the master-data crosswalk
Map the warehouse SKU to the store’s inventory item and variant identifiers. Add unit of measure, pack quantity, barcode, owner and fulfillment location. Test the mapping with products whose names look similar but whose sizes, colors or quantities differ.
Define how changes are approved. A renamed product should not create a second inventory item, while a new pack size may require a new controlled identity. Keep previous mapping versions available for historical orders and returns.
Location mapping needs the same care. A receiving area, quality-hold area and saleable pick location may all sit inside one building but represent different operational permissions. Decide which warehouse balances each external location is allowed to expose.
Choose the stock authority
Write a system-of-record table before implementing synchronization. The WMS may own physical receipts and counts, an order system may own reservations, and the store may own customer-facing selling limits. The actual arrangement depends on the agreed design.
Do not let two systems independently set the same quantity without a conflict rule. An absolute stock set says what the quantity should be; an adjustment says how an event changes it. Mixing them without transaction tracking can count one receipt twice or erase an intervening shipment.
For Shopify integrations, the inventorySetQuantities reference explains comparison-based setting and the risks of bypassing that comparison. Verify the supported API version, permissions and current mutation contract when implementing the connection.
Stop stale snapshots from becoming current stock
Consider an illustrative synchronization. The connector reads 20 available units. Before its update arrives, an order reserves three units, leaving 17. A delayed instruction that blindly sets availability back to 20 would reopen those reserved units for sale.
The integration should detect that its baseline is stale, obtain the current state and reconcile the intervening event. Simply retrying the same old set repeats the problem. Preserve enough transaction history to distinguish a missed movement from a legitimate later change.
Counts require a controlled process too. If an operator counts a location while picking continues, the count and movements need a defined reconciliation boundary. Otherwise even a physically accurate count can produce an inaccurate system adjustment.
Use receipts and exceptions as acceptance tests
Run a small inbound test containing a correct carton, a shortage and a barcode mismatch. Confirm that accepted units become available only after the approved receiving process, while unresolved units remain visible under the appropriate hold.
Then release orders against that stock. Test a cancellation, a split shipment and a returned unit that has not passed inspection. Compare the store, connector and WMS after each step. Do not approve go-live because their end-of-day totals happen to match while individual transactions disagree.
Keep a controlled manual recovery route
A CSV import can be useful during migration or recovery, but it should not bypass stock ownership and concurrency controls. Shopify’s inventory CSV documentation describes formats with different protections against accidental overwrites.
For each manual file, retain its export baseline, approved changes, import result and post-import reconciliation. Restrict who can submit it and decide how the normal connector resumes afterward. An unrecorded spreadsheet correction can otherwise be reversed by the next automated message.
Before expanding the integration, agree the incident runbook: how to pause updates, how to identify the last reconciled transaction and how to replay safely. The final acceptance pack should contain mapped identifiers, passing transaction tests and an explained reconciliation. Those artifacts establish visibility more convincingly than an unsupported promise of continuous real-time accuracy.
Sources and verification links
Operational rules can change. Check the linked primary sources and confirm shipment-specific requirements before booking.

