Home›
Post Purchase Operations

Ecommerce Fulfillment Automation: What to Automate First

October 1, 2026
VerifiedVerified & Reviewed
Ecommerce fulfillment automation is the use of software rules and warehouse machinery to move an order from checkout to a shipped parcel without a person handling each step. It has three layers: software rules for routing, holds, labels and inventory sync; physical automation such as conveyors and picking robots; and exception handling for orders that hit a stockout, get stuck between systems or ship in part. Automate the detection and resolution of those exceptions first, because that is where a broken order gets fixed before the shopper notices.

What is ecommerce fulfillment automation?

Ecommerce fulfillment automation is the use of software rules and warehouse machinery to move an order from checkout to a shipped parcel without a person handling each step. Shopify defines it as "the practice of using digital workflows and software to manage tasks like order capture and inventory tracking without manual intervention" (Shopify).

In practice it comes in three layers:

  • Software rules: routing, holds, labels and inventory sync in the store, the order management system (OMS) and the warehouse management system (WMS).
  • Physical automation: conveyors, sorters and picking robots inside the warehouse.
  • Exception handling: what happens to an order that cannot follow the rules, because the stock is not there, the order never reached the warehouse, or only part of it shipped.

Most guides stop at the first two. I start with the third. In some of the businesses I talk to, order fulfillment is separate and does its own thing, and customer service sits downstream. They do not see what is coming upstream, and they only find out when there is a complaint. By then the ticket is evidence that a promise already broke in operations. So this is where I would point automation first: the key is automating the resolution of issues before the customer even needs to ask "where is my order?"

This guide covers all three layers and is the fulfillment chapter of our wider guide to ecommerce automation. Every order is a promise. Keeyu keeps it.

What fulfillment software automates

Fulfillment software automates the decisions between a paid order and a packed parcel: which location ships each item, whether the order should be held, what goes on the pick list and label, and how stock counts stay aligned between systems. Routing and holds usually run in the store platform or OMS, picking and labels in the WMS or 3PL system, and stock sync in an integration between them.

How Shopify models the work

On Shopify, the unit of fulfillment work is the fulfillment order, an item or group of items in an order "expected to be fulfilled from the same location". One customer order can carry more than one fulfillment order, which is how an order splits across warehouses (Shopify.dev, FulfillmentOrder). Each fulfillment order has one of seven statuses (Shopify.dev, FulfillmentOrderStatus). Five of them deserve a rule. The other two, CLOSED and CANCELLED, are end states.

Status

Shopify's meaning

Rule worth automating

OPEN

Ready for fulfillment

Alert if still open after your dispatch cutoff

SCHEDULED

Deferred until a set date and time

Check the date matches what the shopper was told

ON_HOLD

Fulfillment cannot start until the hold is released

Route by hold reason (next table)

IN_PROGRESS

Being processed

Alert if no shipment follows inside your dispatch promise

INCOMPLETE

Cannot be completed as requested

Treat as a short pick and open the partial fulfillment workflow

Shopify also names why an order is on hold. It lists eight hold reasons (Shopify.dev, FulfillmentHoldReason). Six need an owner.

I treat a hold reason as the platform telling me why an order stopped. It only helps if someone is assigned to read it. One customer service lead told me their process was a person opening Shopify to look for orders that had been on hold for more than two days, with no report of how many were waiting for which reason. What I showed them was unfulfilled orders in a first-in, first-out tracker that goes back 30 days, where you can see what has not shipped and the reason why.

Hold reason

Who should own it

First action

AWAITING_PAYMENT

Finance or payments

Retry or chase the payment, and cancel at an age you set

HIGH_RISK_OF_FRAUD

Fraud reviewer

Review inside a time limit so good orders are not stranded

INCORRECT_ADDRESS

Customer service

Correct it, or ask the shopper the same day

INVENTORY_OUT_OF_STOCK

Operations

Run the stockout workflow below

UNKNOWN_DELIVERY_DATE

Operations or buying

Get a date from the supplier, then tell the shopper

