Branded tracking

Updated May 29, 20263 min read

Branded tracking is what the customer sees when they click "track my order". It comes in two variants:

  • Shipment tracking. A single Carriyo Shipment, identified by its shipment ID.
  • Order tracking. Every shipment for a given customer order, grouped by partner_order_reference. Useful when one order splits into multiple shipments, and when the customer arrives without a shipment ID.

Most merchants enable both. Shipment tracking is what notification links land on; order tracking is what the customer self-serves from the brand's site.

Shipment tracking

Direct URL per shipment:

https://track.brand.com/track/{shipmentId}

The shipment ID is part of the link Carriyo includes in notification templates (the tracking_link tag in Liquid). Each shipment has a unique, unguessable ID; the page is semi-public: anyone with the URL can view it, but the URL itself isn't discoverable.

Order tracking

Reached either by the customer typing an order reference, or by deep-linking from your own site:

https://track.brand.com/?order_ref={partner_order_reference}&email_or_phone={value}

Carriyo resolves order_ref against partner_order_reference on the shipment(s), then validates email_or_phone against the shipments' dropoff.contact_email or dropoff.contact_phone. If both match, the customer sees all shipments under that order on one page.

The landing page

When a customer lands on the root of the tracking domain (https://track.brand.com/), they see a lookup form: enter the order reference and their email or phone, submit, and the page takes them to the order tracking view.

If you can pass order_ref and email_or_phone as query parameters from your own order-confirmation page, the landing form is skipped.

When orders aren't subscribed

Order tracking works even if the tenant doesn't subscribe to Carriyo's Orders module. The lookup goes against partner_order_reference on the shipment table directly. The customer doesn't see "order" metadata; they see the list of shipments that share the reference.

Domains

Tracking pages are served from:

  • The default subdomain: {slug}.track.ordercx.com.
  • A configured custom domain: track.brand.com. See Post-purchase CX for the CNAME setup.

The page itself is identical on either domain.

Iframe embedding

The tracking page can be embedded in the merchant's own pages (for example, "My Account → Order Status"). Two things to configure:

  • Enable iframe mode on the tracking app.
  • Allowed parent origins. A comma-separated list of domains permitted to embed the page. Carriyo enforces this via Content-Security-Policy: frame-ancestors; embedding from any origin not on the list is blocked by the browser.

Append ?iframe to the tracking URL to render the iframe-optimized view (no header / footer chrome).

Theming

Tracking inherits the merchant's brand theme by default, or overrides per app. The Dashboard exposes:

  • Logo (per language).
  • Favicon.
  • Brand colors, body colors, header colors.
  • Body, secondary, and header fonts. System fonts are available out of the box; custom fonts can be uploaded.
  • Button colors, borders, radius.
  • Form-field borders and radius.
  • Customer-support contacts (email, phone, WhatsApp) per country.

Languages

The tracking page renders status text, CTAs, and brand strings in the customer's language. The merchant configures which languages are selectable on the tracking app; the customer can switch on the page.

Status labels translate via the merchant's strings; shipment data (tracking number, dates, addresses) renders as-is.

Embedded feedback

If feedback is enabled and the shipment is delivered, the tracking page can embed the feedback widget inline: the customer rates the delivery without leaving the tracking view. Configured on the tracking app via the Feedback Widget setting. Note that the feedback page itself can't be iframed elsewhere; the tracking-page widget is the only way to show the feedback form inside another page.

Privacy

The tracking page URL acts as the access token: anyone with the shipment-level URL, or anyone who passes the order-tracking landing-page check, sees the shipment data on it. The order lookup's email_or_phone validation is the second factor for the order variant. There's no further authentication.

How it fits with other modules