← All insights

How do you build an ecommerce fulfillment workflow that survives split shipments?

A practical order-to-shipment design for teams that need every parcel, remaining item and customer update to agree.

  1. 01Release
  2. 02Route
  3. 03Pick
  4. 04Dispatch
  5. 05Update
Short answer

An ecommerce fulfillment workflow should release an eligible order, route its lines to a capable location, send pick and pack instructions, record each dispatch and return tracking to the customer-facing system. When stock is short or an order splits, the original order stays linked to every shipment and its remaining quantity. Give each decision and exception one owner, then test the full route before automating it.

A customer buys from your store. The order reaches a warehouse, but one item is short. The available items ship in two parcels; one tracking number never returns to the store. The customer sees “fulfilled,” while support sees a complaint and the warehouse sees work still open. Here is how to design the handoffs so those records tell the same story.

What does the fulfillment workflow need to control?

Start at an order that is allowed to move into operations. End when the customer-facing record has the actual dispatch and tracking state. Within that span, the workflow must decide where each line goes, confirm that the receiving team accepted it, record what was physically picked and shipped, and keep every unshipped quantity open. Returns follow a separate reverse route, but they need the same order and shipment references.

“Ecommerce fulfillment” is often used for the whole warehouse service, from storing stock to delivery. This guide focuses on the system handoffs behind it. The same design applies whether a team ships from its own warehouse, asks a third-party logistics provider (3PL) to do the work, or combines several locations. US readers usually search for “fulfillment”; UK English also uses “fulfilment.” The operational problem is the same.

Do not let a single order status stand in for every operational state. An order may be accepted but held, allocated but not picked, partly shipped, or shipped without a valid carrier scan. One customer order may have several fulfilment instructions and several parcels. Microsoft’s order-management model makes those records and their relationships explicit; the principle is useful even when you use a different stack.

What happens when one order needs two locations and a short pick?

Consider an illustrative order, O-1042, for eight desk lamps and four replacement shades, all going to one customer. Warehouse East has six lamps and four shades available to allocate. Warehouse West has two lamps. The business permits a split only when one location cannot supply the complete order, and it promises the customer two parcels before release. East receives instructions for six lamps and four shades; West receives an instruction for two lamps.

During picking, East finds that one lamp is damaged. The warehouse confirms five lamps and four shades, records one lamp as short, and does not mark the ten instructed units as shipped. West ships its two lamps. East ships nine items in one parcel. The original order now has seven lamps and four shades dispatched, with one lamp still open. The missing lamp needs a new supply decision: allocate a replacement, tell the customer about a delay, or cancel that line under the agreed policy.

Illustrative line-level quantity ledger after the first dispatches
Order lineOrderedEast shippedWest shippedStill open
Desk lamp8521
Replacement shade4400
Total units12921

For each line, ordered quantity must equal shipped quantity plus quantity still open plus any quantity explicitly canceled. The parcel records should name which lines and quantities they contain. A tracking number belongs to a parcel or shipment, not vaguely to “the order.” If a system displays one overall state, derive it from the line and shipment records rather than letting it overwrite them.

Who decides where the order goes?

Agree on the release rule before writing routing logic. The commerce platform may accept payment or a purchase order; an ERP may hold the order for credit or stock review. The warehouse should receive work only when the agreed conditions pass. Record the accepted order revision, customer and ship-to IDs, item IDs, units of measure, quantities, shipping service and promised date. A later edit must change the existing instruction or create a controlled replacement, never an unexplained second order.

Then name the routing authority. It may be the commerce system, an order management system (OMS), the ERP, or a dedicated integration. That authority should compare sellable stock by location, reservations, location capability, delivery promise, carrier coverage and the cost of an extra parcel. Make the priority explicit: for example, first exclude locations that cannot ship the product, then meet the promised date, then prefer one parcel where feasible, then minimize fulfilment cost. Another business may choose a different order. The important part is that staff can explain why O-1042 went to East and West.

Routing should not be confused with warehouse acceptance. Sending an instruction is a request; the receiving system must acknowledge the line, quantity and location it can perform. If it rejects an item or cannot meet the cutoff, the order needs a visible reroute or review. Microsoft describes order orchestration across different platforms and partners; you do not need that product to apply the same ownership rule. Spree’s order documentation also shows that a location and shipment split can be changed in the commerce layer. In either case, decide which system is authoritative before allowing two places to reroute the same work.

O-1042 stays linked to every instruction and parcel
  1. 01
    What did the customer buy?Commerce or order entry

    Order ID, revision, line IDs, address, selected service and customer promise

  2. 02
    May operations release it?ERP or order control

    Payment or credit decision, hold reason and released quantities

  3. 03
    Which location takes each line?Routing authority

    Instruction ID, location, line quantities, priority and accepted promise

  4. 04
    What was actually picked and dispatched?Warehouse or 3PL

    Accepted, short-picked and shipped quantities; parcel ID and dispatch time

  5. 05
    What can the customer track?Carrier and customer view

    Carrier, service, tracking reference, scan state and next action

Illustrative ownership map. One product may own several roles, but each decision needs one authority.

What data must move from pick to tracking?

