Skip to content

Analytics & Conversion Tracking ​

CoreXUpload Print can report a confirmed WooCommerce purchase using your existing analytics setup. That lets you measure campaign performance and return on ad spend (ROAS) from actual paid Upload Print orders, not from upload clicks or checkout starts alone.

This page applies to WooCommerce today. Shopify and Wix purchase conversion adapters are planned but not yet available.

What is reported ​

When a qualifying Upload Print order is paid, CoreXUpload Print exposes one canonical purchase payload. It includes:

FieldDescription
Transaction / order IDWoo order identifier
CurrencyWoo order currency (for example CAD, USD)
ValueNet merchandise revenue after discounts (see below)
TaxWoo order tax total (separate from value)
ShippingWoo shipping total (separate from value)
ItemsPurchased products: ID, name, quantity, and SKU, category, or variation when Woo provides them
CoreXBiz event IDStable identifier for deduplication across page reloads
AttributionWoo-native campaign fields when present on the order

CoreXUpload Print reads these values from WooCommerce. It does not own product pricing on the completed order.

Revenue definition ​

Purchase value means:

Net merchandise revenue after discounts, excluding tax and excluding shipping.

For WooCommerce, CoreXUpload Print uses Woo’s authoritative order economics:

text
product subtotal
minus
Woo order discount total

CoreXUpload Print does not recalculate coupons or redistribute discounts. This keeps conversion value suitable for advertising revenue and ROAS without treating collected tax or shipping as merchandise revenue.

Example ​

LineAmount
Product subtotal$149.00
Discount−$49.00
Tax$12.00
Shipping$0.00
Order total (paid)$112.00
text
$149 subtotal
− $49 discount
= $100 net merchandise revenue

Tax is reported separately and is not included in the conversion value.

Reported purchase value: $100.00
Reported tax: $12.00
Currency: whatever Woo supplies (for example CAD)

The order total paid by the customer ($112.00) includes tax; the conversion value field does not.

Item-level prices ​

When Woo has allocated discounts to individual line items, item-level prices may appear in the payload. When Woo applied a discount only at order level and line totals do not match the net merchandise value, item prices are omitted rather than estimated. CoreXUpload Print does not proportionally invent per-item discount amounts.

Who receives a purchase event ​

A purchase event is emitted only when all of the following are true:

  1. The order contains at least one Upload Print line item
  2. WooCommerce considers the order paid
  3. The customer reaches the Woo order received / thank-you page

Unrelated Woo orders, unpaid orders, and checkout abandonment do not produce Upload Print purchase events.

Each paid order produces one conversion record. Reloading the thank-you page reuses the same event identity so downstream tools can deduplicate if needed.

Existing analytics integrations ​

CoreXUpload Print supports three browser integration surfaces. All use the same canonical payload. CoreXUpload Print does not install analytics SDKs or measurement IDs.

dataLayer / Google Tag Manager ​

The purchase payload is pushed to your existing:

js
window.dataLayer

If you already use Google Tag Manager or another tag container that reads dataLayer, you can map the purchase event from there.

CoreXUpload Print does not install GTM or create a container for you.

Direct Google tag / GA4 ​

If your site already defines window.gtag and no active GTM container (GTM-…) is detected, CoreXUpload Print may send the standard GA4-style purchase event through that existing gtag function, passing the ecommerce portion of the payload.

CoreXUpload Print does not:

  • Install gtag.js
  • Add a GA4 measurement ID
  • Create a Google account connection
  • Override consent settings
  • Call gtag('config', …)

Your existing analytics configuration remains yours to manage.

When GTM is active, only the dataLayer push runs for that page load — avoiding duplicate purchase firing through both GTM and direct gtag.

Neutral CoreXBiz browser event ​

For custom or non-Google integrations, listen for:

text
corexbiz:purchase

This CustomEvent carries the full canonical payload in event.detail. Other marketing or analytics tools can subscribe without modifying Upload Print.

js
window.addEventListener("corexbiz:purchase", (event) => {
  // event.detail contains the full purchase payload
  console.log(event.detail);
});

CoreXUpload Print does not call Meta, Reddit, Pinterest, or other advertising pixels directly. A custom integration can consume corexbiz:purchase instead.

Purchase event example ​

Illustrative payload (synthetic values):

js
{
  event: "purchase",
  ecommerce: {
    transaction_id: "12345",
    currency: "CAD",
    value: 125.00,
    tax: 15.00,
    shipping: 0,
    items: [
      {
        item_id: "1487",
        item_name: "Fine Art Print",
        quantity: 1,
        item_sku: "PRINT-001"
      }
    ]
  },
  cbz: {
    event_id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    component: "upload_print",
    attribution: {
      source: "google",
      medium: "paid_search",
      campaign: "fine_art_printing"
    }
  }
}

The cbz.attribution object appears only when Woo Order Attribution stored those fields on the order.

How to verify tracking ​

Use a clean test purchase of an Upload Print product:

  1. Confirm Woo Order Attribution — In Woo admin, open the test order and check that source / campaign fields are present if you used tagged campaign URLs.
  2. Complete payment — Place a real or gateway-test order until Woo shows the order as paid.
  3. Open the thank-you page — Use browser developer tools:
    • Network / console: confirm one purchase push (via dataLayer, gtag, or your listener).
    • dataLayer: inspect the last pushed object for event: "purchase" and correct value, tax, and currency.
    • Custom listener: temporarily log corexbiz:purchase as shown above.
  4. Check your analytics product — In GA4 (or your tag destination), confirm one purchase event with the expected transaction ID and merchandise value.
  5. Test discounts — Repeat with a coupon-heavy order and confirm value reflects subtotal minus discount, not pre-discount subtotal or order grand total.

Expected outcomes from live verification:

  • One standard purchase event per clean paid test order
  • Stable transaction ID and currency
  • Net merchandise revenue after discount
  • Woo campaign attribution in cbz.attribution when Woo captured it
  • No duplicate purchase on a single thank-you visit (stable event ID supports deduplication on reload)

Failure isolation ​

Analytics delivery is secondary to commerce. If dataLayer, gtag, or the custom event fails, that does not block order creation, payment, Upload Print file handling, or the customer thank-you page.

Implemented today vs planned ​

CapabilityWooCommerceShopifyWix
Upload Print product flowYesPlannedPlanned
Paid purchase conversion eventYesPlannedPlanned
Woo / host-native attribution on purchaseYes (Woo)PlannedPlanned
dataLayer / gtag / corexbiz:purchase deliveryYes (Woo)PlannedPlanned
Upload funnel diagnostic events (upload started, etc.)PlannedPlannedPlanned
Refund conversion eventsPlannedPlannedPlanned
Server-side ad platform API deliveryPlannedPlannedPlanned

Released under the MIT License.