# ASRS flows

---

# Customer order model

**Order statuses**

To initialize customer order fulfillment, the Host system must push customer order(s) to Incloud via API. Order statuses are used by Incloud to track progress of orders throughout physical fulfillment and have the following meanings:

| Order Status | Description |  
| --- | --- |  
| `registered` | order registered and awaiting fulfillment; inventory has not yet been `reserved` and is `free` |  
| `reserved` | order fulfillment is in progress; inventory has been `reserved` and is no longer `free` |  
| `done` | order has been fulfilled; `reserved` inventory has been decremented |  
| `canceled` | order has been canceled before completion; any respective `reserved` inventory becomes `free` |

Order statuses above describe only the perspective of ASRS fulfillment. The Host system might have other statuses describing broader logistical context, payments, etc.

The diagram below summarizes customer order statuses and possible transitions:

**Order fulfillment sequence**

Once an order is created by the Host system via API it is in status `registered`. As soon as the order status changes to `reserved` it is placed into a FIFO queue for fulfillment. The timing of when orders are moved from `registered` to `reserved` is based on a `reservation function` set during site configuration. A single order is picked on a single workstation and once complete has status `done`.

A reservation function may have multiple arguments to build the queue in preferred priority, however, the sequence within the FIFO queue cannot be changed.

**Customer order picking modes**

From the point of view of Instock IMS, order picking is a sequence of inventory moves between cells. Each cell belongs either to a bin inside the grid or to a container outside the grid (carboard box(es), plastic tote, etc.)

Instock supports two modes of picking:

- **ASRS bin → ASRS bin**: pick from source bins of the ASRS and place into target bin(s) in the ASRS.  
- **ASRS bin → external container**: pick from source bins of the ASRS and place into external target container(s) that are not ASRS bins.

# Picking process overview

For the picking mode **ASRS bin → external container** the fulfillment process typically involves the following steps:

- Host system posts an order to Incloud API; customer order is in status `registered`.  
- Incloud puts order into a FIFO queue at reservation time; inventory is reserved and order status moves to `reserved`.  
- Associate is fulfilling an order at a workstation using `picking mode`.  
- Customer order picking is complete; order status moves to `done`.

# Decanting process overview

An associate can decant at any time by activating `decanting mode` at a workstation and scanning a product. The decanting process does not require an API request. Instock IMS will record inventory moves and change inventory values for decanted products.

If a product has not already been uploaded to Incloud PIM via API, associates will not be able to decant it.

Decanting into the ASRS typically involves the following steps:

- Associate activates `decanting mode` at a workstation terminal.  
- ASRS presents empty bins.  
- Associate chooses cell structure within a bin on a terminal and inserts dividers into a bin if necessary.  
- Associate scans a product and puts it into the selected bin cell. If the cell is full before all of the selected product is decanted, they can select an additional cell in the same bin and continue the sequence.  
- Once the bin is full and/or all of the product has been decanted, Associate confirms on the workstation terminal and ASRS sends the bin into its storage position. The Associate then continues decanting into the next empty bin.