AWAITING_RETURN_ITEMS

Returns

Release the exchange when the return is scanned in

Do not copy another brand's rule set. Every single e-commerce business is different. They have different tech stacks and different SOPs, so write the rules from your own statuses and hold reasons. If you build on Shopify, see what Flow can and cannot do for the trigger, condition and action mechanics.

Warehouse robotics and hardware: when physical automation pays

Physical fulfillment automation is machinery that moves, stores, sorts or picks stock inside a warehouse, such as conveyors, automated storage and retrieval systems and autonomous mobile robots. It raises the number of units each worker can pick, pack or sort in an hour.

I have packed boxes and unstuffed containers in warehouses, and one thing holds for every machine in that building: a robot picks what the system says exists. Keeyu is not warehouse hardware and it is not a WMS, so I am not going to rank robots. Most of what is published on this topic comes from equipment sellers, so test fit yourself. Take last month's late orders and sort each one by where the time was lost:

  • Before the building: the order was held, never synced, or sold stock that was not there.
  • Inside the building: the order waited in a queue to be picked, packed or sorted.
  • After the building: the parcel was late with the carrier.

Hardware only fixes the middle group. The equipment makers say the same about data: OPEX, a hardware maker, warns that inaccurate inventories "may lead to backorders or partial order fulfillment". Fix the count before you speed up the pick.

Automating fulfillment through a 3PL

With a third-party logistics provider (3PL), the picking and packing automation belongs to the provider, and the merchant's job is to automate the handoff: sending orders in, getting acceptance and status back, and reconciling the two. Whether to use one at all is covered in in-house versus 3PL fulfillment.

Age is the signal I look for first. A 3PL portal can show what is open without showing how long it has been open, so get timestamps into the feed.

Before you sign, write the status and exception feed into the 3PL agreement. At minimum it should send back:

  • An accept or reject for every order the 3PL receives.
  • Each status change per order, with a timestamp.
  • The reason for any short pick or hold.
  • A tracking number for every parcel, including each part of a split order.
  • Stock on hand by SKU and location.

A fulfillment order sent to a fulfillment service carries a request status: SUBMITTED when the merchant has requested fulfillment, then ACCEPTED or REJECTED when the service answers (Shopify.dev, FulfillmentOrderRequestStatus). The rule to automate: every SUBMITTED request should turn into ACCEPTED or REJECTED inside a window you choose, and anything still waiting after that is a stuck order.

In one product demo, the daily view showed that five days earlier 44 orders were still unshipped, which meant they were still sitting inside the 3PL's system. The portal showed what was open and in process, but not by day, and the day is what tells you an order has stopped moving.

Is fulfillment automation worth it? The business case

Fulfillment automation is worth it when the hours and errors it removes cost more than the software, hardware or 3PL fees that replace them. The standard test is payback in months: upfront cost divided by the monthly labor and error cost removed, net of monthly fees. Vendors will model that for the normal order. The exception you have to model yourself:

Monthly exception hours = orders per month x exception rate x minutes per exception / 60

Do not borrow anyone else's exception rate, because every stack breaks in its own places. Measure yours: last month's orders that needed a manual touch after checkout, divided by total orders. For the minutes, time a few real ones. In one product demo of an oversell workflow, the manual version was counted at 12 minutes per order, 60 minutes across five orders.

With illustrative inputs: at 100,000 orders a month, a 1% exception rate and 12 minutes each, that is 1,000 exceptions and 200 hours of manual work a month.

Manual checking has a ceiling. A founder I spoke to, who runs a fast-growing FMCG brand, hit it. She was at her desk by 7 am every morning, checking every order from the day before for delays, address errors and stuck shipments, then emailing customers before they knew. Then the brand ran a sale, orders doubled overnight, and 7 am became 6 am, then 5 am, then it broke. She told me: "I went from feeling like the hero to feeling like I was drowning."

The math behind her story:

  • At 500 orders a month, checking each one takes about 2 hours a day.
  • At 1,000 orders a month, it is 4 hours or more.
  • At 2,000 or more, you need to hire two more people to keep doing the same checks.

