Only run `create_shipment!` when we really need it

In checkout_flow that would be only when order.total is zero and the
order has a shipping method

Fixes #3708