Manage preferred storage bins
A product's preferred bins are the ordered list of storage locations you'd like stock to land in when it's put away or received into a warehouse. Put-away and receiving walk the list top to bottom by priority, skipping any bin that's been deprecated, and drop stock into the first workable bin. The top bin is the default.
Preferred bins are an intent — an assignment that says "this product belongs here." They're stored per product + warehouse and persist independently of stock, so they survive going to zero on hand. The actual quantity currently sitting in each bin is a separate, live number documented in the Inventory guide (see View a product's stock).
Before you begin
- You need the
warehouses.manage_locationspermission to add, reorder, set-default, or remove preferred bins. Without it the controls are unavailable. See the Product permissions reference. - Warehouse locations must be enabled for your account. When the feature is off, the preferred-bins chip and dialog stay hidden and the list comes back empty — there's nothing to manage until locations are turned on for the warehouse.
- The product must already have inventory set up in the target warehouse. To get a product stocked in a warehouse in the first place, see Set up a product's inventory.
Open the preferred-bins dialog
- Open the product and go to its Inventory tab.
- Find the warehouse row you want to manage. Each locations-enabled warehouse shows a preferred bins chip:
- If a default bin is set, the chip shows that bin's code (for example
A-01-02), plus a+Nbadge when there are additional bins below it. - If nothing is assigned yet, the chip reads Set preferred bins.
- If a default bin is set, the chip shows that bin's code (for example
- Click the chip to open the Preferred Bins —
<warehouse>dialog. It lists the product's bins for that warehouse in priority order, top = default.
Add a bin
- In the dialog, under Add a bin, open the Select a storage bin picker. The picker only offers bins in this warehouse that can receive put-away stock (put-away-capable, non-deprecated).
- Choose a bin and click Add.
- The bin appends to the bottom of the list (it takes the next free priority). If it's the first bin you've assigned for this product+warehouse, it automatically becomes the default (top row).
Notes and variations:
- You can't add the same bin twice. A bin already in the list is rejected — the app blocks it before sending, and the server enforces it too with the message "This location is already assigned as a preferred location for the product in this warehouse."
- The bin must belong to this warehouse. Picking a location from a different warehouse is rejected with a 422 ("The selected location does not belong to the given warehouse."). The picker prevents this by only listing this warehouse's bins.
- The bin must be a valid put-away destination. A location that can't receive stock is rejected ("The preferred location must be able to receive put-away stock."), and a deprecated location can't be newly assigned at all ("The selected location is deprecated and cannot be used as a preferred location.").
Reorder bins (set priority)
Put-away and receiving try bins in the order shown, so the order is the priority.
- Use the up (▲) and down (▼) chevrons on a row to move a bin higher or lower.
- The new order saves immediately.
What happens when you reorder:
- The top row becomes the default. Reordering pins the default to whatever bin is now at position 0, so the list the system walks always matches what you see. Moving a bin to the top with the ▲ chevron is how you promote it to the default.
- Reordering is scoped to this product+warehouse — a stray id can't disturb another product's list. If the set of bins you submit doesn't exactly match the product's current bins for the warehouse, the reorder is rejected with a 422.
Set the default bin
The default is simply the top bin. To change it, reorder the bin you want to the top of the list (see above) — the app pins it as the default automatically. There's no separate "set as default" button in the dialog; position 0 is the default.
The system guarantees exactly one default per product+warehouse — never zero, never two. Whenever the default changes, it swaps atomically: the previous default is cleared in the same operation the new one is set, so the list never has two defaults or none.
The default row is marked with a Default star chip and highlighted at the top of the list.
Remove a bin
- Click the ✕ (Remove preferred bin) button on the row.
- The assignment is deleted immediately.
If you remove the default bin, the new top-of-list bin is promoted to default automatically, so a list with any bins left always keeps a single default. Removing a preferred bin doesn't touch any stock physically in that location — it only drops the preference.
Deprecated bins stay visible but are skipped
A bin you've already assigned can later be deprecated at the warehouse level. When that happens:
- It stays in the ordered list, tagged with a red Deprecated chip, so you can see it and decide what to do.
- Put-away and receiving skip it when walking the list — stock flows to the next workable bin.
- You can't newly assign a deprecated bin (the picker hides them and the server rejects them), but existing assignments aren't auto-removed. Reorder or remove them at your convenience.
What each row shows
Every preferred-bin row surfaces the assignment plus its bin's details:
| Field | Meaning |
|---|---|
| Bin code | The location's short code (for example A-01-02). |
| Name | The location's human name, shown beneath the code when set. |
| Type | The location type as a colored chip (for example Primary Pick, Reserve, Storage, Staging). |
| Default | Star chip on the top row — the single default for this product+warehouse. |
| Deprecated | Red chip when the underlying bin has been deprecated (skipped by put-away). |
| Priority | The row's position in the list; lower = tried first. Drives the top-to-bottom put-away walk. |
Under the hood each assignment carries product_id, warehouse_id, warehouse_location_id, is_default, and priority, plus the nested bin (code, name, type, type_label, display_name, deprecated_at). For the full product detail layout these appear on, see the Product detail page reference.
Preferred bins vs. actual stock
Preferred bins tell the system where a product should go. They don't tell you what's there now:
- Preferred bin = assignment/intent — survives zero stock, set here.
- Stock in a bin = the live on-hand quantity in that location — set by receipts, put-away, transfers, and adjustments, and read in the Inventory guide.
For real stock-in-bin numbers, opening balances, minimum-stock levels, and FIFO/COGS, use the Inventory guide: View a product's stock and Browse the product inventory list.
Next steps
- View a product's stock — the live on-hand quantity per warehouse and bin.
- Set up a product's inventory — get a product stocked in a warehouse before assigning bins.
- Product detail page reference — where the Inventory tab and preferred-bins chip live.
- Product permissions reference — the
warehouses.manage_locationspermission.
Video transcript
The Warehouse Inventory card on a product's Inventory tab lists its stock per warehouse — and the preferred bins where that stock lives. Main Warehouse already has a bin assigned; the others show Set preferred bins. Open a warehouse's bins to manage them. Put-away and receiving try the bins top to bottom, so the top one is the default. Add a bin from the storage-bin picker, reorder them, and the assignments stay even when stock hits zero.