Connecting a Shopify store to a China warehouse is usually a two-week project that goes wrong in four places: SKU identity, inventory truth, partial fulfillment, and tracking data that never reaches the customer. Everything else is configuration.

This page is the operational checklist for that integration, written for a store owner who has to make decisions rather than read API documentation.

Before any order flows, fix identity

Every integration failure downstream traces back to two identifiers being ambiguous.

SKUs must be identical in Shopify and in the warehouse system, character for character, including case and any suffix. Variant options such as size and color belong in the variant, not smeared into the SKU in inconsistent ways. If your catalog has legacy SKUs from a previous supplier, resolve them now, because a mismatch discovered during peak season means overselling.

Barcodes should be scannable and unique per variant. Test-scan the physical barcode on a physical unit before you accept stock; "printed and visible" is not the same standard, and unreadable labels are the most common cause of picking errors once volume rises.

Map every product to its real physical form. A bundle sold as one Shopify SKU must exist as a defined kit in the warehouse, otherwise it becomes a manual pick instruction that nobody follows consistently. A multipack of a single item should normally be a distinct SKU with its own barcode, not a quantity rule inside an order.

Locations and the inventory truth problem

Shopify tracks inventory per location, which is exactly what a distributed operation needs and exactly where overselling originates. Decide explicitly, per SKU, which location holds which units: a China location for direct dispatch, a destination warehouse location for pre-positioned stock, and a marketplace or third-party location for inventory you cannot sell from the storefront.

Then decide which location is authoritative. The usual mistake is having a sync push quantities into Shopify from a warehouse system while someone also edits stock manually in the admin. Both actions look correct and the discrepancy only surfaces as an oversold order. Manual adjustment should be a controlled exception with a reason, or the sync will overwrite it and blame the integration.

Set aside safety stock deliberately rather than letting it emerge from lag. Reservation rules matter most on a small-batch item that is also being sold elsewhere, and least on a high-volume single-SKU order.

The order lifecycle, mapped to real events

A working integration has observable states, and you should be able to see each of them without asking anyone:

Order created and paid, inventory reserved. Order transmitted to the warehouse and acknowledged, which is the first point at which silence means something. fulfillment order created, with holds applied where they apply. Picked, packed, and weighed. Shipping label purchased and a tracking number returned. Parcel scanned into the carrier's network, which is the event that actually proves it left the building. Delivered.

Two of these deserve attention because they are where "the order is stuck" reports come from.

fulfillment holds. Orders are legitimately held for address validation, fraud review, payment risk, backorder, or a manual review you configured. A hold is a feature, but an unowned hold queue is how a fulfillment partner hides a stockout. Ask who reviews it daily.

Partial fulfillment. Multi-line orders split across locations, or with one line short, must come back as partial fulfillments with their own tracking per shipment. If the integration cannot represent partials correctly, it will either mark the whole order fulfilled on the first shipment or leave the order open forever. Test it deliberately with a two-line order and force one line short.

Tracking, and what the customer sees

A tracking number is only useful when it reaches Shopify as a fulfillment with the correct carrier mapping, so that Shopify can present the tracking link, the shipment status and the delivery estimate. A number posted into an order note is invisible to most customers.

Three specific things to verify during testing: a parcel shipped by a Chinese consolidation lane with a Chinese-format label number must be recognized by Shopify's carrier service, otherwise you need a mapping or a third-party tracking provider; the delivery confirmation email must be sent with the right content and in the right language; and the tracking page your customer lands on should not display a Chinese-language "left origin facility" timeline they cannot interpret.

Also set expectations for the gap that exists on every international parcel: between label purchased and first scan there is often no movement, and on direct-from-China lanes that gap is longer than on a domestic shipment. That is a communication problem, not an integration bug.

Rates, tax and duties at checkout

Shipping rates in Shopify come from flat rates by zone, carrier-calculated rates, or a third-party app. For international parcels the honest approach is zone-based rates that reflect chargeable weight bands, because a live rate from a China origin rarely covers the full landed cost of a small parcel.

Tax and duty are separate concerns that sellers regularly collapse together. VAT or sales tax collection is a checkout and registration question for your accountant. Import duty and taxes on delivery are a customs question, and the answer differs by destination: some markets support collection at checkout through a registered scheme, others expect the buyer to pay on arrival, and unpaid fees on delivery are a leading cause of refused parcels. Shopify's international features can display estimated import duties for eligible markets and carriers; whether that is available and accurate for your lanes needs checking rather than assuming. Our inventory and channel mapping rules are set out in our multichannel inventory control guide.

Integration itemWhat must be agreedFailure mode if skipped
SKU and barcodeIdentical strings, scannable labels, kits definedWrong item shipped, overselling
Location modelWhich location is authoritative per SKUSync overwrites, phantom stock
Order transmissionAcknowledgment visible, timeout alertingOrders silently never arrive
HoldsNamed owner, daily reviewHidden stockouts and late shipment
PartialsCorrect per-shipment trackingFalse "delivered" or permanently open orders
Cutoffs and blackoutOrder-close times per destination regionPromised dates that cannot be met
Returns and exchangesWhich system owns the refundDouble refunds, lost stock
Cut-off for order editsWhether warehouse accepts changes after transmissioncanceled items still shipped

Test with volume you do not need

Before going live, run a scripted test batch: single line, multiple lines, one line out of stock, an address that fails validation, a bundle, an order edited after transmission, a cancellation, a partial shipment, and an order with a delivery address in a market whose duty treatment differs from your main one. Watch each one through the warehouse's own interface, not only Shopify's. Then run a controlled real volume with a hard ceiling before removing it.

Frequently asked questions

Does Shopify require a specific fulfillment app to work with a China warehouse?

No. A warehouse can connect through Shopify's native fulfillment and inventory APIs, through an app, or in the worst case through a daily file exchange. What matters is that order transmission is acknowledged, tracking returns as a real fulfillment, and partials are represented correctly.

How often should inventory sync?

Frequently enough that overselling on your fastest SKU is impossible, which for a shared multi-channel item usually means near real time rather than a nightly batch. Slow movers tolerate a longer interval; safety stock absorbs residual lag.

Why does my tracking show no movement for days?

On direct international lanes, the period between label creation and the first carrier scan at origin is normal. If it exceeds the expected window for the lane, treat it as an exception and ask the warehouse for the handover scan rather than waiting.

Can I split stock between China and a US or EU warehouse?

Yes, and that is the point of Shopify's per-location inventory. Assign each SKU an explicit rule for which location fills which destination, and make sure the rule is enforced in the warehouse system rather than hoped for.

Should Shopify collect duty and VAT at checkout?

It depends on the destination, the value band and your registrations. Some markets support collection at checkout through a registered scheme, others expect payment on delivery. Confirm current eligibility per lane, because a wrongly collected fee is a refund and a wrongly omitted one is a refused parcel.

Fuentes y enlaces de verificación

Las reglas operativas pueden cambiar. Consulte las fuentes primarias enlazadas y confirme los requisitos específicos del envío antes de reservar.