Version:
eXtendPS-SE 1.5.0 and
above
Audience: Administrator
Overview
Assembly items represent finished goods
manufactured or assembled from component
materials (a Bill of Materials). In the eXtendPS-SE Live Inventory Service, an
assembly item's inventory availability is
determined by evaluating both completed
finished goods in stock and dynamic
Available to Build (ATB) capacity
calculated from component
availability.
This article explains:
- How the Inventory Service determines
the components to use across Standard
and Advanced BOM architectures.
- How the Available to Build (ATB)
quantity is calculated and rolled up
through sub-assemblies.
- How non-inventory components and
dynamic overrides affect build
capacity.
- How quantities are returned by
warehouse location and combined with
static on-hand stock.
- How administrator setup options,
location splitting, and item-level
fields control service behavior.
How
Assembly Components Are Determined
The Live Inventory Service automatically
adapts to your NetSuite assembly
architecture:
1. Standard Assemblies (Without
Advanced Bill of Materials)
If the NetSuite Advanced Bill of
Materials feature is disabled, assembly
components are defined directly on the
Assembly Item record under the Components
sublist. The service retrieves the member
items and their required per-unit
quantities directly from this list.
2. Advanced Assemblies (With Advanced
Bill of Materials)
When NetSuite Advanced Bill of Materials
is enabled, an assembly item can link to
multiple BOM records, and each BOM can
have multiple revisions. The service
resolves components using a structured
two-step process:
Step A: Location-to-BOM
Resolution
For each queried warehouse location, the
service selects the appropriate BOM using
the following priority:
- Master (Default) BOM: If a BOM is
flagged as Default on the assembly
item record, it applies across all
locations.
- Location-Specific BOM: If no default
BOM applies, the service selects the
BOM assigned to the specific warehouse
location on the assembly item.
- Location-Restricted / Global Fallback:
If no specific assignment is found,
the service uses any BOM marked
Available for All Locations or
restricted to the target
warehouse.
Step B: Active BOM Revision
Selection
Once the applicable BOM record is
identified, the service selects the active
revision:
- The revision must be Active (not
inactive).
- The revision's effective date range
must include the current date (created
on or before today, and not
expired).
- If multiple revisions are active and
effective today, the service
deterministically selects the most
recently created revision (by creation
date).
Note: In order for assembly
components to be evaluated in Advanced BOM
accounts, the assembly item must be linked
to an active BOM record containing at
least one valid, unexpired BOM
Revision.
Calculating the Available to Build
Quantity
Once
the applicable components are identified,
the Inventory Service calculates the
Available to Build (ATB) quantity for each
warehouse location:

Each component's available stock at that
warehouse is divided by the quantity
required per assembly unit. The lowest
resulting value across all required
components determines the overall
Available to Build capacity (the
bottleneck component).
Zero-Stock Bottleneck Rule
If any required physical component
has 0 available stock in a warehouse, the
calculated Available to Build capacity for
that warehouse is immediately 0,
regardless of the availability of all
other components.
Nested Sub-Assemblies (Multi-Tier
BOMs)
If a component on the BOM is itself an
assembly item:
- The service recursively calculates the
buildable capacity of the child
sub-assembly.
- Required component quantities are
multiplied through each level of the
hierarchy down to the raw physical
materials.
- Traversal depth is controlled by the
Maximum member item levels for
Assembly and Kit Items setting in
Inventory Setup → Additional Settings
(default: 2 levels, or -1 for
unlimited depth).Non-Inventory
Components
Non-Inventory Components & Dynamic
Overrides
BOMs often include Non-Inventory items
(such as labor, services, packaging, or
decoration charges) that do not track
on-hand quantities in NetSuite.
Non-Inventory components are handled based
on the eXtendPS-SE Inventory
Override field on the component
item record:
- Blank Inventory Override
(Default):
- If the Inventory Override field is
left empty on a Non-Inventory
component, that component is
excluded from the calculation
entirely. Its lack of physical
stock does not limit or bottleneck
the Available to Build
result.
- Populated Inventory
Override:
- If the Inventory Override field
has a numeric value on a
Non-Inventory component (e.g.,
representing finite daily machine
slots or outsourced capacity),
that value is treated as available
component stock in the ATB
calculation.
- Override Value of 0: If
set to 0, it will drive the
entire Available to Build
calculation for that assembly
to 0, because 0 is the lowest
available quantity among all
components.
Note: Only populate the
eXtendPS-SE Inventory Override field on a
Non-Inventory component if you
specifically intend for that component to
act as a capacity limit. Leaving the field
blank ensures the service disregards it
when calculating buildable units.
Location-Based Quantities
The Inventory Service returns Available
to Build quantities broken out by
warehouse location:
- Isolated Warehouse
Calculations: ATB is
calculated separately for each
location using only component stock
physically located in that same
warehouse. Component stock in
Warehouse A cannot satisfy assembly
requirements in Warehouse B.
- Combined Total Availability: In
addition to calculated ATB, the
service accounts for completed units
of the assembly item physically
sitting in that warehouse.

