NetSuite Serialized Assembly Items: Multi-Vendor Setup
You buy finished serialized units from an assembler but source one component yourself. Here is how to model that in NetSuite without double counting.

On this page
Your Belgium e-bike distributorship buys finished, serialized bikes from an assembler in Eastern Europe. The assembler sources most components (let's call them Y) and bills you for complete bikes. But one supplier now demands you buy component X directly, shipping it to the assembly factory.
The cleanest way to model this in NetSuite is a virtual location representing the assembler's facility, plus a Transfer Order for the component you own, and an Assembly Build (or Work Order) executed in that virtual location. Here's the full walkthrough.
Why a Virtual Location Solves the Ownership Problem
The core issue is inventory ownership versus physical location. Your component X sits at a factory you don't control, but you still own it. NetSuite tracks inventory by location, so you need a location record for that factory even though no one at your company physically works there.
Create it at Setup > Company > Classifications > Locations. Name it something like "Assembler – Eastern Europe," and leave the address as the factory's. Two settings matter:
- Make Inventory Available, check this so NetSuite can allocate and commit inventory from this location for supply allocation and demand planning.
- Location Type, leave it as Standard unless you use Advanced Intercompany Inventory.
This location is where you receive the PO for component X, build the bike, and hold the finished serialized assembly until you bring it to your own warehouse.
Enable the Features You Need First
Before any of this works, confirm three features are on at Setup > Company > Setup Tasks > Enable Features:
- Locations (Company subtab), required for any location-based inventory.
- Multi-Location Inventory (Items & Inventory subtab), required before location fields appear on item records, purchase orders, and inventory transactions.
- Multiple Vendors (Items & Inventory subtab), required if you'll define the same component against more than one vendor with different purchase prices.
Also enable Manufacturing (Transactions subtab) so you can run Assembly Builds and Work Orders.
Set Up the Item Records
Create your serialized assembly item at Lists > Accounting > Items > New, then under Assembly/Bill of Materials, click Serialized. Per NetSuite's Inventory Management Guide, serialized assembly items are available on sales and inventory adjustment transactions but not on purchase transactions. That's fine, because you never buy the finished bike from a vendor that ships you a serial number on a PO; you buy components and build it.
On the Purchasing/Inventory subtab, define the Bill of Materials with your Y components. Only inventory items can be members of an assembly, so Component X must be a serialized or lot-numbered inventory item in its own right, not a non-inventory purchase item.
On the Vendors subtab, add both vendors if you buy the same Y component from more than one supplier. The Preferred Vendor field only becomes meaningful when the Multiple Vendors feature is enabled. You can set one preferred vendor per item, and per subsidiary in OneWorld. The preferred vendor auto-fills the Vendor field on a new PO line, but only if you haven't already set the vendor manually. The Vendor field is not affected if you set a vendor manually or if it's already set to a preferred vendor of a previously added item.
The Two Procurement Paths
Your scenario splits into two flows, and NetSuite handles them separately.
Path 1, Component X, direct to your vendor: Create a PO to that supplier for component X, ship-to the virtual location. Receive it into the virtual location with an Item Receipt. You own the stock; it just sits at the factory location.
Path 2, Complete bikes from your known vendor: This is where the community advice converges on a Transfer Order. You order the finished bike from the assembler. The bike is built from your Y components that the assembler sources and bills you for. Because the bike is a serialized assembly, you don't "purchase" it as a buyable item. Instead:
- Create a Work Order (Transactions > Manufacturing > Enter Work Orders) for the serialized assembly, location = virtual location.
- The assembler builds the bike. You run the Assembly Build (Transactions > Inventory > Build Assemblies) or complete the Work Order, which assigns the serial number.
- Bring the finished bike to your own warehouse with a Transfer Order from the virtual location to your main location.
The key detail: you only build assemblies from inventory items, and only inventory items can be members of an assembly. So both X and every Y component must be inventory items, not non-inventory purchase items.
The Two Ownership Decisions That Change Everything
Before you commit to this design, answer the two questions your controller should ask:
Do you own component X while it sits at the factory? If yes, the virtual location approach above is correct. If the assembler owns it until you re-invoice it to them, you'd instead sell X to the assembler via a special sales order from the virtual location, then buy the finished bike back. That's a more complex intercompany-style flow and rarely worth it for a single component.
How do you want cost of goods tracked? If you own X throughout, the assembly build rolls X's cost into the finished bike's landed cost automatically. The serial number on the finished assembly carries that full cost history. If you re-invoice X to the assembler, you're recording a sale and then buying back a bike whose cost excludes X, your COGS picture gets murkier.
For most distributors, owning X and using the virtual location is the straightforward answer. It keeps your inventory valuation clean, your serial history intact, and your auditors happy because every bike's serial number traces back to the exact component cost. From an audit perspective, that traceability is the difference between a clean close and a week of reconciling spreadsheets.
What Trips People Up
The most common mistake is trying to buy the finished serialized assembly directly on a PO. Serialized assembly items are not available on purchase transactions. When you try, NetSuite won't let you add the item line. That's by design, and it's why the Work Order plus Transfer Order pattern exists.
A second trap: if you don't enable Multiple Vendors, the Preferred Vendor Rate field on the assembly item is meaningless. You'll only see per-vendor purchase prices if that feature is on.
A third issue is running the Assembly Build in the wrong location. Per NetSuite's documentation on building assembly items, when you select an assembly item, the maximum number you can build appears in the Buildable Quantity field. If you use locations, the quantity for the selected location is displayed. If your Y components are sitting in the virtual location but you run the build in your main warehouse, NetSuite shows a buildable quantity of zero.
A Worked Example
Say Bike Model A = Frame + Motor + Battery (all Y, from your assembler) plus Controller X (your direct vendor).
- Create virtual location "Assembler EE."
- PO to your vendor for 50 Controllers X, ship-to Assembler EE. Receive into Assembler EE.
- The assembler bills you for 50 complete bikes. You set up a Work Order for Bike A, quantity 50, location Assembler EE. The BOM pulls 50 of each Y component (Frame, Motor, Battery) plus 50 Controller X.
- When the assembler confirms completion, you run the Assembly Build. NetSuite assigns 50 serial numbers and rolls all component costs into each bike.
- Transfer Order moves the 50 bikes from Assembler EE to your main location.
Your inventory now shows 50 serialized bikes at your warehouse, each with full cost and serial history, and a zero balance of Controller X at the virtual location. Your vendor PO and bill for controllers, and the assembler's bill for bikes, both post cleanly to the general ledger.
If you'd rather automate the serial number assignment or the transfer between locations, a small script on the workorder and assemblybuild records can handle it. But for most teams, the native transaction flow above is enough to close the books in days, not weeks. Keep your virtual location active even when the assembler isn't building, and you'll have a clean, reconciled, and audit-ready trail for every bike that rolls off the line.


