Fulfillment
Your warehouse team picks items off shelves, packs them into parcels, and hands them off to a carrier. This page covers how Carriyo models that work.
Carriyo represents this stage with two first-class entities (Pick and Pack) that operate on a Fulfillment order already created by the Orders stage.
If you're fulfilling outside Carriyo, using your own WMS for
pick / pack, you move the fulfillment order from allocated to
fulfilled directly via the API. Pick and Pack don't enter the
picture, and Carriyo learns the work is done from the
fulfilled event.
The model
The fulfillment order is the unit of fulfillment work. Each Fulfillment order has line items that move through this status ladder during the warehouse stage:
allocated → pick_in_progress → picked → pack_in_progress → fulfilled
│ │ │ │ │
└ ready for pick └ pick started └ pick completed └ pack started └ pack completed
A Pick is a unit of picking work: one or more line items that an operator collects together. A Pack is a unit of packing work: picked items being consolidated into parcels at a packing station. Both have their own status machines (see Pick and Pack).
The line-item statuses above are how the fulfillment order
learns that pick / pack work is in progress. The Fulfillment
Order's own status (open, allocated, processing,
fulfilled, cancelled, closed) stays coarser-grained; it
doesn't track pick / pack progress directly.
The handoff out of fulfillment
The Fulfillment stage ends when a Pack completes. What happens
next depends on the fulfillment order's delivery_method:
- Standard delivery. Carriyo moves the line items to
fulfilledand marks each Shipment asready_to_ship. The shipment-status webhook fires forready_to_ship. Shipping takes over. - Customer collection. Same line-item and shipment transitions, plus Carriyo creates a customer collection record to track the pickup, including the OTP verification flow. See Customer collection for the Collection entity and lifecycle.
Pick, Pack, and Collection lifecycle events themselves do not
fire webhooks. Your systems learn that fulfillment work
progressed by reading the affected line item statuses or by
watching for the ready_to_ship shipment transition.
Configuration
In the Fulfillment App: Pick and pack settings (auto-create behavior, scan requirements, mispick handling, clustering rules, ship zones, packing stations, bin locations, printers) are all configured in the Fulfillment App's Settings, not in the Carriyo Dashboard.
In the Dashboard: User permissions for the Fulfillment App
(order, pick, pack, ship, admin scopes per location)
are assigned in Dashboard user management.
See Fulfillment App for the operator-side detail.
How it fits with other modules
- Orders. The fulfillment order enters the Fulfillment stage after allocation.
- Shipping. Pack completion is what
produces a
ready_to_shipShipment. - Locations. Packing stations and bin locations are scoped per location.
- Fulfillment App. The app warehouse operators use to drive the pick → pack flow.