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:

Image Placeholder

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.
Image Placeholder

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:
Image Placeholder
  • 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.
    • Image Placeholder
  • 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 (-1 for unlimited recursive traversal).

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.