In Litium 8 the ShippingInfo (SalesOrder.ShippingInfo) on the order is set during the checkout. When the package is ready to be delivered the shipment is created in Litium and when the shipment is ready to be sent, the payment app will be notified for the capture process. Order fulfillment (litium.com)
It’s also possible to use the Litium.Sales.ShipmentManager directly in the code to create the shipment, and then using the state engine to move the shipment into the Shipped state.
The Shipment is created, and has a SystemId (but no Id) and a OrderSystemId. But the SetState fails with Success=false but no exceptions or validation errors, so the Shipment is never moved to Processing. And in the Sales UI, no Shipment shows up on the sales order under “Deliveries”, so I can’t see the shipment anywhere in the UI.
If I use an incorrect ShippingMethod I get an exception when creating the shipment.