# Inventory

<code class="expression">space.vars.productName</code> does **not** manage inventory. Stock levels live in NetSuite. A catalog reads them when it's built and ships them to the portal as a snapshot. Adjustments — receiving, transfers, fulfillments — all happen in NetSuite, and the catalog reflects them on the next rebuild.

## When you'd use this

* Configuring a catalog that needs to display stock per location.
* Diagnosing why a portal's stock numbers look wrong or out of date.
* Trimming a catalog's output size by removing inventory data the portal doesn't use.

## The Locations toggle

In the Edit Catalog page → **Settings** section, the **Locations** toggle is what brings inventory data into the catalog output.

| Toggle state | What gets included                                                                                                                  |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| **On**       | Per-location stock data for every item. The output carries quantities broken down by each NetSuite location the item is stocked at. |
| **Off**      | No location-level inventory data. Items appear in the catalog but without stock breakdown.                                          |

If you also want the location-level *availability* number (on-hand minus committed), that's covered when Locations is on.

## What stock numbers exist in NetSuite

NetSuite tracks several quantities per item per location. The catalog can surface any of them:

| Quantity      | Meaning                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------- |
| **On Hand**   | Physical quantity at the location.                                                           |
| **Available** | On Hand minus committed/reserved quantity. Usually the most useful number to show end users. |
| **Committed** | Reserved for open orders not yet fulfilled.                                                  |
| **On Order**  | Expected from open purchase orders.                                                          |

For most portals, **Available** is the meaningful number — it's what can actually be sold without overselling committed stock.

## Where every value comes from

| Catalog field | NetSuite source                                 |
| ------------- | ----------------------------------------------- |
| On Hand       | Inventory detail records per location           |
| Available     | Calculated: On Hand minus Committed             |
| Committed     | Open sales order lines                          |
| On Order      | Open purchase order lines                       |
| Location list | NetSuite Locations, filtered to your subsidiary |

The catalog reads all of this at build time. Stock changes after that — a sale, a transfer, a receipt — won't show in the portal until the catalog is rebuilt.

## What the Product Locations block shows

The **Product Locations** Page Builder block displays per-location stock data from the catalog. Recent additions to what it can surface:

* **Average cost** — the item's average cost at each location, pulled from the NetSuite location record.
* **Unit of measure** — the unit (each, case, box, etc.) shown alongside quantity.
* **Inventory status** — a configurable status label (e.g. *In Stock*, *Low Stock*, *Discontinued*) per location, filterable so users can narrow by status.
* **Live sync** — with live inventory context enabled on the workflow, stock levels in the Product Locations block update in real time as the page is open, without a full page reload.

## Multi-location workflows

When **Locations** is on, the output includes stock for every location the item is stocked at. From there:

* A portal page can display all locations side-by-side.
* A user whose session is scoped to a specific location (driven by their role and workflow) can see only their location's stock — the filtering happens in the page configuration, not in the catalog itself.

## After you toggle Locations

Click **Save & Update** to rebuild the catalog so the change reaches the portal. Just **Save** stores the config but won't include (or remove) the location data until the next rebuild.

{% hint style="info" %}
A scheduled NetSuite-side refresh will eventually pick up the change too, but if you need it live now, **Save & Update** is the fastest path.
{% endhint %}

## Common issues

* **Stock looks stale** — the catalog is a snapshot. Trigger **Reprocess** on the catalog row in the list. After it flips to *Completed*, the new stock numbers reach the portal.
* **A location is missing from the output** — confirm the item is actually stocked at that location in NetSuite. Locations with zero on-hand are typically still included; locations the item isn't associated with at all aren't.
* **Numbers in the catalog don't match NetSuite reports** — confirm you're comparing the same point in time. The catalog snapshot can be minutes or hours old depending on when it was last built.

## Related

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Creating a Catalog</strong></td><td>Where the Locations toggle lives plus the rest of the Edit Catalog page.</td><td><a href="/pages/sqKV6Gm0WqBRQeT9aFbs">/pages/sqKV6Gm0WqBRQeT9aFbs</a></td></tr><tr><td><strong>Pricing &#x26; Availability</strong></td><td>How the other Settings toggles affect the catalog output.</td><td><a href="/pages/XS6DzIqISW38kzuST0nO">/pages/XS6DzIqISW38kzuST0nO</a></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.in8sync.com/client-admin-guide/creating-catalogs/inventory-management.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