She eventually automated exception detection, and what took 4 hours now takes 20 minutes. I call this the Manual Proactive Ceiling. You can't scale a human doing robotic work.

The four exception workflows to automate first

An exception workflow is a rule set for an order that cannot follow the normal path: a trigger, a check, an action and an owner for escalation. The four below cover the warehouse side of fulfillment. For late and lost parcels, see carrier-side delivery exceptions.

This is the part Keeyu is built for, a category we call proactive e-commerce operations. Keeyu connects the systems you already run, flags the order that is out of stock, partially fulfilled, unfulfilled or stuck in the warehouse, then automates the resolution. The mechanism is Detect. Decide. Act. Every order is a promise. Keeyu keeps it.

1. Stockout after checkout

A stockout after checkout happens when the store accepts an order for a unit the assigned location does not have.

  • Trigger: the fulfillment order goes on hold with the reason INVENTORY_OUT_OF_STOCK, or the warehouse reports a short pick.
  • Check: stock for that SKU at every other location that can ship to the shopper.
  • Act: if another location has it, move the order there. If none does, offer the shopper an alternative or a refund.
  • Escalate: to the operations owner when no location has stock and there is no restock date.

Timing decides whether the reroute works. On Shopify, moving a fulfillment order to another location fails if the fulfillment order is closed, if progress has been manually reported on it, or if the destination does not stock the item. And once a request to a fulfillment service is SUBMITTED or ACCEPTED, you cannot change the location until the service accepts a cancellation (Shopify.dev, fulfillmentOrderMove). So run the stock check before the order is submitted to the 3PL. If the short pick comes after that, request a cancellation and move the order only once the service accepts it.

Keeyu's out-of-stock workflow runs in a fixed order: get the order details, check inventory, find another fulfillment location, find a product alternative, validate that stock, then prepare the order. If nothing is available, it cancels the order and processes the refund. It can scan all your warehouses and change the fulfillment location, so when an alternative location has the unit, we reroute the order there and the shopper never knows. Where a reroute costs a day, you can set a rule that a stockout always upgrades the order to express.

2. Stuck orders

A stuck order is one that is paid in the store but has not reached the next system or status in the time your dispatch promise allows.

  • Trigger: the order is older than your promise allows and the warehouse has not accepted it, or it sits on hold with no action.
  • Check: whether the order exists in the ERP or WMS, and whether the last scheduled sync ran.
  • Act: push the sync again, or send the whole list to the warehouse in one message.
  • Escalate: to whoever owns the integration when many orders share one cause.

We take the customer promise, for example "order before 12, ship same day", and work backward from the moment the order is placed. In one product demo the order tracker showed 173 orders that had not synced and were stuck between the storefront and the ERP or WMS, which is 173 potential "where is my order" complaints. On another, 188 orders had been received by the warehouse and not processed, and the fix was one message to the warehouse.

For sync failures, Keeyu's workflow checks the schedulers across the store, the warehouse and the payment gateway, identifies the affected orders and proposes a fix. It runs the full sync once a person approves it. See the order management process for each step an order should pass.

3. Partial fulfillment

Partial fulfillment is when some items in an order ship and the rest do not, either by design (stock sits in two locations) or by failure (a short pick). When a merchant requests fulfillment for only some items, Shopify splits the fulfillment order into two: the submitted items and the remainder.

  • Trigger: a fulfillment order turns INCOMPLETE, or an order has one shipment and open lines left.
  • Check: whether the cause is a real shortage or a system mismatch, such as a SKU mapping error or a failed sync.
  • Act: tell the shopper before the first parcel lands what is coming now, what follows, and both tracking numbers.
  • Escalate: mapping errors to whoever owns the catalog.

One brand told us it was sending 1,000 split-dispatch messages a month entirely by hand. Keeyu can identify the system mismatch behind a partially fulfilled order, and a rule can then send the shopper the split notice with a tracking number for each parcel. See split shipments for when splitting is the right call.

