Skip to content
NetSuite Reference

item

master

The unified item master: one row for every item type — inventory, non-inventory, service, kit, assembly — discriminated by itemtype and subtype, carrying costing, pricing, planning parameters and global quantity rollups.

Module: ItemsNo partition column
Grain note

`location` on the item record is a default assignment, not a balance grain — per-location on hand, cost and planning parameters live on inventoryitemlocations, and no location anchor is emitted here. The quantity columns on this record are global rollups across every location.

Notes

hasSubsidiary is false by design: item-to-subsidiary is multi-valued and carried by the itemsubsidiarymap bridge, not by a column. `subsidiary` does appear on the record as a MULTISELECT and is authored below for completeness — it is not an equality filter — but the bridge is the join spine. hasLocation is false for the same class of reason: the `location` column is the item's default site, so anchoring on it would drop every item stocked elsewhere. Filter on itemtype before comparing anything numeric — a service item and an assembly do not share a cost meaning.

What the badges mean
master
Data class: what the record holds — master data, transaction documents, control/configuration, or a documented convenience record. NetSuite has no product-family or schema axis, so this is the whole classification.

Structural facts — how the record is partitioned, not a trap by itself

Subsidiary-scoped
The record carries a subsidiary column that partitions its rows, so the generated SQL anchors it. On a few records the column is a multiselect rather than a scalar foreign key — the table notes say which (see the quirks guide).
Location-scoped
The record carries a location column — an org segment in NetSuite before it is a warehouse — and the generated SQL anchors it the same way.

Join & extract hazards — verify before you rely on this

View
A documented convenience record rather than a stored one. Land the records it stands in for instead of assuming it extracts as-is — the table notes say where the rows actually live.
In field listings, the Key chip marks a primary-key field, and the T/F chip marks a check-box column Connect returns as a 'T'/'F' string.

Business record

The business record this table holds, with Oracle’s own documentation for it: the Analytics Browser page that defines the queryable fields, and the current-release Records Browser page that corroborates it.

Fields

18 fields · 1 key

18 fields.

Table fields: position, field name, description, data type, and flags. 18 fields.
#FieldDescriptionTypeFlags
1idInternal IDNUMBER
Primary-key field
2itemidItem name/numberVARCHAR
3fullnameFull hierarchical nameVARCHAR
4displaynameDisplay name/codeVARCHAR
5itemtypeItem type discriminator (internal id)NUMBER
6subtypeItem subtype (internal id)NUMBER
7isinactiveInactiveVARCHAR
8createddateDate createdTIMESTAMP
9lastmodifieddateLast modified — the incremental watermarkTIMESTAMP
10parentParent item (internal id)NUMBER
11subsidiarySubsidiaries — MULTISELECT; the join spine is itemsubsidiarymapVARCHAR
12locationDefault location (internal id) — not the per-location balance grainNUMBER
13vendorPreferred vendor (internal id)NUMBER
14unitstypeUnits-of-measure family (internal id)NUMBER
15stockunitStocking unit (internal id)NUMBER
16costingmethodCosting method (internal id) — Average, FIFO, LIFO or StandardNUMBER
17descriptionSales descriptionCLOB
18externalidExternal IDVARCHAR

Field provenance: hand-curated. 1 key field.

Boilerplate SQL

Starting point for reading the Connect-landed copy of item on Databricks — dates are real DATE/TIMESTAMP columns and need no conversion, and the partition anchors are already in place. The lastmodifieddate watermark is in place too. Set your Unity Catalog location, schema, and filter values below; they’re substituted into the SQL and the copy button.

Query parameters

4 parameters not filled: <catalog>, <schema>, <id>, <watermark>

