> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Picking lists

> Staging a job's materials from the warehouse to the point of use, tracked line by line.

A picking list directs warehouse staff to stage job materials at the point of use. Each line specifies the material, quantity, source, and destination lineside bin at the operation's work center. Picking transfers stock without consuming it; production consumes it later.

## What a picking list picks against

Picking is driven by production, not by shipping. A list is generated from **job operations** that still have unstaged material. Alforse looks at each operation's materials, checks whether the operation's own lineside bin already holds enough on hand to cover them, and lists only what's genuinely outstanding. An operation already on a non-cancelled picking list won't be offered again, so you can't accidentally pick the same work twice.

Every line ties back to a specific job, job material, and (usually) job operation. There is no picking against a shipment or a sales order here. Shipments pull finished goods out to customers and are their own document; picking stages raw and component material *into* a job.

NOTE

A material needs picking only when its lineside bin doesn't already cover the operation's issue quantity. Alforse tests the **actual on-hand at that bin**, not where the job material's record happens to point. Material line-stocked at the work center is already staged, not an outstanding pick.

## Header and line status

A picking list header moves through five states. It starts at **"Draft"** and goes to **"In Progress"** when someone starts it. It ends **"Completed"** when every line is picked, or **"Partial"** when it was finished with a shortage or with material still unpicked. **"Cancelled"** is a terminal off-ramp.

<details>
  <summary>**Draft**</summary>

  Generated and assigned, nothing picked yet.
</details>

<details>
  <summary>**In Progress**</summary>

  The list was started (Start in the ERP or on the MES floor) and is being picked.
</details>

<details open>
  <summary>**Completed**</summary>

  Finished with every line fully picked or Cancelled. The list locks.
</details>

<details open>
  <summary>**Partial**</summary>

  Finished with at least one Short line, or with unpicked material that was acknowledged. The list locks like Completed.
</details>

<details>
  <summary>**Cancelled**</summary>

  The list is abandoned. It locks, and its lines no longer block re-generating those operations.
</details>

Finishing the list is a deliberate action. **Finish** lands on **"Completed"** only when no line is outstanding and none is Short; otherwise it lands on **"Partial"**.

Each line carries its own status:

<details>
  <summary>**Pending**</summary>

  Not yet picked. Still outstanding work.
</details>

<details open>
  <summary>**Picked**</summary>

  The pick quantity has been moved to the lineside bin.
</details>

<details>
  <summary>**Short**</summary>

  Picked less than required, and the shortage is acknowledged.
</details>

<details>
  <summary>**Cancelled**</summary>

  The line's requirement is dropped. It no longer counts as outstanding.
</details>

## Short picks don't silently close the list

When there isn't enough stock, a picker enters how many were actually pulled and marks the line **"Short"**. That is a deliberate, human-acknowledged shortage, not an error.

HEADS UP

A list with a **"Short"** line never finishes as **"Completed"**: Finish lands it on **"Partial"**. If a line is still unresolved (not fully picked, Cancelled or marked Short), what Finish does depends on **Settings → Inventory → Finishing an incomplete pick**. With **warn** (the default) the operator sees "Finish with material unpicked?" and can press **"Acknowledge & finish"**, which lands the list on Partial. With **error**, Finish is refused ("Can't finish — still unpicked: …") until every line is picked or marked Short.

## Where picking happens

Picking lists are generated and managed from the ERP, and the same lists are worked on the **MES shop floor**, where an operator opens an assigned list, taps **"Start"** to move it to **"In Progress"**, picks each line, and taps **"Finish"** to close it. Tracked items (serial and batch) are picked by scanning the specific lot.

HEADS UP

Once a list is **"Completed"**, **"Partial"** or **"Cancelled"** it locks: no further picks or unpicks. **Reopening is ERP-only** (**Reopen** on the picking list header) — it needs the inventory delete permission, so the floor can't reopen a closed list. The MES surface tells the operator to reopen it from the ERP instead. This keeps a finalized pick from being quietly reworked at the station.

## What posting a pick does to stock

A pick is a **transfer**, never a consumption. Posting one writes two balanced item-ledger entries: a negative at the warehouse source bin and an equal positive at the operation's lineside bin. On-hand doesn't drop; it just relocates to the point of use. Alforse also repoints the job material at the lineside bin, so when production backflushes or issues the material, it draws from where the pick just put it.

* **Untracked material** posts the transfer pair and marks the line **"Picked"**.
* **Serial and batch** picks additionally record a tracked-entity movement, so the exact lot is traceable end to end. Picking part of a batch **splits** it: the picked quantity moves to lineside and the remainder stays behind as a new lot.

An **unpick** reverses the transfer, restores the warehouse source as the consumption point, and returns the line to **"Pending"**. Picked-but-unconsumed material is returned from the lineside bin to the warehouse automatically, so leftover staged stock never gets stranded at the line. **Settings → Inventory → Returning unused picked material** sets when: when the whole **job** completes (the default), or as soon as each **operation** is Done.

NOTE

Because a pick only moves stock and never checks availability first, on-hand at a bin can go negative — the same way shipping and issuing do. Alforse lets the floor proceed and reconciles later rather than blocking the work.

## Related

**Inventory & locations**

Storage units, the ledger, and how on-hand is tracked.

[Open](/docs/reference/inventory.md)

**Jobs**

The production work a picking list stages material for.

[Open](/docs/reference/jobs.md)

**Shipments**

The outbound counterpart: finished goods out to customers.

[Open](/docs/reference/shipments.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.