Item Number Fields (SuiteBuilder)
Comprehensive guide to managing item identifiers, SKUs, barcodes, and alternate part numbers in NetSuite.
Overview
Item number fields store the identifiers used to recognize items internally and externally. NetSuite supports multiple item identifier types for different purposes.
ITEM IDENTIFIER TYPES
═══════════════════════════════════════════════════════════════════════════════
Item Record: Widget-A
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ INTERNAL IDENTIFIERS │
│ ──────────────────── │
│ Internal ID: 12345 (System-generated, immutable) │
│ Name/Number: WIDG-A-001 (Primary display identifier) │
│ Display Name: Premium Widget A (Descriptive name) │
│ External ID: EXT_WIDG_001 (Integration key) │
│ │
│ CUSTOM IDENTIFIERS │
│ ────────────────── │
│ custitem_sku: SKU-12345-BLK (Custom SKU field) │
│ custitem_barcode: 012345678901 (UPC/EAN barcode) │
│ custitem_vendor_pn: VP-001-A (Vendor's part number) │
│ custitem_customer_pn: ABC-123 (Customer-specific code) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Standard Item Identifier Fields
Built-in Identifier Fields
| Field | Internal ID | Purpose | Unique? |
|---|---|---|---|
| Item Name/Number | itemid | Primary system identifier | Yes |
| Display Name/Code | displayname | User-friendly name | No |
| Internal ID | id | System-generated ID | Yes |
| External ID | externalid | Integration/import key | Yes (if set) |
| Vendor Code | vendorname (sublist) | Vendor's part number | No |
| UPC Code | upccode | Universal Product Code | Optional enforcement |
| Purchase Description | purchasedescription | Vendor purchase text | No |
| Sales Description | salesdescription | Customer-facing text | No |
Creating Custom Identifier Fields
Navigation
Customization → Lists, Records, & Fields → Item Fields → New
SKU Field Example
CUSTOM SKU FIELD CONFIGURATION
═══════════════════════════════════════════════════════════════════════════════
┌─────────────────────────────────────────────────────────────────────────────┐
│ BASIC SETTINGS │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ Label*: [SKU ] │
│ ID*: [custitem_sku ] │
│ Type: [Free-Form Text ▾] │
│ │
│ Description: [Stock Keeping Unit for inventory │
│ management and order tracking ] │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ VALIDATION │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ☑ Mandatory Every item must have a SKU │
│ ☑ Unique Value No duplicate SKUs allowed │
│ │
│ Default Value: (none) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ APPLIES TO │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ☑ Inventory Item │
│ ☑ Lot Numbered Inventory Item │
│ ☑ Serialized Inventory Item │
│ ☑ Assembly/Bill of Materials │
│ ☐ Service Item │
│ ☐ Non-Inventory Item │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Common Custom Identifier Patterns
Barcode/UPC Fields
BARCODE FIELD CONFIGURATION
═══════════════════════════════════════════════════════════════════════════════
Field: UPC Barcode
ID: custitem_upc_barcode
Type: Free-Form Text
Validation Options:
┌─────────────────────────────────────────────────────────────────────────────┐
│ ☑ Unique Value Prevent duplicate barcodes │
│ ☐ Mandatory Not all items need barcodes │
│ │
│ Format Hint: Enter 12 or 13 digit UPC/EAN code │
└─────────────────────────────────────────────────────────────────────────────┘
Common Barcode Types:
• UPC-A: 12 digits (North America)
• EAN-13: 13 digits (International)
• EAN-8: 8 digits (Small packages)
• ISBN: 13 digits (Books)
• ASIN: 10 characters (Amazon)
Vendor Part Number Fields
VENDOR PART NUMBER PATTERNS
═══════════════════════════════════════════════════════════════════════════════
Option 1: Single Field (One Primary Vendor)
┌─────────────────────────────────────────────────────────────────────────────┐
│ Field: Vendor Part Number │
│ ID: custitem_vendor_part_no │
│ Type: Free-Form Text │
│ Use: When item has one primary vendor │
└─────────────────────────────────────────────────────────────────────────────┘
Option 2: Item Vendor Sublist (Multiple Vendors)
┌─────────────────────────────────────────────────────────────────────────────┐
│ Location: Item → Purchasing → Vendors subtab │
│ Built-in Field: purchasedescription (per vendor) │
│ Custom Field: custrecord_vendor_pn (on vendor sublist) │
│ Use: When item has multiple vendor sources │
└─────────────────────────────────────────────────────────────────────────────┘
Item-Vendor Sublist Example:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Vendor │ Vendor Code │ Vendor PN* │ Cost │ Lead Time │
│ ──────────────┼───────────────┼─────────────┼─────────┼────────────────────│
│ Supplier A │ WIDG-001 │ SA-WGT-A1 │ $15.00 │ 5 days │
│ Supplier B │ W-A-001 │ SB-WIDGET │ $16.50 │ 3 days │
│ │
│ * = Custom field on vendor sublist │
└─────────────────────────────────────────────────────────────────────────────┘
Customer Part Number Fields
CUSTOMER-SPECIFIC PART NUMBERS
═══════════════════════════════════════════════════════════════════════════════
For customer-specific identifiers, consider:
Option 1: Item Alias Records
• Use NetSuite's Item Alias feature
• Maps customer codes to item records
• Works with sales order entry
Option 2: Custom Record (Item-Customer Mapping)
• Custom record: Item Customer Code
• Fields: Item (list), Customer (list), Customer Part Number (text)
• Script lookup during order entry
Option 3: Matrix Item Child SKUs
• For product variations with customer-specific codes
• Each child item has unique identifier
Example Mapping Record:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Item │ Customer │ Customer Part Number │
│ ──────────────────┼─────────────────┼──────────────────────────────────────│
│ WIDG-A-001 │ ABC Corp │ ABC-12345 │
│ WIDG-A-001 │ XYZ Inc │ XYZ-W-001 │
│ WIDG-A-001 │ Acme Co │ ACME-WIDGET-A │
└─────────────────────────────────────────────────────────────────────────────┘
Displaying Identifiers on Transactions
Transaction Form Configuration
ITEM IDENTIFIER DISPLAY ON TRANSACTIONS
═══════════════════════════════════════════════════════════════════════════════
Sales Order Items Sublist:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Item │ Display Name │ SKU* │ Qty │ Rate │ Amount │
│ ────────────┼──────────────────┼────────────┼─────┼─────────┼──────────────│
│ WIDG-A-001 │ Premium Widget A │ SKU-12345 │ 10 │ $25.00 │ $250.00 │
│ WIDG-B-001 │ Standard Widget │ SKU-67890 │ 5 │ $15.00 │ $75.00 │
│ │
│ * = Custom column sourced from item field │
└─────────────────────────────────────────────────────────────────────────────┘
Configuration Steps:
1. Create item field (custitem_sku)
2. Create transaction line field (custcol_sku)
3. Set line field to source from item field
4. Add column to transaction form
Sourcing Item Fields to Lines
IDENTIFIER SOURCING TO TRANSACTION LINE
═══════════════════════════════════════════════════════════════════════════════
Item Record Transaction Line
┌─────────────────────────────────┐ ┌─────────────────────────────────┐
│ Item: WIDG-A-001 │ │ Line Item: WIDG-A-001 │
│ │ │ │
│ custitem_sku: SKU-12345 │──▶│ custcol_sku: SKU-12345 │
│ custitem_barcode: 012345678901 │ │ custcol_barcode: 012345678901 │
│ │ │ (Values auto-populate) │
└─────────────────────────────────┘ └─────────────────────────────────┘
Line Field Configuration:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Field: SKU (Line) │
│ ID: custcol_sku │
│ Type: Free-Form Text │
│ │
│ Source From: Item │
│ Source Field: custitem_sku │
│ Display Type: Disabled (read-only on line) │
└─────────────────────────────────────────────────────────────────────────────┘
Item Alias Feature
NetSuite's built-in Item Alias feature maps alternate identifiers to items:
ITEM ALIAS CONFIGURATION
═══════════════════════════════════════════════════════════════════════════════
Navigation: Lists → Accounting → Items → Item Alias
Item Alias Record:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Alias: CUST-ABC-123 │
│ Item: [Widget A ▾] │
│ Customer: [ABC Corp ▾] (Optional: customer-specific) │
│ Description: Customer's part number for Widget A │
└─────────────────────────────────────────────────────────────────────────────┘
Benefits:
• Type alias on order, selects correct item
• Customer-specific aliases supported
• Search by alias in saved searches
• No custom scripting required
Identifier Lookup Strategies
Search by Multiple Identifiers
-- SuiteQL: Find item by any identifier
SELECT
i.id,
i.itemid AS item_number,
i.displayname,
i.custitem_sku AS sku,
i.custitem_barcode AS barcode,
i.upccode
FROM
item i
WHERE
i.itemid = 'WIDG-A-001'
OR i.custitem_sku = 'SKU-12345'
OR i.custitem_barcode = '012345678901'
OR i.upccode = '012345678901'
SuiteScript Lookup
// Lookup item by custom identifier
function findItemByIdentifier(identifierType, identifierValue) {
var fieldId;
switch(identifierType) {
case 'sku':
fieldId = 'custitem_sku';
break;
case 'barcode':
fieldId = 'custitem_barcode';
break;
case 'vendor_pn':
fieldId = 'custitem_vendor_part_no';
break;
default:
fieldId = 'itemid';
}
var itemSearch = search.create({
type: 'item',
filters: [
[fieldId, 'is', identifierValue]
],
columns: ['itemid', 'displayname', 'internalid']
});
var result = itemSearch.run().getRange(0, 1);
return result.length > 0 ? result[0].id : null;
}
Matrix Items and Identifiers
For matrix items with variations, each child needs unique identifiers:
MATRIX ITEM IDENTIFIER STRATEGY
═══════════════════════════════════════════════════════════════════════════════
Parent: T-Shirt (matrix parent)
┌─────────────────────────────────────────────────────────────────────────────┐
│ Item Name: TSHIRT │
│ Display Name: Classic T-Shirt │
│ SKU: (not set - children have unique SKUs) │
└─────────────────────────────────────────────────────────────────────────────┘
Children (with unique identifiers):
┌────────────────────┬────────────────────┬──────────────────┬────────────────┐
│ Item Name │ Display Name │ SKU │ Barcode │
├────────────────────┼────────────────────┼──────────────────┼────────────────┤
│ TSHIRT-S-RED │ T-Shirt Small Red │ TSH-S-RD-001 │ 012345678901 │
│ TSHIRT-S-BLUE │ T-Shirt Small Blue │ TSH-S-BL-001 │ 012345678902 │
│ TSHIRT-M-RED │ T-Shirt Med Red │ TSH-M-RD-001 │ 012345678903 │
│ TSHIRT-M-BLUE │ T-Shirt Med Blue │ TSH-M-BL-001 │ 012345678904 │
└────────────────────┴────────────────────┴──────────────────┴────────────────┘
Best Practice:
• Parent has base item number and display name
• Children have unique SKUs, barcodes
• Auto-generate child identifiers with pattern
Integration Considerations
Identifier for E-commerce
E-COMMERCE IDENTIFIER MAPPING
═══════════════════════════════════════════════════════════════════════════════
NetSuite Field E-commerce Use
───────────────── ──────────────
itemid Product ID / Slug
displayname Product Title
custitem_sku SKU for inventory
upccode / custitem_barcode Barcode scanning
salesdescription Product description
custitem_asin Amazon identifier
custitem_upc Amazon/eBay barcode
Connector Mapping:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Platform │ NetSuite Field │ Platform Field │
├─────────────────┼────────────────────────┼─────────────────────────────────┤
│ Shopify │ custitem_sku │ SKU │
│ Amazon │ custitem_asin │ ASIN │
│ WooCommerce │ itemid │ Product ID │
│ EDI │ upccode │ UPC │
└─────────────────────────────────────────────────────────────────────────────┘
Warehouse/WMS Integration
WAREHOUSE IDENTIFIER REQUIREMENTS
═══════════════════════════════════════════════════════════════════════════════
Warehouse operations typically need:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Identifier │ WMS Use │ NetSuite Field │
├─────────────────────┼────────────────────────────┼─────────────────────────┤
│ Scannable Code │ Barcode scanning │ custitem_barcode │
│ Product SKU │ Pick list, location │ custitem_sku │
│ Lot/Serial │ Inventory tracking │ (lot number field) │
│ Bin Location │ Storage location │ custrecord_bin │
└─────────────────────────────────────────────────────────────────────────────┘
Barcode Label Fields:
• Primary barcode (UPC/EAN)
• Internal SKU barcode
• Location barcode
• Lot/Serial barcode
Best Practices
Naming Conventions
| Identifier Type | Convention | Example |
|---|---|---|
| SKU | [Category]-[Seq]-[Variant] | WIDGET-001-BLK |
| Barcode | Standard format (UPC/EAN) | 012345678901 |
| Vendor PN | Vendor's format | VP-12345-A |
| Customer PN | Customer's format | CUST-ABC-001 |
Design Checklist
| Consideration | Recommendation |
|---|---|
| Primary ID | Decide which identifier is system of record |
| Uniqueness | Enforce unique where required (SKU, barcode) |
| Display | Show relevant ID on transactions and reports |
| Sourcing | Auto-populate line fields from item |
| Integration | Map identifiers to external systems |
| Search | Enable identifier search on forms |
| Matrix | Ensure children have unique identifiers |
Common Mistakes
| Mistake | Solution |
|---|---|
| Duplicate SKUs allowed | Enable Unique Value validation |
| Wrong ID on pick lists | Configure form to show correct field |
| Integration ID mismatch | Standardize external ID usage |
| Matrix children share parent ID | Generate unique child identifiers |