Skip to main content

Shipments & Receiving

How to create shipments against a transfer order and record goods receipt.


Shipment Statuses

StatusMeaning
activeShipment created; quantities being managed
receivedGoods received
cancelledShipment voided

Note: transfer shipment statuses differ from PO shipment statuses. Transfer shipments use active (not announced) as their initial state.


Creating a Shipment

Shipments are added from the Shipments tab on the transfer order detail page.

FieldRequired?Notes
Estimated delivery date✅ Required if Shopify sync enabledThe backend throws an error if this is missing when sync is on
Tracking numberOptional
Shipment itemsPer line item: set quantity announced

Status transition: when the first shipment is created against a confirmed transfer, the transfer status automatically changes from confirmed to in_transit and all confirmed line items transition to in_transit. This is a backend operation requiring no manual action. Subsequent shipments do not change the status again.


Three Quantities Per Shipment Item

Each shipment item tracks three independent quantities:

FieldMeaning
Quantity announcedUnits expected / allocated to this shipment
Quantity acceptedUnits received and passed inspection
Quantity defectUnits received but failed inspection

These three quantities drive two distinct sync phases when Shopify sync is enabled. See Shopify Sync for full details.


Receiving a Shipment

Open the shipment from the Shipments tab. For each shipment item, enter the quantity accepted and quantity defect. The two receipt quantities are independent — you can update either one separately.

When quantities are updated:

  • quantityPending on the parent line item is recalculated automatically
  • If Shopify sync is enabled, the corresponding receipt mutations are enqueued immediately (delta-based, per change)

Partial Receipts

If only part of a shipment arrives, enter the quantities for the units that did arrive. The remaining quantity stays open. You can create additional shipments against the same transfer order until fully received. The transfer status remains in_transit until the transfer is explicitly marked complete.


Handling Discrepancies

Fewer units than announced

Update the shipment item to reflect what actually arrived. Create a new shipment for the outstanding quantity when the remainder is dispatched.

Units failing inspection

Set quantity accepted to the good units and quantity defect to the failed units. Only accepted quantity counts toward your usable stock. Defect quantity is tracked separately and reflected in the quantityDefectComputed aggregate on the transfer.

Wrong product received

Do not record receipt in Synplex until the correct goods arrive. Recording incorrect stock will corrupt on-hand inventory counts.


Updating the Estimated Delivery Date

If the shipment ETA changes after the shipment has been synced to Shopify, update the estimatedDeliveryDate on the shipment record. Synplex will automatically enqueue a SHIPMENT_SET_TRACKING mutation to update the ETA in Shopify — but only if:

  • The shipment has a shopifyId
  • Shopify sync is enabled on the parent transfer
  • The parent transfer status is confirmed (not in_transit)