# Product Custom List Table

A configurable table that runs a saved search or SuiteQL query scoped to the current product and renders the results. Use it when a product page needs to show related data the standard product-field blocks can't surface — recent purchase history, related items, location-specific stock movements, or any other custom list.

The block resolves the current product's internal ID at render time and substitutes it into the query, so each product page automatically shows its own data without per-page configuration.

## Available in

* Catalog modules
* Order Form modules
* Public Page modules

## When to use

* Product detail pages that need to show data from a NetSuite saved search filtered to the current item.
* Tables of historical transactions, related items, or any list you'd otherwise build by hand.
* Catalog cards (inside a Catalog Display slot) where you want to surface a small per-item table.

For displaying a single product field, use **Product Field**. For a wide-scope transaction search across all transactions, use **Transaction Search**.

## Settings

The block opens a configuration modal that handles all of its setup:

| Setting             | Description                                                                                          |
| ------------------- | ---------------------------------------------------------------------------------------------------- |
| **Query Mode**      | *Saved Search* (uses a NetSuite saved search by ID) or *SuiteQL* (writes a SuiteQL query directly).  |
| **Saved Search ID** | When mode is Saved Search — the internal ID of the saved search.                                     |
| **SuiteQL Query**   | When mode is SuiteQL — the query text. Use placeholder tokens for the current product's internal ID. |
| **Columns**         | Which result columns to show in the table, with custom labels and ordering.                          |
| **Pagination**      | Page size and whether pagination controls are shown.                                                 |

## How it works

1. Reads the current product's internal ID from page context.
2. Substitutes the ID into the configured query (saved search filter or SuiteQL parameter).
3. Runs the query, paginates the results, and renders them in a table with the columns you configured.
4. Re-runs when the user navigates to a different product.

In edit mode, the block shows a placeholder card with the current configuration — no data fetching happens until the page is live.

## Common issues

* **"Not configured" warning** — the saved search ID or SuiteQL query is empty. Open the configuration modal and fill it in.
* **No data shown for a product that should have data** — the query may not be filtering by the current product correctly. Double-check the ID placeholder in your SuiteQL or the filter on the saved search.
* **Slow load** — large result sets paginate; if the query itself is slow, narrow the saved search filters.

## 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>Display a single product field.</td><td><a href="/pages/CmCrwau8ZNjfB17FA7f3">/pages/CmCrwau8ZNjfB17FA7f3</a></td></tr><tr><td><strong>Catalog Display</strong></td><td>The main product browse block.</td><td><a href="/pages/dAjRJ2GOz4uRXrOSvCJA">/pages/dAjRJ2GOz4uRXrOSvCJA</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-custom-list-table-result.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.
