Skip to main content
OpenCart server-sidePlatform solution

Server-side tracking for OpenCart

You control the server, so the money event belongs on the order status change rather than the confirmation page. That fires once per order regardless of refreshes and gateway returns, and gives you a clean order ID to deduplicate on.

Free30 minutesNo obligation

OpenCart server-side · what breaks

What goes wrong on OpenCart

  1. 01

    Revisitable order confirmation

    Refresh, back-button and bookmark all re-fire a page-bound tag.

  2. 02

    Extension and theme modifications overlapping

    Two sources sending the same conversion.

  3. 03

    Payment extensions returning differently

    Each gateway extension has its own return path.

  4. 04

    Legacy modifications nobody documented

    Common on long-lived OpenCart installs.

OpenCart server-side · the fix

What changes — OpenCart server-side

  • One conversion per order

    From the order status change.

  • Extension inventory resolved

    One sending path retained.

  • Every gateway return tested

    Individually.

OpenCart server-side · architecture

What OpenCart exposes to a server container

Standard self-hosted approach: move the money event to the order.

  1. 1

    Purchase on order status change

    Fires once, server-side.

  2. 2

    Order ID as the deduplication key

    Available to PHP and the browser.

  3. 3

    Customer data from the order

    Normalized then hashed.

  4. 4

    Refund status wired as a reversal

    Rarely implemented.

  5. 5

    Extension paths retired after verification

    Not before.

OpenCart server-side · diagnose

Where OpenCart tracking breaks, in diagnostic order

Each check rules out a class of cause, so by the last one there is usually a single explanation standing.

  1. 01

    Refresh the confirmation page

    Watch for a second event.

  2. 02

    List installed extensions touching tracking

    Then check the theme too.

  3. 03

    Test each payment extension's return

    They differ.

  4. 04

    Match a closed week on order ID

    Against platform purchases.

  5. 05

    Check for repeated order IDs

    Proof of duplication.

OpenCart server-side · prove

The QA evidence — OpenCart server-side

Run on OpenCart specifically, on a live conversion rather than in preview mode.

Source of truth

your OpenCart order records

  • Confirmation page refreshed with no additional event.
  • Every payment extension's return path tested.
  • No order ID appearing twice at any destination.
  • Purchase count reconciled against OpenCart for a closed week.
  • A refund status change tested and confirmed reversing.
  • Reconciled over a fully closed window, matched per record rather than on totals.
  • Re-checked 30 days later, and after any platform update.

OpenCart server-side · free audit

What we check in the free audit

  • Refresh the confirmation page
  • List installed extensions touching tracking
  • Test each payment extension's return
  • Match a closed week on order ID
  • Check for repeated order IDs

Checked against

your OpenCart order records

Get my free conversion tracking audit

Free30 minutesNo obligation

OpenCart server-side · when not to buy

When you don't need this on OpenCart

Worth reading before you buy anything, from us or anyone.

  • If your counts already reconcile and refreshing the confirmation fires nothing extra, the classic problems don't apply.
  • This is standard PHP work your developer can do. Hand them the order status hook approach.
  • Do the extension and theme inventory first — it's free and it finds most duplication.
  • Reconcile a closed week on order ID before buying anything.

OpenCart server-side · what we deliver

What the server-side build gives you on OpenCart

  • Container on your own subdomain

    Your domain, your certificate, hosting in an account you control.

  • Money events from OpenCart orders

    The order status change, which fires once per order regardless of refreshes or gateway behaviour.

  • Deduplicated at every destination

    On a shared event ID, verified before any existing path is removed.

  • Consent enforced before dispatch

    A denied destination receives nothing, verified by capture rather than configuration.

Written guarantee

95%+ tracking accuracy

Measured against your OpenCart order records. Miss it and we keep working at no cost.

Get my free conversion tracking audit

Pricing

Pick the package that fits your ad spend

Browser-side starter

$400One-time fee · lifetime ownership

Repairs and verifies the browser-side setup you already have, on a live conversion. Honest about its ceiling on this platform.

  • Root cause fixed, not worked around
  • Verified on a live conversion
  • Reconciled against your own records
  • Written handover
Fix what I have

1st-party server-side

Recommended

$800One-time fee · most popular

Money events sent from your own records through a first-party container on your subdomain, so the browser can no longer lose them.

  • First-party server container on your own subdomain
  • Money events from your records, not the browser
  • Deduplicated on a shared event ID at every destination
  • First-party cookies beyond Safari's 7-day cap
  • 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Rebuild it server-side

Full 1st-party stack

$1,800One-time fee · lifetime ownership

Every paid channel server-side plus the offline loop, with monitoring so the next break surfaces in days.

  • Everything in 1st-party server-side
  • Pinterest, Snapchat, Reddit and LinkedIn CAPI
  • CRM and offline conversion loop
  • Refunds and cancellations corrected wherever each platform allows it
  • Monitoring on every destination
Get the full stack

FAQ

OpenCart server-side questions, answered

The order status change, server-side.

Free · 30 min

Move OpenCart events off the browser

Free30 minutesNo obligation