945 Warehouse Shipping Advice

Receive shipment confirmations with tracking numbers, carton data, and lot assignments

The 945 Warehouse Shipping Advice is an inbound EDI transaction that confirms your 3PL has shipped an order. When your 3PL sends a 945, the connector creates an Item Fulfillment in NetSuite with full carton details, tracking numbers, and lot/serial number assignments.

The 945 is the most feature-rich inbound 900-series transaction — it handles not just quantity confirmation, but also carton-level packing data, SSCC-18 identifiers, carrier tracking, and lot traceability.

When Does a 945 Arrive?

A 945 is sent by your 3PL after they pick, pack, and ship an order. This is the inbound counterpart to the 940 Warehouse Shipping Order — the 940 says "please ship this," and the 945 says "we shipped it, here's what we packed and the tracking numbers."

Data Flow

940 sent to 3PL (shipping instructions)
  → 3PL picks, packs, and ships
  → 3PL sends 945 to Orderful
  → Orderful delivers 945 to NetSuite connector
  → Connector matches 945 to original Sales Order or Transfer Order
  → Item Fulfillment created with:
     - Shipped quantities per line
     - Carton records with SSCC-18 and tracking numbers
     - Lot/serial number assignments (if applicable)
  → Fulfillment status set to "Shipped"

What the Connector Does

When a 945 is received, the connector processes it in two phases:

Phase 1: Map to Business Data Object (BDO)

  1. Extracts the order reference — looks for the Depositor Order Number or Purchase Order Number in the 945 header
  2. Looks up the original order — finds the Sales Order or Transfer Order in NetSuite
  3. Processes each LX loop (one LX per carton/shipment group):
    • Extracts SSCC-18 and tracking numbers from the Marks and Numbers segment
    • Processes each W12 loop (item detail within the carton):
      • Matches items to the original order using vendor number, UPC, or PO line reference
      • Extracts quantities and units of measure
      • Extracts lot/serial numbers from extended reference information (Lot qualifier)
    • Builds a carton record linking items to their packed quantities
  4. Aggregates items — if the same item appears in multiple LX loops (multiple cartons), quantities are summed
  5. Handles unshipped items — any order line items not present in the 945 are set to a shipped quantity of zero on the fulfillment
  6. Validates — confirms shipped quantities don't exceed ordered quantities

Phase 2: Create Item Fulfillment

  1. Transforms the original order into an Item Fulfillment record
  2. Sets ship status to "Packed" temporarily (prevents premature outbound processing)
  3. Updates line items on the fulfillment:
    • Sets itemreceive to true for each matched line
    • Updates quantity to the shipped quantity from the 945
    • For lot-numbered items: writes lot assignments to the inventory detail subrecord
  4. Creates carton records linked to the Item Fulfillment with SSCC-18 and tracking data
  5. Sets ship status to "Shipped" — this triggers any downstream outbound processing (e.g., generating an 856 ASN)

Line Item Matching

Same as other inbound 900-series transactions — the connector matches each W12 item to a line on the original order:

945 IdentifierQualifierMatches To
Product Service IDVendor NumberItem's Vendor Item Number in NetSuite
Product Service IDUPCItem's UPC Code in NetSuite
Product Service IDPurchase Order Line RefLine number on the original order

Message Structure (Inbound)

Header

945 ElementUsed ForNotes
Depositor Order NumberOrder lookupPrimary reference to find the Sales Order or Transfer Order
Purchase Order NumberOrder lookup (fallback)Used if Depositor Order Number is not present

Carton/Shipment Groups (LX Loop)

Each LX loop represents a carton, pallet, or shipment group. The loop contains:

Marks and Numbers (per LX)

945 ElementQualifierMaps ToNotes
Marks and NumbersSSCC-18 and Application IdentifierCarton SSCCThe unique carton identifier
Marks and NumbersCarrier Assigned Package IDTracking NumberCarrier tracking number for this carton

Item Details (W12 Loop, nested within LX)

Each W12 within an LX represents one item packed in that carton:

945 ElementMaps ToNotes
Product Service ID + QualifierItem matchingSee matching table above
QuantityShipped quantityNumber of units of this item in this carton
Unit of MeasureUOM
UPC Case CodeCase UPC
Free-Form DescriptionLine description
Case Pack SizePack
Extended Reference (Lot qualifier)Lot/serial numberAssigned to inventory detail subrecord

Lot/Serial Number Handling

If items are lot-numbered or serial-numbered in NetSuite, the connector writes lot assignments from the 945 into the Item Fulfillment's inventory detail subrecord:

  • Lot numbers are extracted from the W12 extended reference information (Reference Qualifier = Lot)
  • Each lot number gets an inventory assignment line with the lot's quantity
  • Lot information is also stored in a custom field on the fulfillment line for reporting

Note: For lot assignment to work, the item must be configured as a Lot Numbered item in NetSuite. If the item is not lot-numbered, the lot data from the 945 is stored in the custom field but not written to inventory detail.

Configuration

Enabling 945 Processing

  1. Open the relevant Customer or Vendor record
  2. Go to the Orderful subtab > Enabled Transaction Types
  3. Add a line for 945 - Warehouse Shipping Advice
  4. Configure:
    • Test Mode — process 945s from the TEST stream

No additional 945-specific configuration is required beyond the standard enabled transaction type setup.

Item Requirements

Items must have identifiers matching what your 3PL sends:

  • Vendor Item Number and/or UPC Code — at least one must match the 3PL's product service IDs
  • Lot Numbered item type — if you need lot tracking from the 945

Validation Rules

RuleWhat Happens
Shipped quantity exceeds ordered quantityError logged — the line is flagged
Item not found on original orderError logged — the line is skipped
Original order not foundProcessing fails — no Item Fulfillment is created

Troubleshooting

Item Fulfillment Not Created

CheckHow to Fix
945 not enabledEnable 945 on the Customer or Vendor's Enabled Transaction Types
Order reference doesn't matchVerify the Depositor Order Number or Purchase Order Number matches a Sales Order or Transfer Order in NetSuite
Sales Order not approvedThe order must be in "Pending Fulfillment" status for a fulfillment to be created
Order already fully fulfilledIf all lines are already fulfilled, a new fulfillment can't be created

Tracking Numbers Not Appearing

CheckHow to Fix
Wrong qualifier in 945Tracking numbers must use the Carrier Assigned Package ID qualifier in the Marks and Numbers segment
SSCC-18 present but no trackingSSCC-18 and tracking numbers are separate fields — your 3PL needs to send both if you need carrier tracking

Lot Numbers Not Assigned

CheckHow to Fix
Item not lot-numberedThe item must be configured as a Lot Numbered item type in NetSuite
Wrong qualifier in 945Lot numbers must use the Lot reference qualifier in the W12 extended reference information
Lot data in custom field but not inventory detailThis happens when the item isn't lot-numbered — lot info is stored for reference but not formally assigned

Cartons Not Created

CheckHow to Fix
No SSCC-18 in 945Carton records require an SSCC-18 identifier from the Marks and Numbers segment
LX loop structure issuesEach carton should be its own LX loop with Marks and Numbers followed by W12 item details

Error Messages

ErrorMeaningSolution
"Could not find related Sales Order / Transfer Order"Order reference doesn't match anything in NetSuiteVerify the Depositor Order Number with your 3PL
"No matching line items"None of the items in the 945 could be matched to the original orderCheck item identifiers (UPC, vendor number)
"Shipped quantity exceeds ordered quantity"3PL reported shipping more than orderedVerify with your 3PL

What's Next