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

# Bins and labels

> Set up zones and bins in a warehouse, print their labels, and see where every unit of a product lies.

Bins tell you where stock lies inside a warehouse: on which shelf, rack and level. Each bin has a code that is also
its barcode, so a label on the shelf can be scanned. Zones group bins (picking, overflow, returns…) and set the order
a picker walks them in.

> [!NOTE]
>
> Bins are an optional part of Inventory and are off by default. **Ask Omnilinker to switch on Bins for your
> organization.** Until then the **Bins** menu item and the **Bins** action on a product's stock are not shown.

Open **Inventory** > **Bins**. You need the **Bins** permission under **Inventory Management**. **Manage zones and
bins** lets you create, change and delete zones and bins and print their labels. **Move stock between bins**,
**Count a bin** and **Reconcile stock** let you use those actions on a product's **Bins** panel.

## Choose a warehouse

The page opens on your default warehouse. Choose another one from **Warehouse** at the top. The page has three tabs:
**Bins**, **Zones** and **To check**.

When an ERP changes the warehouse's stock (see [Warehouses](https://docs.omnilinker.pl/inventory/warehouses.md)), the page says so: a reconcile
there does not change the stock in Omnilinker, it adds a change for someone to enter in the ERP. See
[Changes for your ERP](https://docs.omnilinker.pl/inventory/changes-for-your-erp.md).

## Zones

On the **Zones** tab, click **Create zone** and enter a **Code**, a **Name**, a **Type** (**Picking**, **Overflow**,
**Receiving**, **Returns**, **Quarantine** or **Packing**) and a **Walk order**: zones with a lower walk order are walked
first. Two zones of one warehouse can't share a code.

Click **Edit** to change a zone, or clear **Active** to stop using it. A zone that has bins can't be deleted:
"The zone … has bins. Deactivate it instead, or move its bins first."

## Bins

The **Bins** tab lists the warehouse's bins grouped by zone, and within a zone by aisle when the zone has more than
one: the part of the code before the first `-` (`A` in `A-01-2`). For each bin you see its code, its rack, level and
position, whether it is **Picked from**, whether it is **Active**, how many products and units it holds, and when it
was **Last counted** (the oldest count of the products in it). Click a bin's code to see what's in it.

Filter by part of the code, by zone, and by active or inactive bins.

### Create bins

* **One bin.** Click **Create bin** and enter the **Code** (at most 32 characters), and optionally the **Zone**, the
  **Rack**, **Level** and **Position**, **Walk sequence** and **Picked from**. Leave **Walk sequence** empty to keep the
  default: the zone's walk order, then the code.
* **Many bins from a pattern.** Click **Create from pattern** and type a pattern. Each `{from..to}` is a range of numbers
  or letters: `A-{01..12}-{1..5}` makes `A-01-1` to `A-12-5`. As you type, Omnilinker shows every code the pattern
  makes, crosses out the ones that exist already (they are left out), and says how many new bins it will create, at most
  2000 at once. Click **Create … bins**.

Two bins of one warehouse can't share a code, compared without regard to case.

### Change, deactivate or delete a bin

Use the **⋯** menu on a bin's row: **Edit**, **Activate** or **Deactivate**, **Print label** and **Delete**. A bin
that holds stock can't be deactivated or deleted: "The bin … holds stock. Move or count it out first."

## Print labels

A bin label carries the bin's code as a Code 128 barcode (`OL-B-` and the code), the code in large type, and the zone,
rack, level and position under it. Print them:

* for the bins you tick on the **Bins** tab: **Print labels (…)**;
* for every bin of a zone: **Print labels** on the zone's heading, or on its row on the **Zones** tab;
* for one bin: **Print label** in the bin's **⋯** menu.

When printing is on for your organization and you have the **Print** permission, the labels go to your station's label
printer, one print job per bin (see [Stations](https://docs.omnilinker.pl/devices/stations.md): give a printer **Bin labels** under **What prints
here**). Otherwise the labels download as a ZPL file you can send to a Zebra-compatible label printer. Omnilinker
says where the labels went in a note above the list.

One print takes at most 2000 labels, the first in walk order: if a zone has more bins, the note says how many got
none, and you print the rest by ticking them. If printing fails part way, the note says how many labels went; print the
same bins again and only the labels not sent yet are printed.

Labels are 50 × 30 mm. If your label rolls are another size, ask Omnilinker to set **Bin label width (mm)** and **Bin
label height (mm)** for your organization. On a 50 mm label a barcode fits a code of up to 26 characters; a longer code
is printed turned along a tall enough label, and if it fits neither way Omnilinker prints nothing and names the bin:
shorten its code or use a larger label.

## A product's bins

On **Stock Levels**, open a row's **⋯** menu and choose **Bins**, or click **Bins** on a warehouse's row of a product's
page. The **Bins** panel shows, for that product in that warehouse:

| Line | What it means |
| - | - |
| **On hand** | What the books hold in this warehouse. |
| **On the shelves** | In the bins listed below. |
| **Picked** | Picked for orders and still on the books: on a cart, at a station, packed. |
| **Not on a shelf** | On hand that no bin and no order claims, such as a delivery waiting to be put away. Its parts follow. |
| **Booked before picking** | Orders already off the books whose units are still on a shelf. The pick takes them off it. |
| **Waiting for ‹ERP›'s order status** | Only on a warehouse an ERP manages: picked for orders the ERP may have realised already. |
| **Change for ‹ERP›** | Differences waiting to be entered in the ERP, or entered and not read back yet. |
| **Unexplained** | What no known cause explains. Shown in red when it is not zero. |

Under the figures, the panel lists the bins the product lies in, the orders it was picked for, and any open changes for
the ERP.

### Move, count and reconcile

* **Move** moves units from a bin, or from **Not on a shelf**, to another bin or to **Not on a shelf**. No total changes.
* **Count a bin** sets this product's quantity in a bin to what you counted. The difference moves to or from **Not on a
  shelf**; no total changes.
* **Reconcile** books what is **Unexplained** once you are sure every unit of the product in this warehouse is on the
  bins listed or picked for an order. Before you confirm, the panel says what it will do:
  * on a warehouse Omnilinker manages: "Books a count adjustment of …" (the stock changes);
  * on a warehouse an ERP manages: "Adds a change for ‹ERP› of … (RW or PW) for someone to enter in ‹ERP›; nothing
    changes in Omnilinker". See [Changes for your ERP](https://docs.omnilinker.pl/inventory/changes-for-your-erp.md).

If the figures change while you look, the reconcile is refused: "The figures changed while you looked…". Look again,
then reconcile. On a warehouse an ERP manages, a product can't be reconciled while an earlier change for the ERP is
waiting to be entered, or was entered and the ERP's stock has not been read since.

## To check

The **To check** tab lists orders that left the books a while ago (24 hours by default) while their units are still on
a shelf here: "Order #1042 was realised in ‹ERP› and never picked here: check its shelf". The units were most likely
sent without being picked; check the shelf and count it.


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