This combined total is returned in the
response for each location, provided the
Show Available to Build as Quantity
Available setting is enabled in Inventory
Setup.
Inventory Override and Locations
If an eXtendPS-SE Inventory
Override value is entered directly
on the parent assembly item record, that
value takes complete precedence over all
calculations at both the total and
location levels.
When an assembly-level override is
present:
- The parent on-hand stock and component
ATB calculations are bypassed.
- The override quantity is returned as
the assembly item's available
inventory.
- Warehouse distribution is governed by
the Split Override Across
Locations setting.
Split Override Across
Locations
Located under eXtendTech → eXtendPS-SE →
Inventory Service Setup → Locations:

- Unchecked (Default): Behavior
Across Configured Warehouses - The
full override quantity is assigned to each configured warehouse location. (Example: An override of "100" across 3
locations yields "100" at Location A, "100" at Location B, and "100" at Location
C).
- Checked:
(Enabled): Behavior Across
Configured Warehouses - The
override quantity is distributed evenly across all configured warehouse
locations. If the number is not evenly
divisible, the remainder is allocated
sequentially to the first configured
locations. (Example: An override of "100" across 3 locations yields "34" at Location
1, "33" at Location 2, and "33" at
Location 3 — maintaining a combined total
of "100").
Note: Once enabled, the Split
Override Across Locations feature
applies globally to all supported item
types with an inventory override
(Inventory Items, Matrix Items, Assembly
Items, and Kit Items).
Matrix Assemblies: Product Data vs. Live
Inventory Configuration
Administrators managing matrix assembly
items should note the distinct
configuration options available across
eXtendPS-SE services:
1. Product Data Service: "Return
Assembly Components Over Matrix
Sub-Items"
When an assembly item is also configured
as a matrix parent item, the Product Data
Service (getProduct) by default returns
the item's matrix sub-items
(children).
To return the assembly's Bill of
Materials components instead of matrix
child items in the Product Data
response:
- Navigate to eXtendTech → eXtendPS-SE →
Product Data Setup → Other
Configuration.
- In the eXtendPS-SE Return Assembly
Components Over Matrix Sub-Items
field, enter the Field ID of a custom
checkbox field created on your Item
records (e.g.,
custitem_return_assy_components).
- On the matrix item record, check that
custom checkbox for any item where you
want assembly components returned
instead of matrix sub-items.

2. Live Inventory Service: "Suppress
Assembly Components"
In the Live Inventory Service, inventory
is queried by specific SKU/Part ID. To
prevent component lines from cluttering
inventory responses and output only the
parent assembly item with combined
availability:
- Navigate to eXtendTech → eXtendPS-SE →
Inventory Service Setup → General
Setup.
- Check Suppress Assembly
Components.
Administrator Setup Reference for Assembly
Items
The following settings in eXtendPS-SE
Inventory Setup (eXtendTech → eXtendPS-SE
→ Inventory Service Setup) control
assembly item processing:
| Setting Label | Tab / Field Group | Default | Description & Impact |
|---|---|---|---|
| Show Available to Build as
Quantity Available | General Setup | Enabled | When enabled, combines physical
parent stock with calculated
component ATB in the available
quantity. |
| Suppress Assembly Components | General Setup | Enabled | When enabled, hides individual
component line items and outputs
only the parent assembly
item. |
| Show Assemblies as Manufactured
Items | General Setup | Disabled | When enabled, includes the true indicator in API responses. |
| Show Available to Build | General Setup | Disabled | Injects the standalone computed
ATB quantity into the custom
product message element. |
| Split Override Across
Locations | Locations | Disabled | Distributes item-level inventory
override quantities evenly across
configured warehouse
locations. |
Maximum member item levels for
Assembly and Kit Items | Additional Settings | 2 | Traversal depth limit for
nested sub-assemblies ( |
NetSuite Role Permissions
Prerequisite
If your
NetSuite account utilizes Multiple
Units of Measure (UOM), ensure
the NetSuite role assigned to the
eXtendPS-SE web services integration
has View permission for Lists →
Units. This allows the
inventory engine to perform UOM
conversions when component units
differ from BOM line
specifications.
Summary
- Assembly Availability: Combines
physical parent on-hand stock with
dynamic Available to Build (ATB)
component capacity.
- BOM Resolution: Standard
assemblies evaluate direct components;
Advanced BOM accounts evaluate default
or location-assigned BOMs using the
newest active revision.
- Non-Inventory Components:
Automatically excluded from ATB
calculations unless assigned an
explicit numeric value in eXtendPS-SE Inventory
Override.
- Warehouse Isolation:
Calculations strictly honor warehouse
boundaries so component stock in one
location does not inflate availability
in another.
- Overrides: Assembly-level
overrides bypass ATB calculations and
can be distributed evenly across
warehouses using Split Override
Across Locations.