4. Bulk actions on unfulfilled orders

A bulk action applies one fix to a whole group of orders that share a cause, instead of opening one ticket per order.

  • Trigger: detection returns a group of orders with the same SKU, warehouse or day.
  • Check: a person confirms the group and reviews the message once.
  • Act: email the shoppers or the warehouse, cancel, refund, or add an internal note to the helpdesk.
  • Escalate: to the operations owner when the same group shows up twice.

In Keeyu you select the unfulfilled orders and run one action across all of them, including an internal note in a helpdesk such as Zendesk. If you have 50 stockouts, one click updates each shopper, cancels the order and pushes a full refund. For orders that are running late, you can send a bulk apology with a discount code. If a shopper replies, Keeyu processes the reply and closes the ticket in Gorgias. Helpdesk manages complaints. Keeyu prevents them. The helpdesk still holds the record of what the shopper was told.

Where to start, and what to keep manual

Start fulfillment automation with your most common exception: detect it automatically, attach the fix as an action a person approves, and drop the approval once the results are trusted. Not everything should be automated on day one.

  • Write down the promise. The dispatch cutoff on your site is the clock every rule runs against.
  • Audit 50 orders from one day last week by hand, following each through every system, as week one of a six-week fix. If you are still doing that audit manually after week five, that is the signal. The process works, but it should not live in spreadsheets forever.
  • Add the action with a person approving it. When we rolled this out, the brands using it started by saying "I want to be involved." Now they are saying, "Cut me out of that. I've got comfort."
  • Keep a person on fraud holds, high-value orders and any substitution the shopper did not choose. See which decisions still need a human.
  • Keep the log. Under 16 CFR 435.2(a)(4), in an FTC action a seller without records of the systems and procedures that assure timely shipment faces a rebuttable presumption that it had no reasonable basis for its shipping promise (Cornell LII). A log of what each rule detected and did is that kind of record.
  • Measure fulfillment performance, partial fulfillment and orders shipped inside the promise each week. Keeyu's Insights dashboards report all three.

To see these workflows on your own stack, read the product page or book a demo. Keeyu gets shoppers what they want, on time, as promised.

Every order is a promise. Keeyu keeps it.

Frequently Asked Questions

What is ecommerce fulfillment automation?

Ecommerce fulfillment automation is the use of software rules and warehouse machinery to move an order from checkout to a shipped parcel without a person handling each step. It covers order routing, fulfillment holds, picking and labels, inventory sync and tracking updates. It also covers what happens when an order cannot follow the normal path, such as a stockout or an order that never reaches the warehouse.

What can be automated in order fulfillment?

Order routing to a stocked location, holds for payment, fraud or address problems, pick lists and shipping labels, inventory sync between store and warehouse, and tracking notifications can all run on rules. Inside the warehouse, conveyors, sorters and robots can automate the physical movement of stock. The exceptions can be automated too: rerouting a stockout, flagging a stuck order, messaging the shopper about a partial shipment and resolving a batch of unfulfilled orders in one action.

What happens when an item is out of stock after the order is placed?

The order should go on hold with an out-of-stock reason, and someone or something has to decide what happens next. The usual order is to check other locations for the same item, reroute if one has it, and otherwise offer the shopper an alternative or a refund. On Shopify the reroute has to happen before the fulfillment request is submitted to a fulfillment service; after that, the service has to accept a cancellation before the order can move. Our list of oversell and backorder tools covers the software for this.

How do you handle a partially fulfilled order?

First find the cause: a real shortage at one location, or a system mismatch such as a SKU mapping error or a failed sync. Then tell the shopper before the first parcel arrives what is shipping now, what follows and the tracking number for each parcel. Our guide to split shipments covers when to split and where split orders go wrong.

How do I find orders that never reached the warehouse?

Compare the orders your store has sent with the orders your warehouse or 3PL has accepted, and flag any order older than your dispatch promise that has no acceptance. On Shopify, a fulfillment request that stays SUBMITTED without turning ACCEPTED or REJECTED is the signal. Our guide to the order management process explains each step an order should pass on the way.

