# Inventory, batches and locations

Stock and its movements, lots and expiry, and the places you hold stock, all on the one Inventory page

Section: app. Audience: public. Updated: 2026-10-10.

---
**"Inventory"** is the one page for what you hold and where you hold it. It has four tabs: **"Stock"**, **"Movements"**, **"Batches"** and **"Locations"**. Each tab has its own address, so a link or a bookmark opens the tab it was made on.

## Stock

**"Stock"** is the table of what you have. Its columns can be chosen with **"Edit table"**, and your choice is remembered in your browser. Available columns include **"Location"**, **"SKU"**, **"Unavailable"**, **"Committed"**, **"Available"**, **"On hand"** and **"Reorder point"**.

One column is worth explaining. **"Unavailable"** is the merchant-facing word for stock that is reserved. It is the same quantity a Shopify merchant would see under that name, so the two agree rather than looking like a discrepancy.

### Importing stock from Shopify

**"Import"** pulls the current stock levels of every connected Shopify store into Next Horizon, adding any product the catalog does not have yet. It sits in the page header on **"Stock"** and **"Movements"**, the two tabs that show stock. While it runs, the page shows the Shopify logo syncing into the Next Horizon mark and says for each store where it stands. You can keep working, and the table refreshes as each store's stock lands.

When every store has answered, the panel says how many stock levels changed and, per store, how many new products came in. A store that could not import says why. If it needs reconnecting, **"Reconnect store"** takes you to where that is done. See [Connect a store](/app/connect-a-store). **"View stock"** takes you down to the table.

### Kits

A kit is a product sold as one item but made of others, such as a gift box. Clicking a row on **"Stock"** opens the product's detail panel, and its **"Kit components"** section is where you define what the kit contains.

Tick **"This product is a virtual kit"** to start. Then, for each component:

1. In the **"Component"** column, type at least two characters to search your inventory and click a result. Only products already in your inventory are found, and a product that is itself a kit is not offered: a kit cannot contain another kit.
2. Set the **"Quantity"** per kit, a whole number of one or more, and an optional note.
3. Press **"Add"**.

Once a kit has components, ordering it commits each component's stock instead of the kit's own. A kit of two of one product and one of another commits two and one of them for each kit ordered.

You can change a component's quantity or note in the table; each saves as you leave the field. **"Remove"** takes one component out, after you confirm. Unticking the box removes every component, after you confirm, and the product is an ordinary product again. Removing the last component has the same effect.

## Movements

**"Movements"** is the history of stock moving: every receipt, shipment, transfer, adjustment and return that changed a quantity, with who or what made it. It can be searched, narrowed by type and date, and exported.

## Batches

**"Batches"** lists every lot you hold stock of, at every location, soonest to expire first. Search by lot, product or SKU, or narrow the list to **"Expiring within 30 days"**, **"Expired"** or **"Recalled"**. Clicking a row opens the product.

Lots arrive when stock is received with a lot number, for example from a purchase order's shipping notice. Products you sell without lots do not need them, and until you hold a lot the tab says how one arrives.

## Locations

**"Locations"** is where the places you hold stock are defined: your warehouses, your stores and the locations synced from your sales channels. Stock rows point at them, so a location that is wrong here is wrong everywhere.

Each row shows what that location holds. **"Manage bins"** opens the bins inside it, and **"View stock"** switches to **"Stock"** filtered to that location. A location synced from Shopify or mirrored from Business Central is labelled with its source and is changed there, not here; one you created yourself can be edited here.

## Where the old pages went

Locations and a separate Warehouse page used to be sidebar entries of their own. Both were folded into this page, and their old links still land where the content lives now:

- Locations opens the **"Locations"** tab.
- Warehouse batches open the **"Batches"** tab.
- Warehouse returns open the returns that have been received, in [Returns](/app/returns). A received return is inspected in the return itself, where each item is restocked, held for a check or written off.
- Warehouse energy opens **"Emissions"** in **"Insights"**. See [Insights and the AI analyst](/app/insights-and-ai-analyst).
- Goods receipts and pick/pack had no way to create a row, so they were removed; their old links open this page.

## Reordering

Reorder points set on stock rows drive the alerts counted on the badge beside **"Purchasing"** in the sidebar. See [Suppliers and purchasing](/app/suppliers-and-purchasing).