Shipments
An overview of shipment data modeling
1. An order can be fulfilled with multiple shipments.
2. A given shipment can only be associated with only one order.
3. Contents of a shipment is represented by ShipmentRow objects.
4. Discounts, fees, and shipping fees associated with the shipment are also represented in shipment rows.
5. The shipmentRow points to the order row through the OrderRowSystemId, which is being shipped. Note that, a given order row may be shipped using different shipments, in which case, there will be multiple shipment rows that point to a given order row.
6. When an order is canceled, a shipment for the canceled items is created, with a canceled state. When the order is fully processed, this ensures adding all shipment rows together will match the quantities and items in order rows.
7. Shipment and shipment rows are the basis to create the Capture transaction, to capture the money for the shipment, and also to create a Cancel transaction if it is a cancellation. The transaction row is referencing the shipment row it is associated with, through TransactionRow::ShipmentRowSystemId attribute.
Please see all details in a full-size diagram of shipment data modeling or click to enlarge the image below.
