Answer the question the customer has now
After checkout, a customer wants to know whether the order exists, what the shop has done, what the carrier knows and whether any action is needed. Those are different questions. A single label such as “shipped” can conceal the difference between a label printed in a warehouse and a parcel accepted by a carrier. Start the page with the current confirmed state and the next expected step in plain language. Include the order reference, a date or time for the latest known update, the relevant delivery method and a route to help when the information looks wrong. Do not turn an estimated arrival into a guaranteed promise. Shopify’s order-status documentation illustrates a practical split: the page can show shop progress and, for supported carriers with tracking, later shipment updates. Use that as an example of state separation, not as proof that every carrier or merchant has the same data. The shop must decide which events it can actually verify.
Define the states before drawing the page
Map an order lifecycle using events that your systems actually receive. “Order received” means the checkout has created an order record; it does not, by itself, prove payment has settled or stock has been allocated. “Preparing” can mean staff are checking and packing; say what it means in your operation. “Handed to carrier” should require a genuine handoff signal if that wording is used. “In transit” and “out for delivery” depend on carrier evidence, not a clock since the label was printed. “Delivered” needs an appropriate delivery event or a documented manual confirmation, and exceptions such as attempted delivery need their own explanation. Shopify notes that a fulfilled order may remain in its Confirmed status until a carrier reports transit, and one without tracking may receive no shipping updates. A business should therefore avoid inventing intermediate stages to make a progress bar look busy. A simple truthful sentence can be more useful than a decorative timeline.
Show the source of tracking evidence
A tracking number is not the same as a working tracking journey. Check that the carrier name and tracking link correspond to the parcel, that a click opens the expected destination, and that any status shown on the shop page is based on a carrier event. Shopify explains that a supported carrier can display shipment location and updates on the order-status page. For an unsupported carrier, the number may link to the carrier’s site while the shop page cannot show real-time status. It also warns that some carrier links lead to a general page where the customer must enter the number. Tell the customer which of these experiences to expect. If the carrier has not yet scanned the parcel, say “Tracking may appear after the carrier receives it” only when that is the actual process; do not claim the item is moving. Where multiple parcels are involved, show a distinct carrier, number and item group for each shipment so one delivered box does not imply the entire order has arrived.
Protect details without hiding the answer
A status link may be forwarded, copied into a support chat or opened on a shared device. Decide which information a holder of the link can see and when stronger verification is needed. A bare order number should not reveal a full name, address, phone number, payment method or detailed tracking information to anyone who guesses it. Provide a practical recovery route for a guest buyer, using the contact channel associated with the order and an appropriate verification step. Shopify’s own implementation limits details after access periods and may ask for the order number plus the checkout email or phone number; its exact time limits are platform behaviour, not a general requirement for another shop. The useful design principle is to separate a low-sensitivity progress view from private order details. Test a forwarded link, a second browser and an expired session. The customer should still learn the broad progress and how to regain authorized access, without another person seeing sensitive data.
Explain gaps and exceptions plainly
An order-status page is most valuable when the normal path breaks. If there is no tracking service, do not show an empty tracking box; state that this delivery method has no live carrier tracking and give the next useful checkpoint. If a label exists but the carrier has no scan, show the last verified shop event and when it was recorded. If an attempted delivery appears, explain whether the customer should contact the carrier, check a collection notice or contact the shop; do not infer the action from a generic status name. When an expected update does not arrive, provide a support route that includes the order reference without requiring the customer to re-enter every detail. Keep the displayed time zone and event source clear, especially when a carrier system reports a different time. Shopify’s troubleshooting notes show that wrong carrier detection or incomplete tracking data can produce misleading links. Those examples justify an operational check before showing a confident tracking claim.
Work through a split shipment
Consider a customer who orders a desk lamp and two spare bulbs. The shop confirms the order and later packs the lamp from one location while the bulbs are waiting at another. A useful status page shows one order reference, then two fulfilment groups: the lamp has a verified carrier handoff and a link to its tracking; the bulbs are still being prepared, with no tracking number yet. If the carrier reports the lamp delivered, the page must not label the whole order delivered. If the bulbs are delayed, show a specific support route and the last verified update rather than invent a revised arrival date. On the confirmation message, link to the same status page so the customer has a durable route back. This is a hypothetical test case, not a statement that the shop has this inventory pattern. It exposes whether the data model distinguishes order, item group, shipment and carrier event.
Give staff one source of truth
Customer service should see the same underlying events as the customer, with additional private operational detail only where authorized. Establish who may correct a mistaken carrier, replace a broken link, mark a manual handoff or handle an exception. Record the reason and time for a manual change so that the page does not silently rewrite history. A carrier event can arrive late or out of order; the display should avoid moving a parcel backwards without an explanation. If the shop uses a third-party fulfilment app, check that it supplies the carrier and tracking URL as well as the number; Shopify warns that a number alone can be misidentified. Staff should know what to say when tracking is unavailable and when to escalate a mismatch. A useful service metric is whether customers can resolve their actual question from the page, supported by reviewed support cases; do not claim that a prettier progress bar has reduced enquiries without measurement.
Test the page against real event boundaries
Before release, create test orders for an untracked delivery, a tracked single parcel, a split shipment, an unsupported carrier and a failed delivery attempt. At each stage, compare the customer wording with the actual shop and carrier records. Open every tracking link in a clean browser. Verify the order reference, selected contact channel and time zone. Check that the page gives a next action when tracking is missing, wrong or stale, and that it does not expose private data through a copied link. Revisit the same orders after a carrier update and after access expires; a page that looked correct at creation can fail later. If the shop cannot obtain a particular event reliably, remove that claimed milestone rather than approximate it from elapsed time. Publish only the states and conditions that the operation can support, then refine the view when new evidence becomes available.
Write status copy from verified evidence
Create a small editorial dictionary for each event the shop can prove. For every status, record its source, the customer-facing sentence, the update time shown and the next action. “Label created” can say the shop is preparing dispatch; it must not say the carrier has the parcel. “Carrier accepted” can say the parcel has been handed over; it should not promise that delivery will occur on a particular day unless a supported service commitment exists. “Delivery attempted” should direct the buyer to the carrier’s notice or a support contact according to the actual arrangement. Give staff a way to report a mismatch between a status label and a physical parcel. Review this dictionary when the fulfilment partner, carrier integration or delivery product changes. That makes the page maintainable: a new tracking feed cannot silently introduce an unfamiliar term that customers interpret as a guarantee. It also gives customer service a consistent explanation when the carrier and shop systems show different timestamps.
Before you proceed
- Can the customer distinguish shop confirmation from carrier movement?
- Does each parcel show its own verified status and useful next action?
- Does a shared or expired status link protect private order details?


