940 Warehouse Shipping Order
Send fulfillment instructions to your 3PL from Sales Orders or Transfer Orders
The 940 Warehouse Shipping Order is an outbound EDI transaction that instructs your 3PL to pick, pack, and ship inventory. The connector generates a 940 from a Sales Order or Transfer Order in NetSuite and sends it to the 3PL vendor associated with the order's location.
When Is a 940 Generated?
A 940 is generated when a Sales Order or Transfer Order is approved and the order's location is linked to a 3PL vendor with 940 enabled. Depending on your configuration, this can happen:
- Automatically — on Sales Order approval (when the order moves to "Pending Fulfillment" status), if the vendor's handling preference is set to "On Sales Order Approval" and auto-send is enabled
- Manually — via the Generate & Send 940 button on the Sales Order or Transfer Order record
Auto-Send vs. Manual
| Mode | Behavior |
|---|---|
| Auto-send enabled | 940 is generated AND dispatched to Orderful automatically on order approval |
| Auto-send disabled | 940 is generated and saved to the Orderful Transaction record, but not sent until you manually trigger it |
| Manual (button) | Generates and sends the 940 immediately, regardless of auto-send settings |
Data Flow
From a Sales Order
Sales Order approved in NetSuite
→ Connector checks: location has a vendor? Vendor has 940 enabled?
→ 940 message generated from Sales Order data
→ Sent to Orderful → routed to 3PL vendor
→ 3PL receives shipping instructions
From a Transfer Order
Transfer Order created in NetSuite
→ Connector checks: transfer location has a vendor? Vendor has 940 enabled?
→ 940 message generated from Transfer Order data
→ Sent to Orderful → routed to 3PL vendor
→ 3PL receives transfer/shipping instructions
The Transfer Order path works the same as the Sales Order path. The connector resolves the vendor from the order's location — whichever 3PL vendor is assigned to that location in NetSuite receives the 940.
Configuration
Vendor Setup
The 940 is configured on the Vendor record (your 3PL), not the Customer record.
- Open the 3PL Vendor record
- Go to the Orderful subtab > Enabled Transaction Types
- Add a line for 940 - Warehouse Shipping Order
- Configure:
- Test Mode — use Orderful TEST stream (for development/testing)
- Auto-Send — automatically dispatch 940 on order approval
- Handling Preference — set to "On Sales Order Approval" for automatic generation
- Company ISA ID — your company's ISA identifier (sender)
Location Setup
The location on the Sales Order or Transfer Order must have a Vendor assigned:
- Navigate to Lists > Site > Locations
- Open the warehouse location
- Set the Vendor field to the 3PL vendor
This is how the connector knows which 3PL to send the 940 to.
Item Requirements
Items on the order should have identifiers that your 3PL can use to locate and ship the correct products:
- UPC Code — primary product identifier
- Vendor Item Number — alternate identifier (your 3PL's internal part number)
- Case UPC — case-level UPC (if applicable)
- Case Pack Size — units per case (if applicable)
Message Structure
The 940 message contains the following data from the Sales Order or Transfer Order:
Header
| NetSuite Field | 940 Element | Notes |
|---|---|---|
| Sales Order Number | Depositor Order Number | The warehouse ordering party's reference |
| Purchase Order Number | Purchase Order Number | The buyer's PO number |
| Order Status | Order Status Code | Defaults to "Original" |
Ship-To Information (N1 Loop)
The ship-to address from the order, sent as the N1 party loop:
| NetSuite Field | 940 Element | Notes |
|---|---|---|
| DC Number | Identification Code | Primary. Falls back to Store Number, then Address ID |
| Address Line 1 | Address Information | Street address |
| City | City Name | |
| State | State/Province Code | |
| ZIP | Postal Code | |
| Country | Country Code |
Reference Information
Additional identifiers included when present on the order:
| NetSuite Field | Reference Qualifier | Included When |
|---|---|---|
| Purchase Order Number | 06 (Purchase Order) | PO number exists |
| Vendor Internal ID | IA (Internal Vendor Number) | Vendor resolved |
| Department Number | DP (Department) | Department exists on order |
| Customer Display Name | ZZ (Mutually Defined) | Customer exists |
| Customer Internal ID | 23 (Internal Customer Number) | Customer exists |
Dates
| NetSuite Field | Date Qualifier | Notes |
|---|---|---|
| Ship Date | 10 (Promised Delivery) | Requested ship date |
| Transaction Date | 04 (Invoice Date) | Order creation date |
| Earliest Delivery Date | 37 (Earliest Delivery) | If populated |
| Latest Delivery Date | 38 (Latest Delivery) | If populated |
Shipment Defaults
| Field | Default Value |
|---|---|
| Shipment Method of Payment | Prepaid by Seller |
| Transportation Method | Motor (Common Carrier) |
Line Items (LX / W01 Loop)
Each line item on the order becomes an entry in the LX loop:
| NetSuite Field | 940 Element | Notes |
|---|---|---|
| Ordered Quantity | Quantity | |
| Units | Unit of Measure | Defaults to "Each" if not set |
| UPC Code | Product Service ID (UPC qualifier) | Primary item identifier |
| Item ID | Product Service ID (Vendor Number qualifier) | Secondary identifier |
| Case UPC | UPC Case Code | Case-level identifier |
| Description | Free-Form Description | Line item description |
| Case Pack Size | Pack | Units per case |
| PO Line Reference | Seller's Line Item Identifier | Links back to original PO line |
Each line item also includes extended reference information with three entries linking back to the original PO line: Seller's Line Item Identifier (LI), Contract Line Item Number (C7), and Vendor Product Number (VP).
Product Service ID Qualifiers: Each line item can include up to three product identifiers. By default, the connector sends UPC as the primary and Vendor Number as the secondary. If custom qualifiers are configured on the line item, they take precedence.
EDI Notes
If the Sales Order has a value in the EDI Notes field, it is included in the 940 as a note with qualifier code DEL (delivery instructions).
Troubleshooting
940 Not Generating
| Check | How to Fix |
|---|---|
| Location has no vendor assigned | Open the Location record and set the Vendor field to your 3PL |
| 940 not enabled on vendor | Open the Vendor record > Orderful subtab > add 940 to Enabled Transaction Types |
| Handling preference not set | Set the vendor's 940 handling preference to "On Sales Order Approval" |
| Order not approved | 940 auto-generation triggers on approval. Ensure the Sales Order status moves to "Pending Fulfillment" |
940 Generated but Not Sent
| Check | How to Fix |
|---|---|
| Auto-send disabled | Either enable auto-send on the vendor's 940 configuration, or manually send via the button |
| ISA ID mismatch | Verify the Company ISA ID and Vendor ISA ID match what's configured in Orderful |
| Test mode routing | If in test mode, the 940 routes to the TEST stream — verify your 3PL is listening on the test channel |
Error Messages
| Error | Meaning | Solution |
|---|---|---|
| "Could not find related Sales Order / Transfer Order" | The Orderful Transaction record has no linked NetSuite order | Verify the order exists and is linked to the Orderful transaction |
| "No location found for order" | The Sales Order or Transfer Order has no location set | Set a location on the order that is linked to a 3PL vendor |
No vendor found for location {id} | The location exists but has no vendor assigned | Open the Location record and assign a vendor |
| "Outbound config not found" | 940 is not enabled on the resolved vendor | Enable 940 on the vendor's Enabled Transaction Types |
What's Next
- 945 Warehouse Shipping Advice — Receive the shipment confirmation back from your 3PL
- 943 Warehouse Stock Transfer Shipment Advice — For Transfer Order fulfillment confirmations
- 3PLs and 900-Series Overview — Back to the overview
Updated 20 days ago