-- ============================================================
-- Table  : item — The unified item master: one row for every item type — inventory, non-inventory, service, kit, assembly — discriminated by itemtype and subtype, carrying costing, pricing, planning parameters and global quantity rollups.
-- Purpose: Column-selected read of item — auto-generated from field metadata
-- Grain  : One row per id
-- Caution: `location` on the item record is a default assignment, not a balance grain — per-location on hand, cost and planning parameters live on inventoryitemlocations, and no location anchor is emitted here. The quantity columns on this record are global rollups across every location.
-- Notes  : Auto-generated skeleton for NetSuite data landed in your lakehouse from a SuiteAnalytics Connect (or SuiteQL) extract — it never addresses live NetSuite. Identifiers are lowercase as NetSuite2.com renders them. Select-type columns hold numeric internal ids: BUILTIN.DF() display resolution exists only at extraction time, so decode ids by joining the landed list records; see quirks #display-values. Check-box columns arrive as 'T'/'F' strings; see quirks #tf-booleans.
-- ============================================================
SELECT
  t.id AS "Internal ID",
  t.itemid AS "Item name/number",
  t.fullname AS "Full hierarchical name",
  t.displayname AS "Display name/code",
  t.itemtype AS "Item type discriminator (internal id)",
  t.subtype AS "Item subtype (internal id)",
  t.isinactive AS "Inactive",  -- 'T'/'F' string — compare = 'T', or CAST via CASE; see quirks #tf-booleans
  t.createddate AS "Date created",
  t.lastmodifieddate AS "Last modified — the incremental watermark",
  t.parent AS "Parent item (internal id)",
  t.subsidiary AS "Subsidiaries — MULTISELECT; the join spine is itemsubsidiarymap",
  t.location AS "Default location (internal id) — not the per-location balance grain",
  t.vendor AS "Preferred vendor (internal id)",
  t.unitstype AS "Units-of-measure family (internal id)",
  t.stockunit AS "Stocking unit (internal id)",
  t.costingmethod AS "Costing method (internal id) — Average, FIFO, LIFO or Standard",
  t.description AS "Sales description",
  t.externalid AS "External ID"
FROM <catalog>.<schema>.item t
WHERE
  1 = 1  -- no partition column on this record; the filters below are optional
  -- AND t.id = <id>
  -- AND t.lastmodifieddate >= TIMESTAMP '<watermark>'  -- inserts and updates only — deletes never appear here; diff deletedrecord, which is itself blind to line-level deletes (see quirks #deletes)
ORDER BY t.id;

Verified August 2026 · Analytics Browser 2021.1 · corroborated 2025.2

Select columns hold internal ids, not display text — see decoding display values.

Relationships

Diagram of 1-hop neighbors — join details below. Document-link edges are highlighted; they chain one document to the next and are the joins newcomers most often get wrong.

Join details

  • transactionlineitemforeign key · N:1
    ON transactionline.item = item.id
  • itemitemvendorforeign key · 1:N
    ON item.id = itemvendor.item
  • itemitemsubsidiarymapforeign key · 1:N
    ON item.id = itemsubsidiarymap.item
  • itemvendorforeign key · N:1
    ON item.vendor = vendor.id
  • itemunitstypeforeign key · N:1
    ON item.unitstype = unitstype.id
  • itemmemberitemforeign key · N:1
    ON itemmember.item = item.id
  • itemmemberitemforeign key · N:1
    ON itemmember.parentitem = item.id
  • pricingitemforeign key · N:1
    ON pricing.item = item.id
  • inventoryitemlocationsitemforeign key · N:1
    ON inventoryitemlocations.item = item.id
  • inventorynumberitemforeign key · N:1
    ON inventorynumber.item = item.id
  • bomrevisioncomponentitemforeign key · N:1
    ON bomrevisioncomponent.item = item.id
  • manufacturingroutingitemforeign key · N:1
    ON manufacturingrouting.item = item.id
  • manufacturingcosttemplatecostdetailitemforeign key · N:1
    ON manufacturingcosttemplatecostdetail.item = item.id
  • itemdemandplanitemforeign key · N:1
    ON itemdemandplan.item = item.id
  • itemsupplyplanitemforeign key · N:1
    ON itemsupplyplan.item = item.id
  • itemlocationconfigurationitemforeign key · N:1
    ON itemlocationconfiguration.item = item.id

Browse more Items tables

More Items tables

Maintained by Summit Analytics, a supply chain analytics practice. The tools and references are free — the consulting is selective.

Part of the Summit Analytics reference library.

Work with the practice

Not affiliated with or endorsed by Oracle or NetSuite. NetSuite is a registered trademark of Oracle and/or its affiliates.