Fulfillment & logistics
Shopify 3PL integration: connect the warehouse and prove the workflow
Direct answer
A Shopify 3PL integration should make it clear which warehouse receives each item, when it may start work and how Shopify learns what happened. Agree the stock and order rules before switching on automatic fulfillment. Then test cancellations, partial shipments and recovery as well as a successful order.

Which kind of Shopify 3PL connection do you need?
Ask what the connection actually exchanges and who operates it. A warehouse app, an email-based service and an ERP connection have different responsibilities.
Shopify distinguishes fulfillment service apps, which prepare and ship orders for merchants, from order management apps that coordinate work across locations. Ask the provider which role its connection performs. An app installation alone does not tell you who controls order release, stock corrections or exceptions.
Reference: Shopify Developers: fulfillment service apps
Shopify also offers a custom fulfillment service that sends order details by email. Its documented workflow does not automatically update fulfillment progress in Shopify; changes and cancellations require direct communication with the service. Do not treat that email workflow as equivalent to a connector with two-way operational updates.
Reference: Shopify Help Center: custom email-based fulfillment
Write a coverage list for your own products and channels: supported cases, required configuration, additional work and unresolved limits. Include the connector owner, current supported API version, access requirements and support route. If an ERP is involved, draw the actual path rather than assuming Shopify must send every record to both the ERP and the warehouse.
How should products, locations and stock be mapped?
Match each variant to the correct warehouse item and Shopify location, then decide which system may change each quantity.
Shopify tracks inventory independently at each location, including fulfillment app locations. A product can be stocked at your own locations and a fulfillment service at the same time. Record the locations and product activation needed for your setup; do not use the total across locations as a substitute for stock available to the intended route.
Reference: Shopify Help Center: inventory across locations and apps
Create a mapping sheet with the Shopify variant, its SKU, the warehouse item code and the relevant location. Record pack sizes and bundles separately. If both the ERP and warehouse write an available quantity, ask which update wins and how a delayed update is handled. Demonstrate the answer with an actual test variant rather than two matching dashboard totals.
Test routing using your configured rules and inventory. Shopify uses routing rules to assign fulfillment locations; the suitable configuration depends on your operation. Try one order that one site can supply and another that needs more than one site. Keep the delivery promise consistent with the resulting shipment plan.
Reference: Shopify Help Center: order routing
When should the 3PL start picking an order?
Define the release decision and require a visible response from the party that will fulfill the items.
A Shopify order can have several fulfillment orders. Each describes items and quantities expected to be fulfilled from a location. A fulfillment records work on those items. This distinction matters when an order is split: one order number is not a sufficient identifier for every warehouse task.
Reference: Shopify Developers: FulfillmentOrder
Agree which conditions release work in your business, such as payment review, address checks and any required approval. Record who owns those checks and how held work becomes eligible. These are requirements to demonstrate in the proposed integration, not capabilities to assume from a Shopify logo.
Fulfillment service apps can accept or reject fulfillment requests. In the acceptance test, follow the request through to the provider’s response and subsequent shipment update. A sent request should not be presented to staff as proof that the warehouse accepted or dispatched the goods. Rejections need a reason and an owner who can decide the next action.
Reference: Shopify Developers: fulfillment service apps
How do you stop a Shopify order after the 3PL accepts it?
Treat cancellation as a request awaiting confirmation. Do not start a second fulfillment route while the first warehouse may still ship.
After a fulfillment service accepts a request, the merchant or order management app must submit a cancellation request to that service instead of simply withdrawing the accepted work. The response is part of the workflow to test.
Reference: Shopify Developers: FulfillmentOrder
Shopify warns that reverting work to unfulfilled does not itself stop the fulfillment service. Confirm the cancellation with the provider before relying on that change. A rejected cancellation means you need an explicit next decision, not an automatic resend from another warehouse.
Reference: Shopify Help Center: fulfillment services with an app
Use two acceptance cases: cancellation while the warehouse can still stop work, and cancellation after its stopping point. Ask the provider to show both responses and the evidence customer support will see. Keep the refund decision separate from the operational confirmation that the parcel will not ship.
What should happen with partial shipments and tracking?
Reconcile the shipped and remaining quantities for each item. The first parcel must not hide outstanding work.
Shopify’s app-fulfillment guidance notes that an order becomes fulfilled only after all items are shipped. During testing, inspect which items and quantities belong to each parcel and which remain open. Confirm how tracking is supplied and whether customer messages describe the actual shipment. Keep the system status separate from evidence of physical carrier collection.
Reference: Shopify Help Center: fulfillment services with an app
Use a mixed order: one item at the 3PL and one at your own warehouse. Then repeat it with a short pick at the 3PL. Ask the team to identify the missing item, explain whether it remains pending or is handled another way, and show who resolves it. A tracking number for the first parcel is not acceptance evidence for the whole order.
How should Shopify returns reach the 3PL?
Agree the return destination, identification and inspection process, then control refund and restocking decisions separately.
Shopify’s return workflow lets a merchant receive and inspect items, choose a restocking location and issue a refund immediately or later. Ask which of those actions the proposed warehouse connection supports and which stay with your team. A parcel receipt is not evidence that its contents are ready to sell.
Reference: Shopify Help Center: processing returns
Give the warehouse a return containing only one item from a multi-item order, then an unidentified or damaged item. Require a record of what arrived, the inspection decision and the resulting inventory update. Assign an owner for unmatched goods. If a separate returns app is involved, include it in the responsibility map instead of letting both systems trigger the same financial or stock movement.
Which Shopify 3PL test cases belong in acceptance?
Approve business outcomes across Shopify and the warehouse, with evidence for each item, quantity and exception.
Use representative test records and a controlled order path agreed with the provider. For every case, record starting quantities, location, action, expected outcome, actual result and the person approving it. Use your agreed service timings; there is no universal delay threshold that proves every integration is healthy.
The matrix below is an editorial acceptance plan to adapt to your workflow. Keep a failed or unsupported case visible with its operational consequence. Do not sign off the entire integration because a single ordinary parcel reached a tracking page.
| Test case | What to demonstrate | Evidence to retain |
|---|---|---|
| Ordinary released order | The correct items reach the intended location and receive a provider response. | Shopify order and fulfillment references matched to the warehouse job. |
| Unknown item or variant | Unsupported item mapping is visible without silently substituting a product. | Affected item, error reason, correction owner and safe reprocessing result. |
| Last unit at two locations | A sale uses the agreed location and stock rules without a second allocation. | Before-and-after quantities and the accepted warehouse task. |
| Cancellation accepted | The original warehouse confirms it will stop the affected work. | Request, provider response and the next approved action. |
| Cancellation rejected | Work is not automatically sent to a second warehouse. | Provider response and the recorded customer-support decision. |
| Partial dispatch | Shipped quantities and outstanding items remain distinguishable. | Parcel tracking, line quantities and the owner of remaining work. |
| Repeated or missed update | Recovery detects existing work instead of creating another warehouse job. | Matched references, reconciliation result and corrected status. |
| Partial or damaged return | Only inspected, approved goods reach the intended sellable stock. | Received items, inspection decision, refund owner and stock change. |
How should 3PL onboarding reach a controlled cutover?
Give exceptions and reconciliation named owners, and keep an agreed way to stop releasing new work.
Shopify does not guarantee webhook ordering or delivery and recommends reconciliation with current data. Ask how the connection detects missing warehouse tasks or shipment updates, resolves stale messages and safely repeats work. Request a demonstration with an interrupted update, not just a promise of real-time synchronization.
Reference: Shopify Developers: webhooks and reconciliation
Agree who monitors the queue, how support recognises blocked orders and who may approve a retry or correction. Record what happens outside support hours. Include access review, connector changes and repeat acceptance tests after upgrades in the operating agreement.
Before cutover, approve the starting stock by location, the last order handled by the previous route and the first released to the new one. Define the trigger for pausing new releases and who authorises recovery. Avoid treating rollback as permission to replay all open orders: first identify which warehouse already accepted work.
Your project checklist
- The connection type, connector owner and unsupported cases are documented.
- Variants, warehouse item codes and Shopify locations are mapped.
- Inventory writers and location-routing rules have been demonstrated.
- Release, acceptance, rejection and cancellation responses are visible to staff.
- Partial shipments preserve item quantities and outstanding work.
- Return inspection, refund approval and restocking ownership are separate.
- Repeated and missed updates have passed a recovery test.
- Cutover stock, order boundaries, pause conditions and operating owners are approved.
Working template: Shopify 3PL integration acceptance
Use your own Shopify locations, item mappings and provider proposal. Record what has actually been demonstrated and keep unsupported cases visible.
Download the text templateView the template questions
Connection and owners
Record the app or email workflow, connector maintainer, warehouse contact, current supported API version and required access.
Product and location mapping
Match Shopify variant/SKU, warehouse item, pack size, location and product activation.
Stock authority and release
Name the inventory writer and record routing, release checks, holds and warehouse acceptance evidence.
Cancellations and changes
Record the stopping point, request/response evidence, rejection decision and prevention of duplicate warehouse work.
Shipment and return scope
Record shipped/remaining quantities, tracking, inspection, restocking destination and refund responsibility.
Acceptance evidence
For every matrix case, retain initial values, action, expected and actual results, references, owner and unresolved limitation.
Recovery and operations
Record missing-update detection, reconciliation, safe retries, alert ownership and upgrade regression checks.
Cutover decision
Approve counted opening stock, old/new order boundaries, pause trigger and the person authorising recovery.
How ecommerce.spot researches its guides
These guides combine editorial decision tools with linked official documentation. Product-specific statements carry references at the relevant passages. Recommendations, comparison matrices and templates are planning aids, not first-hand product tests or provider endorsements. Calculations using illustrative assumptions are labelled accordingly. The review date records the latest substantive revision.
Sources & further documentation
Shopify Developers: fulfillment service appsFulfillment service and order-management roles, locations, requests and provider responses.
Shopify Help Center: inventory across locations and appsInventory and product activation by location, including own stock alongside fulfillment services.
Shopify Help Center: order routingConfigured rules assign work to fulfillment locations; confirm the actual store configuration.
Shopify Help Center: fulfillment services with an appShipment progress, cancellation responses and the limits of reverting work to unfulfilled.
Shopify Developers: FulfillmentOrderItems and quantities assigned to a location, fulfillment relationships and accepted-request cancellation.
Shopify Help Center: processing returnsInspection, restocking location and timing of refunds are distinct parts of return processing.
Shopify Developers: webhooks and reconciliationWebhook ordering and delivery are not guaranteed; reconcile current records.
Shopify Help Center: custom email-based fulfillmentThe email workflow differs from an app integration and does not automatically update fulfillment progress.

