Appearance
Inventory Control Service (ICS)
ICS — Inventory Control Service
Contract-only documentation for Inventory Control Service (ICS).
Status
- Implementation: implemented (core stock, zones/bins, movements including putaway/pick/pack/ship/replenishment, stock transitions, adjustments, cycle counts with plans/approvals, receiving + QC, transfers, consignment, comments/inbox, org-wide search)
- OpenAPI:
/ics/openapi.yaml
Scope
- Org-scoped, facility-aware, and channel-aware where applicable.
- No UI; headless API + eventing only.
Clarifications (B7)
- Buckets/terminology:
on_hand: total physical stock at a logical facility (sum across bins).available: on-hand minus holds (eligible for sale).reserved: soft hold for a cart/quote.allocated: hard hold for an order/fulfillment plan.committed: stock committed to a shipment/pick wave.quarantine/damaged: non-sellable buckets pending QC or disposition.in_transit: stock between facilities (transfer/return).
- Negative stock policy: configurable per
logical_guid + variant_id. Default is protected; overcommit is allowed only when protection is disabled. - Reservation/allocation TTL defaults: when
expires_atis omitted, ICS applies channel-family defaults. POS family (g3npos,g3nlegacypos,kiosk,pos_generic) defaults to 5 min; DTC/Shopify family (shopify,shopify_plus,g3nlegacyshopify,dtc_generic) defaults to 15 min; wholesale (wholesale_generic) defaults to 60 min (unknown codes also fall back to wholesale). Allocation holds default to 120 min for all channels. Overrides:ICS_RESERVATION_TTL_MINUTES_POS,ICS_RESERVATION_TTL_MINUTES_ECOM,ICS_RESERVATION_TTL_MINUTES_WHOLESALE,ICS_ALLOCATION_TTL_MINUTES_POS,ICS_ALLOCATION_TTL_MINUTES_ECOM,ICS_ALLOCATION_TTL_MINUTES_WHOLESALE. Commit TTL remains aligned to ship/pick windows. - Stock card events: immutable audit records with
reason,source_refs,actor, quantity delta, and optional cost deltas. - Transfers: request → approval → in_transit → received; partial shipments supported; receipts reconcile quantities.
- Counts: count plan (policy) → count create → submit → approve/reject; variances create adjustments with reasons.
- Bins/zones: zones are defined in OFM; bins are defined in ICS and reference logical+zone context.