How do I automate order routing in Shopify?

Shopify assigns the items in an order to locations as fulfillment orders, and one order can produce more than one fulfillment order when stock sits in different places. A fulfillment order can be moved to another location that stocks the item, as long as its request has not been submitted to a fulfillment service. Our guide to Shopify automation covers what Flow can and cannot do.

Is fulfillment automation worth it for a small brand?

It depends on how many orders need a manual touch after checkout and how long each one takes. Multiply your monthly orders by your exception rate and the minutes per exception to get the hours you spend today. By my math, checking every order by hand takes about 2 hours a day at 500 orders a month and 4 hours or more at 1,000. Keeyu's plans are on the pricing page.

What is the difference between fulfillment automation and warehouse automation?

Warehouse automation is the physical part: conveyors, sorters, storage systems and robots that move and pick stock inside the building. Fulfillment automation is wider and includes the software rules that route, hold and release orders before they reach the warehouse, plus the handling of exceptions after. A brand that uses a 3PL can automate fulfillment without owning any warehouse automation.

References

  • 1. Shopify, "Ecommerce Fulfillment Automation: Types + Tips (2026)", https://www.shopify.com/blog/ecommerce-fulfillment-automation. Definition of ecommerce fulfillment automation as using digital workflows and software to manage tasks like order capture and inventory tracking without manual intervention.
  • 2. Shopify.dev, "FulfillmentOrder" (GraphQL Admin API object), https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder. A fulfillment order is an item or group of items expected to be fulfilled from the same location, an order can have more than one, and a partial fulfillment request splits the fulfillment order into two.
  • 3. Shopify.dev, "FulfillmentOrderStatus" (GraphQL Admin API enum), https://shopify.dev/docs/api/admin-graphql/latest/enums/FulfillmentOrderStatus. The seven fulfillment order statuses and their meanings, including ON_HOLD and INCOMPLETE.
  • 4. Shopify.dev, "FulfillmentHoldReason" (GraphQL Admin API enum), https://shopify.dev/docs/api/admin-graphql/latest/enums/FulfillmentHoldReason. The eight reasons a fulfillment hold can carry, including out of stock, incorrect address, fraud risk and pending payment.
  • 5. Shopify.dev, "FulfillmentOrderRequestStatus" (GraphQL Admin API enum), https://shopify.dev/docs/api/admin-graphql/latest/enums/FulfillmentOrderRequestStatus. The request statuses between a merchant and a fulfillment service, including SUBMITTED, ACCEPTED and REJECTED.
  • 6. Shopify.dev, "fulfillmentOrderMove" (GraphQL Admin API mutation), https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderMove. When moving a fulfillment order to another location fails, and the rule that a location cannot change while a request is submitted or accepted until the fulfillment service accepts a cancellation.
  • 7. OPEX, "The Impact of Automation on Modern Order Fulfillment Processes", https://www.opex.com/insights/impact-of-automation-on-order-fulfillment/. Vendor source for the statement that inaccurate inventories may lead to backorders or partial order fulfillment.
  • 8. Cornell Law School Legal Information Institute, "16 CFR § 435.2 - Mail, Internet, or telephone order sales", https://www.law.cornell.edu/cfr/text/16/435.2. Paragraph (a)(4): in an FTC action, a seller without records of systems and procedures that assure timely shipment faces a rebuttable presumption that it lacked a reasonable basis for its shipping expectation.
  • 9. Shopify.dev, "fulfillmentOrderSubmitFulfillmentRequest" (GraphQL Admin API mutation), https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderSubmitFulfillmentRequest. When a merchant requests partial fulfillment, Shopify splits the original fulfillment order into two: one with the submitted items and one with the remaining items.

Keep the promise.

See how Keeyu catches and fixes post-purchase issues before customers notice.

In one call, we’ll map your operations and show how Keeyu detects issues, decides what needs to happen, and takes action across your existing systems.

We’ll confirm your integration requirements and rollout plan during the demo.