The warehouse management system (WMS) or 3PL needs a stable instruction ID and the source order line IDs, not only a printable address label. Its response should distinguish accepted from rejected instructions, then picked from short-picked quantities. At dispatch, send back parcel IDs, the lines and quantities inside each parcel, carrier, service, tracking reference and handover time. If a carrier assigns tracking after the parcel leaves, keep the shipment pending a tracking update rather than inventing a number.

Store both sides’ IDs together. When East sends parcel E-884, the integration must know that it belongs to instruction E-1042, order O-1042 and its exact lines. When West sends W-212, it must not replace East’s tracking in the storefront. The customer-facing system should show both. A support agent should be able to move from a parcel to the order, the warehouse event and the remaining commitment without searching three inboxes.

This is a practical distinction in many systems. ERPNext documents a Pick List for warehouse picking, a Delivery Note for quantities sent from a Sales Order, and a Shipment for carrier and tracking details. ERPNext permits partial Delivery Notes against one Sales Order. Those are examples of separate records a workflow must reconcile; your products may use different names.

What should happen when the straight path breaks?

Automated order fulfillment is useful only when the team can see and resolve the orders that automation cannot complete. Put each exception in a queue with the order, line, instruction and parcel IDs; the last successful step; the reason; the next action; and an owner. Escalate by age or promised dispatch time, not merely by the number of failed messages.

Exception rules to agree before connecting a warehouse or 3PL
EventWhat remains trueNext action and owner
Short pickOnly confirmed picked units may move toward dispatch; the shortage stays open.Warehouse records the reason; stock owner reallocates or revises the promise; customer service updates the buyer.
Split shipmentEvery parcel keeps its own line quantities and tracking; the parent order retains the remainder.Order team confirms the split policy, delivery promise and extra-carriage cost.
Cancellation after warehouse acceptanceA storefront cancellation request is not proof that picking stopped.Warehouse or 3PL confirms whether work can stop; support waits for that response before promising a refund or cancellation.
Carrier booking or label failurePacked goods are not yet a valid dispatched parcel.Shipping team retries or selects an approved service; do not send “shipped” before the parcel is accepted.
Missing tracking updateThe parcel may have left, but the customer view is incomplete.Integration owner retries or reconciles carrier and warehouse records; support sees the gap and expected update.

Cancellation is especially sensitive once another company holds the goods. The workflow should request cancellation from the executing party, wait for accepted or rejected status, and decide whether the customer needs a return or other remedy. A store, ERP or 3PL may use different status words; map what those states mean before automating a refund.

How do you judge whether the workflow is worth building?

Compare the current manual workload with the operating model after integration. Count orders needing re-entry, short picks, extra parcels, failed labels, missing tracking updates and support contacts. For each, record monthly volume, minutes of staff work, carrier charges and the customer impact. Include the one-time build, recurring connector fees, monitoring and the person who will maintain location rules. Do not assume every split is bad: a second parcel may be the only way to keep a promised date. Price that choice rather than hiding it.

For O-1042, a rule that minimizes parcels could hold all items until East receives two more lamps. A speed-first rule sends two parcels and leaves the damaged lamp outstanding. Neither is automatically correct. Compare the customer promise, incremental shipping cost, warehouse effort and stock arrival confidence. If the promise changes, make the revised date visible before dispatch. The decision belongs to the business, while the integration must enforce and expose it.

Test the proposed workflow with real records before rollout
TestEvidence of a pass
Release an eligible order and hold an ineligible oneOnly the released revision reaches operations; the hold reason is visible.
Route a complete order and O-1042Location choice follows documented rules; instructions carry correct line quantities.
Record the East short pickSeven lamps and four shades are shipped across two parcels; one lamp remains open.
Send two tracking updates out of orderBoth parcel references appear correctly; one update does not erase the other.
Cancel after the 3PL has accepted workThe cancellation request receives an explicit response; staff do not promise a result early.
Repeat a dispatch message and interrupt the integrationNo duplicate shipment is created; the failure is visible and retryable against the same IDs.
Reconcile at day endOrders, instructions, dispatched quantities and customer updates agree or appear in an exception report.

How do you implement the first reliable route?

A practical sequence for an order-to-shipment integration
  1. 01
    Trace real orders

    Follow one normal order, one split order and one failed or changed order through commerce, ERP, warehouse, carrier and support. Collect IDs and manual repairs.

  2. 02
    Agree the rules and records

    Name the release and routing authorities; define required fields, acknowledgements, line quantities, status meanings, cancellation policy and exception owners.

  3. 03
    Connect one complete path

    Move a released order to a location, receive acceptance, return actual dispatch quantities and parcel tracking, and update the customer view.

  4. 04
    Add recovery

    Validate messages, prevent duplicates, retry safely, reconcile missing updates and give staff a queue for decisions automation cannot make.

  5. 05
    Pilot and measure

    Start with a limited order group. Compare dispatch time, split rate, missing tracking and manual repair time with the baseline, then widen the route.

A good first release does not need to automate every carrier or exception. It does need to tell the truth about every order it touches. If you need help mapping a real flow and building the handoffs, see Harmatiq’s fulfilment and logistics work and integration services. For the larger path from accepted order through invoice and payment, read the lead-to-cash guide.

Find the handoff that needs fixing.

Bring one real order, the systems it crosses and the exceptions your team handles manually. We can turn that journey into an implementation scope.

Discuss your workflow