Ship
o2c_ship_orderRecord a shipment against a confirmed order. Partial shipments are normal. Omit lines to ship everything still open. Pass lines to ship part of it — a short ship is a fact, not a failure, and the order stays open for the rest.
Stock is checked per line and cannot go negative. If there is not enough, ship what there is and say so; do not silently reduce the ordered quantity, because the customer is still owed the difference and the open quantity is how anyone knows that. Effects: delivery created; order_line.qty_shipped increased; item.on_hand decreased via core; order.status -> shipped when nothing remains.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | Leave empty to ship everything still open. | |
| carrier | No | Carrier. | |
| order_id | Yes | The order being shipped. An existing order id. | |
| tracking | No | Tracking number. |