Seentics

Integration

BigCommerce, PrestaShop and Magento

Put the tag in the storefront header, then send a purchase from the order confirmation page.

Written from the platforms' documentation, not run on a store

The script placement is routine. The purchase snippets read each platform's order data and have not been tested on a live shop, so a field name can differ in your version or theme. Place a test order and confirm it under Revenue before relying on it.

The tag, on every page

Replace YOUR_WEBSITE_ID with the ID from Settings → Tracking in Seentics.

header
<script defer data-website-id="YOUR_WEBSITE_ID" src="https://seentics.com/trackers/seentics.min.js"></script>

BigCommerce

  • Tag: Storefront → Script Manager → Create a script. Location Header, pages All pages, script type Script. Paste the tag.
  • Purchase: a second script, location Footer, page Order confirmation. BigCommerce exposes the order through its Storefront API; the snippet below fetches it. How the order id reaches the confirmation page differs between checkout versions, so the first line is the part you will need to adjust.
Script Manager, order confirmation
<script>
// Storefront → Script Manager → new script, location: Footer, pages: Order confirmation.
(function () {
  var orderId = new URLSearchParams(location.search).get('orderId'); // adjust to how your confirmation URL carries the order id
  if (!orderId) return;
  fetch('/api/storefront/order/' + encodeURIComponent(orderId), { credentials: 'same-origin' })
    .then(function (r) { return r.ok ? r.json() : null; })
    .then(function (o) {
      if (!o || !isFinite(Number(o.orderAmount))) return;
      var tries = 0;
      (function send() {
        if (window.seentics && window.seentics.track) {
          window.seentics.track('purchase', {
            value: Number(o.orderAmount),
            currency: (o.currency && o.currency.code) || 'USD',
            order_id: String(o.orderId || orderId),
            items: ((o.lineItems && o.lineItems.physicalItems) || []).map(function (i) {
              return { name: i.name, sku: i.sku, qty: i.quantity, price: i.salePrice };
            })
          });
        } else if (++tries < 100) {
          setTimeout(send, 100);
        }
      })();
    })
    .catch(function () {});
})();
</script>

PrestaShop

  • Tag: put it in your theme's head.tpl (child theme recommended), or use a custom-code or header-scripts module from your back office.
  • Purchase: the order confirmation page template receives an $order array. Add this to your theme's order-confirmation.tpl. The amount field is the order total as a number in PrestaShop 1.7 and later; check yours.
order-confirmation.tpl
{* themes/<your-theme>/templates/checkout/order-confirmation.tpl, inside the page's content block *}
{if isset($order) && $order.totals.total.amount > 0}
<script>
(function () {
  var props = {
    value: {$order.totals.total.amount|floatval},
    currency: '{$currency.iso_code|escape:'javascript':'UTF-8'}',
    order_id: '{$order.details.reference|escape:'javascript':'UTF-8'}'
  };
  var tries = 0;
  (function send() {
    if (window.seentics && window.seentics.track) {
      window.seentics.track('purchase', props);
    } else if (++tries < 100) {
      setTimeout(send, 100); // the tracker is deferred: wait for it
    }
  })();
})();
</script>
{/if}

Magento / Adobe Commerce

  • Tag: Admin → Content → Design → Configuration → edit the scope → HTML Head → Scripts and Style Sheets. Paste the tag and save; clear the cache.
  • Purchase: the order total is not available to the page without a PHP block or view model on the checkout_onepage_success page, and no snippet is offered here because it is untested. If your store already pushes the GA4 purchase event to dataLayer (most analytics extensions do), use the Google Tag Manager setup, which reads exactly that.

What a purchase carries

value (the order total as a number), currency, order_id and, optionally, items as [{ name, sku, qty, price }] where price is the unit price. Seentics counts one order per order_id, so reloading the confirmation page does not add revenue twice. Refunds are sent separately with refund.