Merchant embed widget
Add the free <livetrackings-widget> so shoppers can track parcels on your order confirmation / thank-you page. The widget calls our track API withSmartlinks disabled — embeds are not a CPA gate.
Free embeds work without signup (host quota applies). For higher volume, create an API key atlivetrackings.com/app and pass api-key="lt_live_…".
Quick install
<script src="https://livetrackings.com/widget.js" defer></script>
<livetrackings-widget
tracking-number="YOUR_TRACKING_NUMBER"
carrier="auto"
lang="en"
theme="light"
></livetrackings-widget>Attributes: tracking-number (required), carrier (optional hint),lang, theme (light | dark),api-key (optional merchant key from /app).
carrier="auto" lets our resolver detect the courier. Set it to a real carrier slug (for example postnord-spara-paket) if you want the widget to also link to that carrier hub page; with auto the hub link is omitted.
Add returns="off" if you do not want the Shippo affiliate return-label banner shown to your customers. Everything else keeps working.
Shopify
In the Shopify admin go toSettings → Checkout → Order status page →Additional scripts (or your order status / thank-you customization), then paste:
<script src="https://livetrackings.com/widget.js" defer></script>
{% if order.fulfillments.size > 0 %}
{% assign tn = order.fulfillments.first.tracking_number %}
{% if tn != blank %}
<livetrackings-widget
tracking-number="{{ tn }}"
carrier="auto"
lang="en"
theme="light"
></livetrackings-widget>
{% endif %}
{% endif %}Use the real fulfillment tracking number — not the Shopify order number. For multiple fulfillments, loop order.fulfillments and render one widget per tracking ID. Shopify admin UI labels change over time; if Additional scripts moved, use the current order status / thank-you customization entry point for your plan.
WooCommerce (functions.php or a small plugin)
add_action('woocommerce_thankyou', function ($order_id) {
if (!$order_id) return;
$order = wc_get_order($order_id);
if (!$order) return;
$tracking = $order->get_meta('_tracking_number');
if (!$tracking) return;
$lang = substr(get_locale(), 0, 2);
echo '<script src="https://livetrackings.com/widget.js" defer></script>';
printf(
'<livetrackings-widget tracking-number="%s" carrier="auto" lang="%s" theme="light"></livetrackings-widget>',
esc_attr($tracking),
esc_attr($lang)
);
}, 20);Meta key _tracking_number varies by shipping plugin — adjust to your store’s actual tracking meta field if events do not appear.
What the widget does
- Fetches status via
https://livetrackings.com/api/trackwithsmartlink: false. - Renders in a shadow root, so your theme CSS and the widget CSS cannot affect each other.
- About 6.8 KB (roughly 2.5 KB gzipped), no dependencies and no third-party bundles.
- Links shoppers to LiveTrackings for the full AI suite (those pages may show partner offers).
- Shows a prepaid return banner that is a Shippo PartnerStack affiliate link — we may earn a commission if a shopper buys a label.
- Shows Please Enter a Valid number when the courier returns no scans, so the widget never invents an ETA for a tracking number that does not exist.
- Provided free and as-is, with no uptime SLA and no support commitment.
Live demo
This is the real production widget calling the live API — paste any tracking number and press Track.