Back to Blog
Engineering2 November 20264 min read · 960 words

Ecommerce Fulfilment: 3PL, In-House and Platform Integration

N7

No7 Engineering Team

Growth Architecture Unit

Engineering: Ecommerce Fulfilment: 3PL, In-House and Platform Integration (illustration)

Ecommerce fulfilment is everything that happens between a customer placing an order and receiving it: holding stock, picking and packing the items, shipping them and handling returns. Shopify's help centre describes order fulfilment as the workflow of processing, managing and shipping customer orders, and lists three ways to do it: fulfil orders yourself, use a third-party app, or use a fulfilment service. For a growing UK store the real decision is usually whether to keep fulfilment in-house or hand it to a third-party logistics provider (3PL), and the engineering work sits in the integration between the warehouse and your store.

What is a 3PL?

A 3PL, or third-party logistics provider, is a company that stores your stock and picks, packs and ships orders for you from its own fulfilment centre. Shopify's API documentation defines a fulfillment service in the same terms: a third-party warehousing service that prepares and ships orders on behalf of the store owner. You still own the stock and the customer relationship; the 3PL owns the physical work.

In-house fulfilment vs a 3PL vs a hybrid

ModelHow it worksEngineering impact
In-houseYou hold stock and pack orders yourself, from home, a unit or your own warehouseFewest moving parts: stock and orders live in your platform, and you mark orders fulfilled when they ship
3PL / fulfilment centreA logistics provider holds the stock and ships each orderOrders must flow to the 3PL, and stock levels and tracking numbers must flow back, reliably and in near real time
HybridSome stock in-house or in shops, some at one or more 3PLsOrder routing decides which location ships each item, so inventory must be tracked per location

The choice is mostly operational: order volume, storage space, staff and carrier rates. But each step away from in-house adds systems that have to agree on two numbers, how many of each SKU you have and which orders have shipped. When they disagree, you oversell, ship twice or leave customers without tracking.

How fulfilment connects to Shopify

On Shopify, fulfilment is modelled with fulfillment orders. Shopify creates them automatically when an order is placed: a background process runs order routing to decide which locations will fulfil the items, then creates one or more fulfillment orders assigned to those locations. They cannot be created manually. One order can therefore become several fulfillment orders, for example when items ship from two warehouses.

A 3PL usually connects through a fulfillment service app. Each fulfillment service has its own location, which Shopify creates automatically, and the service can accept or reject the merchant's request to fulfil an order. Once a request is accepted, the merchant can still ask to cancel it before the order ships. The app can subscribe to webhooks such as fulfillment_orders/fulfillment_request_submitted, fulfillment_orders/placed_on_hold and fulfillment_orders/hold_released. Shopify also warns that a checkout can contain several delivery methods, such as shipping and pickup in the same order, so an integration has to read every fulfillment order rather than assume one method per order.

How fulfilment connects to BigCommerce

On BigCommerce, a shipment is recorded against an order through the order shipments API, which stores the tracking number and shipping provider. Stock is handled by the Inventory API, which BigCommerce describes as asynchronous and which supports both absolute and relative adjustments per location. BigCommerce also notes that the Catalog API no longer adds or updates inventory itself; catalog endpoints now call the Inventory API under the hood, and BigCommerce calls the Inventory API the most direct way to update inventory. An older 3PL connector that writes stock through catalog endpoints should be moved to it.

How fulfilment connects to WooCommerce

WooCommerce drives fulfilment through order statuses. Processing means payment has been received and stock has been reduced, and it is the store's or warehouse's cue to ship the order and change it to Completed. On hold means stock is reduced but payment still needs confirming, typically for offline methods such as bank transfer (BACS). A 3PL connector should only release Processing orders to the warehouse, never On hold or Pending payment ones, and should set the order to Completed once it has shipped and pass the tracking number back to the store.

Integration checklist before you sign with a 3PL

  1. SKU mapping. Every variant needs one SKU that is identical in your platform and the 3PL's system. Bundles and kits need an agreed rule for how they break down into stock items.
  2. Stock sync direction and frequency. Decide which system is the source of truth for stock at each location, and how often it updates your store. Infrequent batch updates make overselling more likely during a sale.
  3. Order release rules. Agree when an order is sent to the warehouse: immediately, after a short hold for edits and fraud checks, or only once payment is confirmed.
  4. Tracking write-back. Shipped orders must come back with a tracking number so the platform marks them fulfilled and sends the shipping email.
  5. Cancellations and edits. Test what happens when an order is cancelled or changed after it has been sent to the warehouse.
  6. Returns. Returned stock has to be checked and put back into the right location's available quantity, not just refunded.
  7. Test with real orders. Run multi-item, split-shipment, mixed delivery method and cancelled orders through a staging store before go-live.

What to do next

If you are moving to a 3PL, ask for its integration method first: a native app for your platform, a middleware connector, or a custom API integration. Then work through the checklist above with its technical team. Our guides to multi-location inventory, UK carrier integration and returns integration cover the neighbouring systems, and our Shopify integrations team can build or fix the connection for you.

Frequently Asked Questions

The questions buyers and engineers ask us most about this topic.

What is ecommerce fulfilment?

Ecommerce fulfilment is the process between a customer placing an order and receiving it: storing stock, picking and packing the items, shipping them and handling returns. A store can fulfil orders itself, use a third-party app, or use a fulfilment service such as a 3PL.

What is a 3PL?

A 3PL, or third-party logistics provider, stores your stock and picks, packs and ships orders for you from its own fulfilment centre. Shopify describes a fulfilment service as a third-party warehousing service that prepares and ships orders on behalf of the store owner.

How does a 3PL connect to Shopify?

Through a fulfilment service app. Each fulfilment service has its own Shopify location, receives fulfilment requests for the fulfilment orders assigned to it, and can accept or reject them. Shopify creates fulfilment orders automatically after order routing, and one order can be split across several locations.

Which WooCommerce orders should go to the warehouse?

Processing orders. WooCommerce sets Processing once payment has been received and stock has been reduced, and describes it as the cue to ship. On hold orders are still awaiting payment confirmation and should not be shipped until they move on.