A Shopify fulfillment integration almost never fails at the connection step. It fails three days later, on a variant nobody mapped, in a country nobody tested. The orders keep arriving and the warehouse cannot tell which shelf they point at.

This is the checklist we run before a store cuts over. It takes about half a day of preparation and it removes the two failure modes that cause almost every bad launch: broken variant mapping and a tracking handoff with two owners.

sample

Fix the SKUs before you connect anything

Your store and the warehouse agree on exactly one thing, the SKU. Every other field is a label. If two variants share a SKU, or a variant has none, the order arrives without a shelf to pick from.

Export your variants and look for the three defects below. Do this in a spreadsheet, before any app is installed.

Variant export with the three defects visible

sku,title,variant,packed_weight_g,fulfilment_sku
SB-TEE-BLK-S,Classic tee,Black / S,180,SB-TEE-BLK-S
SB-TEE-BLK-M,Classic tee,Black / M,190,SB-TEE-BLK-M
SB-TEE-BLK-L,Classic tee,Black / L,205,SB-TEE-BLK-L
,Classic tee,Black / XL,215, <-- missing SKU
SB-TEE-BLK-S,Classic tee,Navy / S,180, <-- duplicate SKU
SB-MUG-350,Ceramic mug,350 ml,520,SB-MUG-350

  • Missing SKU. The variant cannot be fulfilled at all. It becomes a manual order every time.
  • Duplicate SKU. Two variants pick the same unit. Your stock count drifts within a week.
  • Renamed SKU. A SKU changed in the store but not in the warehouse. Old orders and new orders point at different shelves.

Set packed weights while you are in there

Packed weight decides the shipping rate the customer sees and the postage line you pay. Weigh a packed unit, including the mailer, and write the number on the variant. A guessed weight becomes a wrong quote at checkout.

Decide who owns tracking

Two systems can send a tracking email. Only one should. Decide before launch, then turn the other one off, because a customer who receives two different tracking messages will contact support about both.

  1. Choose the sender: your store notification, or the fulfillment partner.
  2. Turn off the other one, in writing, and note the date.
  3. Check that the tracking link resolves for a customer with no account.
  4. Send one test order to yourself and read every message it produces.

Every bad cutover we have seen was visible in the variant export on day one. Nobody read it.

Onboarding lead, ShipBee

Know what the warehouse receives

An order reaches fulfillment as a small payload. Understanding its shape tells you which checkout fields matter, and which ones never leave your store.

Order payload as the warehouse receives it

{
"order_number": 1042,
"financial_status": "paid",
"line_items": [
{ "sku": "SB-TEE-BLK-M", "quantity": 1 },
{ "sku": "SB-MUG-350", "quantity": 2 }
],
"shipping_address": {
"address1": "Hauptstrasse 14",
"address2": "Apt 3",
"city": "Berlin",
"zip": "10827",
"country_code": "DE"
}
}

Three fields carry the risk. sku selects the shelf. financial_status decides whether the order is released. address2 is the field most checkouts treat as optional and most delivery failures depend on.

Unpaid orders must not release

Confirm that only paid orders reach fulfillment. A store that releases pending payments will ship against failed charges, and the parcel is already in the carrier network by the time the charge reverses.

Run a shadow week before you switch

Do not cut over the whole catalog on a Monday. Route a subset first and compare the results against your current process while both are running.

  1. Pick three SKUs that sell daily and cover your two largest destination countries.
  2. Route only those SKUs to the new partner for seven days.
  3. Each morning, compare orders received against orders dispatched. The two numbers must match.
  4. Read every support ticket from that week and tag the ones caused by the change.
  5. Move the rest of the catalog only when the counts have matched for three days straight.

What to measure during the shadow week

Track four numbers daily: orders received, orders dispatched, orders held for review, and tickets about delivery. A held order is not a failure. A held order nobody noticed is.

After the cutover

Keep the variant export. Re run it monthly and diff it against the previous month. New products are added by people who are thinking about the product page, not about the warehouse, and a missing SKU on a new variant is the single most common cause of a stuck order.

Send us your variant export before you install anything. We return the unmatched rows, the duplicates, and the missing weights, so the cutover starts from a clean list.