Shipping and delivery
Quote shipping before payment, check addresses, buy each label once, track from carrier events, handle failed deliveries and replace lost parcels.
- Required 1
- Recommended 5
Required
Replace or refund parcels lost before delivery
ECM-29Treat a parcel lost or damaged before the buyer receives it as your loss. Reship or refund within a set time, such as 5 working days after the carrier confirms the loss. Claim from the carrier yourself.
Recommended
Quote the shipping cost before payment from the packed parcel
ECM-24Compute each shipping option's price on the server from the destination, the weight and the parcel size of the cart's variants. Show every option with its price and delivery estimate before the buyer pays.
Check the delivery address before you buy the label
ECM-25Check every delivery address against the country's postal format at checkout, and offer the corrected address when a lookup service suggests one. Let the buyer keep their own version.
Buy each shipping label once
ECM-26Buy a label with an idempotency key made from the shipment ID, and store the label and tracking number before printing. Void every label that is not used within the carrier's void window.
Update delivery status from carrier events
ECM-27Take delivery status from the carrier's signed webhooks or tracking API, mapped from each carrier's codes into one list of your own. Tell the buyer at shipped, out for delivery, delivered and every exception.
Handle failed deliveries and parcels sent back
ECM-28When a carrier reports a failed delivery or a parcel returning to you, contact the buyer the same day with their choices. Refund or reship within a set time, such as 3 working days after the parcel is back.
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/ecommerce/shipping-and-delivery">Agent Wranglers e-commerce and fulfilment playbook</a>. In code you write, add a comment next to it with the same link.