# Product Locations

A read-only table showing per-location stock for the current product. Columns include location name, quantity available, quantity on hand, quantity committed, unit of measure, and average cost. Quantities are colour-coded (green positive, yellow zero, red negative). You choose which columns appear.

The block has a small Locations Settings modal that controls which locations are shown, which columns appear, and whether stock refreshes in real time.

## Available in

* Catalog modules
* Order Form modules
* Public Page modules

## When to use

* Product detail pages where stock-by-location matters (multi-location retail, B2B with regional warehouses).
* Order form pages where the cashier needs to see availability before adding items.
* Anywhere users need to know "where is this in stock?".

For a single-line stock indicator on a card, use **Product Field** with the relevant stock field instead.

## Settings

| Setting                | Description                                                                                    |
| ---------------------- | ---------------------------------------------------------------------------------------------- |
| **Locations Settings** | Opens the configuration modal — which locations to show, which columns, and refresh behaviour. |

The configuration modal supports:

* **Selected Locations** — explicit list of NetSuite locations to show. Empty (default) = show all enabled subsidiary locations.
* **Cross-Subsidiary Locations** — additional location IDs from other subsidiaries to surface alongside the active subsidiary's. Default: none.
* **Realtime Sync** — re-fetch stock continuously while the page is open (rather than only on page load). Default: off.
* **Show Refresh Button** — show a manual *Refresh* button for on-demand stock pulls. Default: on.
* **Visible Columns** — which columns to show. Defaults to all except Avg Cost. Available columns: *Location Name*, *Quantity Available*, *Quantity On Hand*, *Quantity Committed*, *Unit of Measure*, and *Avg Cost* (off by default — enable it when staff need to see average cost per location).

## How it works

1. Reads the current product from session state.
2. Reads the subsidiary's enabled locations from the app store.
3. Merges the location stock data with the enabled-locations list (filtering out disabled locations).
4. Includes cross-subsidiary locations if that's enabled in the subsidiary settings.
5. Renders the table with the configured visible columns:
   * **Location Name**
   * **Quantity Available** — green (>0), yellow (=0), red (<0).
   * **Quantity On Hand**
   * **Quantity Committed**
   * **Unit of Measure**
   * **Avg Cost** — shown only when enabled; displays *—* when no average cost is recorded.

In edit mode, sample data is shown if the page doesn't have a real product loaded.

{% hint style="info" %}
The list of locations shown is driven by the subsidiary's location configuration — disabled locations are filtered out automatically. To change which locations appear, your NetSuite Admin updates the subsidiary settings.
{% endhint %}

{% hint style="warning" %}
**Catalog prerequisite:** Product Locations reads inventory data that the catalog must include. Enable **Locations** in the catalog's Settings (Catalogs → open catalog → Settings → *Locations*) and then **Reprocess** the catalog. Without this, the block renders but shows no stock data.
{% endhint %}

## Examples

**Product detail stock view.** Product Locations sits below the price and add-to-order on a product detail page, showing live availability across all enabled locations.

**B2B reorder context.** Product Locations on a Catalog Display product detail view so the buyer can see which warehouse to ship from.

## 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>Product Field</strong></td><td>For a single quantity field on a card.</td><td><a href="/pages/CmCrwau8ZNjfB17FA7f3">/pages/CmCrwau8ZNjfB17FA7f3</a></td></tr><tr><td><strong>Inventory</strong></td><td>How catalog inventory data flows from NetSuite.</td><td><a href="/pages/bTe9OOdZKbLt2hnXRIRb">/pages/bTe9OOdZKbLt2hnXRIRb</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/active-workflows/getting-started/product-components/product-locations.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.
