Commerce Fulfillment
Orchestrate outbound order fulfillment through wave planning, picking, packing, and shipping handoff.
How It Works
- Create a wave to group orders for efficient processing.
- Generate pick tasks for items in the wave.
- Workers complete picks, recording actual quantities.
- Create pack tasks and assign items to cartons.
- Create ship tasks and complete with carrier and tracking.
Usage
- CLI:
stateset fulfillment ... or stateset "create wave for orders ORD-001 ORD-002"
- Writes require
--apply.
- MCP tools:
create_wave, list_waves, release_wave, create_pick_task, complete_pick, create_pack_task, add_carton, create_ship_task, complete_ship.
Permissions
- Read:
list_waves — no --apply needed.
- Write:
create_wave, release_wave, complete_pick, add_carton, complete_ship — requires --apply.
Examples
stateset fulfillment create-wave --type batch --orders ORD-101,ORD-102,ORD-103 --apply
stateset fulfillment release-wave WAVE-2025-001 --apply
stateset fulfillment complete-pick PICK-0042 --quantity 10 --apply
stateset fulfillment complete-ship SHIP-0018 --carrier UPS --tracking 1Z999AA1012345 --apply
Wave Types
- Batch (default): group multiple orders
- Priority: expedited orders
- Zone: orders for a specific warehouse zone
- Single: one order per wave
Status Flows
Wave: Draft -> Released -> InProgress -> Completed (or Cancelled)
Pick: Pending -> Assigned -> InProgress -> Completed (or Short/Cancelled)
Pack: Pending -> Assigned -> ReadyToPack -> InProgress -> Completed (or Cancelled)
Ship: Pending -> ReadyToShip -> LabelPrinted -> Shipped (or Cancelled)
Package Types
- Box (default), Envelope, Tube, Pallet, Custom
Output
{"status":"shipped","wave_id":"WAVE-2025-001","picks_completed":12,"cartons_packed":3,"tracking":"1Z999AA10123456784"}
Present Results to User
- Wave number and order count.
- Pick completion rates and any short picks.
- Carton counts with dimensions and weights.
- Shipping labels and tracking numbers.
Troubleshooting
- Short pick: item not at expected location; check inventory and create adjustment.
- Wave stuck in progress: verify all pick tasks are completed.
- Carton overweight: split items across multiple cartons.
- Label generation failed: verify carrier credentials and shipment
tracking_number format.
Error Codes
FULFILL_SHORT_PICK: Item not found at expected location; inventory adjustment required.
FULFILL_WAVE_INCOMPLETE: Wave cannot complete because one or more pick tasks are still pending.
FULFILL_CARTON_OVERWEIGHT: Carton exceeds maximum weight limit; split items across cartons.
Related Skills
- commerce-inventory — stock consumed during picking
- commerce-shipments — shipping handoff after pack/ship completion
- commerce-warehouse — location data for pick tasks
References
- references/fulfillment-flow.md
- /home/dom/stateset-icommerce/crates/stateset-core/src/models/fulfillment.rs
- /home/dom/stateset-icommerce/crates/stateset-embedded/src/fulfillment.rs
1---2name: commerce-fulfillment3description: Manage fulfillment waves, pick tasks, pack tasks, and ship tasks. Use when processing outbound orders through the warehouse pick-pack-ship workflow.4---56# Commerce Fulfillment78Orchestrate outbound order fulfillment through wave planning, picking, packing, and shipping handoff.910## How It Works11121. Create a wave to group orders for efficient processing.132. Generate pick tasks for items in the wave.143. Workers complete picks, recording actual quantities.154. Create pack tasks and assign items to cartons.165. Create ship tasks and complete with carrier and tracking.1718## Usage1920- CLI: `stateset fulfillment ...` or `stateset "create wave for orders ORD-001 ORD-002"`21- Writes require `--apply`.22- MCP tools: `create_wave`, `list_waves`, `release_wave`, `create_pick_task`, `complete_pick`, `create_pack_task`, `add_carton`, `create_ship_task`, `complete_ship`.2324## Permissions2526- Read: `list_waves` — no `--apply` needed.27- Write: `create_wave`, `release_wave`, `complete_pick`, `add_carton`, `complete_ship` — requires `--apply`.2829## Examples3031```bash32stateset fulfillment create-wave --type batch --orders ORD-101,ORD-102,ORD-103 --apply33stateset fulfillment release-wave WAVE-2025-001 --apply34stateset fulfillment complete-pick PICK-0042 --quantity 10 --apply35stateset fulfillment complete-ship SHIP-0018 --carrier UPS --tracking 1Z999AA1012345 --apply36```3738## Wave Types3940- Batch (default): group multiple orders41- Priority: expedited orders42- Zone: orders for a specific warehouse zone43- Single: one order per wave4445## Status Flows4647**Wave:** Draft -> Released -> InProgress -> Completed (or Cancelled)4849**Pick:** Pending -> Assigned -> InProgress -> Completed (or Short/Cancelled)5051**Pack:** Pending -> Assigned -> ReadyToPack -> InProgress -> Completed (or Cancelled)5253**Ship:** Pending -> ReadyToShip -> LabelPrinted -> Shipped (or Cancelled)5455## Package Types5657- Box (default), Envelope, Tube, Pallet, Custom5859## Output6061```json62{"status":"shipped","wave_id":"WAVE-2025-001","picks_completed":12,"cartons_packed":3,"tracking":"1Z999AA10123456784"}63```6465## Present Results to User6667- Wave number and order count.68- Pick completion rates and any short picks.69- Carton counts with dimensions and weights.70- Shipping labels and tracking numbers.7172## Troubleshooting7374- Short pick: item not at expected location; check inventory and create adjustment.75- Wave stuck in progress: verify all pick tasks are completed.76- Carton overweight: split items across multiple cartons.77- Label generation failed: verify carrier credentials and shipment `tracking_number` format.7879## Error Codes8081- `FULFILL_SHORT_PICK`: Item not found at expected location; inventory adjustment required.82- `FULFILL_WAVE_INCOMPLETE`: Wave cannot complete because one or more pick tasks are still pending.83- `FULFILL_CARTON_OVERWEIGHT`: Carton exceeds maximum weight limit; split items across cartons.8485## Related Skills8687- commerce-inventory — stock consumed during picking88- commerce-shipments — shipping handoff after pack/ship completion89- commerce-warehouse — location data for pick tasks9091## References92- references/fulfillment-flow.md93- /home/dom/stateset-icommerce/crates/stateset-core/src/models/fulfillment.rs94- /home/dom/stateset-icommerce/crates/stateset-embedded/src/fulfillment.rs