-
Notifications
You must be signed in to change notification settings - Fork 2
Shipments
The connector imports NetSuite ItemFulfillment records for store orders. It expects a linked createdFrom sales order and a fulfillment with shipStatus equal to _shipped. Records are compared against the stored import timestamp before updating.
There is no store-to-NetSuite shipment exporter. Decide which system owns fulfillment before enabling the import.
The single-source mapper creates or updates a store shipment from the fulfillment's items and addresses. It maintains the NetSuite ID and import timestamp and adds the NetSuite transaction reference to shipment comments.
When updating a shipment, the cleanup manager removes existing shipment items and tracks before rebuilding them from the remote record. Treat fulfillment edits as synchronization operations, not just additive tracking updates.
The tracking mapper handles generic packages plus FedEx, UPS, and USPS package lists. Configure the NetSuite shipping-item internal ID to store carrier-code mapping. The fallback tracking type is custom.
If Send tracking information is enabled, newly detected tracking information can trigger a Magento shipment notification. A fulfillment with no new tracking numbers does not trigger that notification path merely because it was imported.
# NetSuite ItemFulfillment internal ID
bin/magento netsuite:utils:processrecord --type=shipment_import --id=123The shipment interface retains special handling through custcol_parent_id, populated by account-side scripting to associate item-group members with a single store product. Its source comment explicitly describes this as a proof of concept rather than a complete solution. Validate item-group fulfillment separately; do not assume ordinary simple-product acceptance covers it.
Multi mode selects a mapper intended to split a fulfillment by inventory location and map each location to an MSI source. In the reviewed code, LocationGrouper::group() yields arrays of fulfillment items, while the caller passes each result to methods requiring a NetSuite Record and passes it into the address/item mappers. This is an incompatible data contract, reproduced with an isolated type probe.
Do not assume multi-location fulfillment imports work because the configuration option exists. See Known limitations and Inventory. Missing or unmapped locations are an additional acceptance case after the mapping defect is resolved.
The module globally disables Magento's normal shipment source-deduction observer. It relies on NetSuite stock imports and its reservation-compensation integration. Review inventory quantities and salable quantities together; a successfully saved shipment does not prove correct inventory accounting.
Test full and partial fulfillment, configurable and bundle items, multiple tracking numbers, repeat import, edited fulfillment, and notification delivery in the target installation.
Sources: fulfillment processor, single-source mapper, cleanup, tracking, notification rules, item-group contract, multi-source mapper, location grouper, observer declarations.
Mage-OS Labs · Source · Reviewed commit fec65e2 · September 9, 2026 · Validation and limitations
Mage-OS NetSuite Connector
Setup
Data flows
Operations and development