Writing
A pre-launch checklist for connecting your store to a 3PL
You signed a contract with a fulfillment partner. They've sent over their integration docs. Your store software has a "connect" button. You're three days from go-live.
Here's the checklist I run through before flipping that switch on a real production integration. Skip these and you'll learn them anyway, usually on a Friday afternoon.
The setup checks
1. Confirm SKU canonicalization. The SKU in your store, the SKU in your warehouse system, and the SKU on the actual product label have to match exactly. Different leading zeros count as different SKUs. Different cases count as different SKUs. Run an audit before launch and fix the mismatches.
2. Decide the source of truth for inventory. It's the warehouse, every time. Your store should pull from there, not the other way around. Pick a sync interval and write down what happens when sync fails.
3. Confirm address validation. USPS, UPS, and FedEx will all happily accept addresses that none of them can deliver to. Validate before the order leaves your system, not after the warehouse has already picked it.
4. Map every shipping method end-to-end. Your "Standard Shipping" needs to map to a specific carrier, a specific service code, and a specific package type at the warehouse. "Standard" means nothing to a 3PL.
The error-handling checks
5. Define what "failed order" means. Address invalid? Out of stock? SKU mismatch? Each one needs a different recovery path. Write them down. Build them in.
6. Build retry that doesn't double-ship. Idempotency keys on every outbound order. Test what happens when you retry an order the warehouse has already started picking.
7. Decide who gets paged when things break. "Both of us" is not an answer. One person, one channel, one escalation path.
8. Log enough to reconstruct any order. Six months from now, customer service is going to ask why order #4218 shipped twice. You need to be able to answer in two minutes, not two hours.
The financial checks
9. Reconcile shipped vs. ordered, daily. Pull what was actually shipped from the 3PL, compare to what your store thinks shipped. Differences mean either a billing problem or a customer-experience problem. Catch them in 24 hours, not 30 days.
10. Confirm carrier billing. Whose UPS account is being charged for each shipment? You'd be amazed how often this is wrong.
11. Track returns the same way as shipments. Returns are shipments going the other way. They need the same SKU mapping, the same logging, the same reconciliation. They almost never get it.
The post-launch check
12. Schedule a 30-day post-launch review. Not a meeting, a written review. What broke? What was harder than expected? What's still on the to-do list? You'll be tempted to skip this one. Don't.
If you're staring at this list and realizing you're three days from launch and you've checked maybe four of them, that's exactly the kind of project I help with. Get in touch and we'll figure out what's worth doing before launch and what can wait.
Need a senior PHP developer in your corner?
Five Devs is me, Chris. Twenty minutes, no pitch deck.