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

# Bin locations

> Define per-warehouse bin structures and track on-hand quantity by bin.

Bin locations let you track where inside a warehouse each item is stored. Each warehouse defines its own **segment structure** — for example **Aisle · Rack · Shelf** — and every bin is a combination of segment values. Turn bin locations on per warehouse; warehouses without them keep working exactly as before.

## Prerequisites

* An active warehouse. See [Warehouses](https://www.adorabl.info/products/warehouses.md).
* Permission to edit warehouse setup.

## Enable bin locations

**1. Open the warehouse**

1. In the sidebar, open **Inventory → Warehouses**.
2. Click the warehouse to expand its editor.

**2. Turn on Bin locations**

Toggle **Bin locations** on. A **Create/Edit Bins** button appears alongside the toggle.

Warehouses without the toggle keep a single implicit location; **Receive stock** and **Adjust stock** dialogs never prompt for a bin.

## Segment structure

Every bin code is composed from ordered segments joined by `-`. You define the segments once per warehouse.

**1. Open the structure editor**

From the warehouse editor, click **Create/Edit Bins**, then **Bin location structure**.

**2. Add segments**

Click **Add segment**. Give it a name (for example, `Aisle`) and a **code length** (the fixed number of characters each value uses). Drag the grip handle to reorder segments — order determines how bin codes read left to right.

**3. Define values**

Switch to the **Segment values** tab. For each segment, click **Add value** and enter a **code** (up to the segment's length) and an optional description. Drag to reorder, or toggle a value **Inactive** to retire it without deleting historical bins.

The **Live preview** panel shows the code template — for example `XX-XX-X` for a three-segment layout.

> [!TIP]
>
> Deactivate values instead of deleting them. Existing bins keep their codes; deactivated values just stop appearing in new pickers and generation previews.

### Example: Denver DC

Trail Ridge configures three segments on **Denver DC**:

| Order | Segment | Length | Values |
| - | - | - | - |
| 1 | **Aisle** | 2 | `A1`, `A2`, `A3` |
| 2 | **Rack** | 2 | `R1`, `R2` |
| 3 | **Shelf** | 1 | `1`, `2`, `3` |

Composed bin codes read `A1-R1-1`, `A1-R1-2`, and so on.

## Generate bins preview

The **Generate bins** panel previews how many bin codes your segment structure and values would produce. It does **not** create bins — you add bins one at a time from the bin list.

| Mode | When to use |
| - | - |
| **Rule-based** | Add one or more rules, each picking a subset of values per segment. Useful when only certain aisles have certain racks. |
| **All combinations** | Cartesian product of every active value in every segment. Use when the warehouse layout is fully uniform. |

Each rule shows its bin count. The footer sums unique codes across all rules.

## Create and edit bins

**1. Open the bin list**

From the warehouse editor, click **Create/Edit Bins**. The list shows one column per active segment plus **Bin code**, **Description**, and **Status**.

**2. Add a bin**

Click **New bin**. Pick a value for each segment — the picker cascades: after you pick the first segment, later segments only suggest values that already exist in that context, so it's easy to fill in gaps without duplicating bins.

**3. Save**

The **Bin code** field auto-composes from your picks. Add an optional **Description** and click **Create bin**.

Edit an existing bin by clicking its code or **Edit**. Saving recomposes the code from the current segment values. Deactivate bins you no longer stock; delete only bins that never held inventory.

## Allocate stock to bins

When a warehouse has bin locations on, **Receive stock** and **Adjust stock** show a **Bin allocations** editor:

* Click **Add bin**, pick a bin, and enter the quantity for that bin.
* Split a receipt across multiple bins by adding more rows.
* The editor shows how much of the transaction quantity is still unallocated; you must allocate the full quantity before saving.

Outbound fulfillments allocate from bins that hold the item, respecting on-hand quantity per bin.

## Bin stock report

From the warehouse editor, click **Create/Edit Bins → View bin stock**, or open **Warehouses → \[warehouse] → Bin stock** directly.

| Column | Meaning |
| - | - |
| **Bin** | Bin code |
| **Item** | SKU — links to the item record |
| **Description** | Item name |
| **On hand** | Quantity stored in this bin |

Search filters by bin code, SKU, or item name.

## Related guides

> **[Warehouses](https://www.adorabl.info/products/warehouses.md)**
>
> Create warehouses and enable bin locations.

> **[Stock on hand](https://www.adorabl.info/products/stock-on-hand.md)**
>
> Quantities rolled up by item and warehouse.

## Troubleshooting

> **Bin allocations editor doesn't appear on receive or adjust**
>
> Bin locations are off for the selected warehouse. Turn on **Bin locations** on the warehouse editor.

> **Can't pick a value when creating a bin**
>
> The value is either inactive or its segment has no values yet. Open **Bin location structure → Segment values** and add or reactivate the value.

> **Existing bins still use the old aisle/rack fields**
>
> Legacy bin codes are preserved as-is. adorabl created **Aisle** and **Rack** segments automatically for warehouses that already had bins. Edit a bin and save to recompose its code from segment values.


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