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:
| Field | Description |
|---|---|
| Transaction / order ID | Woo order identifier |
| Currency | Woo order currency (for example CAD, USD) |
| Value | Net merchandise revenue after discounts (see below) |
| Tax | Woo order tax total (separate from value) |
| Shipping | Woo shipping total (separate from value) |
| Items | Purchased products: ID, name, quantity, and SKU, category, or variation when Woo provides them |
| CoreXBiz event ID | Stable identifier for deduplication across page reloads |
| Attribution | Woo-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:
product subtotal
minus
Woo order discount totalCoreXUpload 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
| Line | Amount |
|---|---|
| Product subtotal | $149.00 |
| Discount | −$49.00 |
| Tax | $12.00 |
| Shipping | $0.00 |
| Order total (paid) | $112.00 |
$149 subtotal
− $49 discount
= $100 net merchandise revenueTax 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:
- The order contains at least one Upload Print line item
- WooCommerce considers the order paid
- 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:
window.dataLayerIf 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:
corexbiz:purchaseThis CustomEvent carries the full canonical payload in event.detail. Other marketing or analytics tools can subscribe without modifying Upload Print.
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):
{
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:
- 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.
- Complete payment — Place a real or gateway-test order until Woo shows the order as paid.
- 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 correctvalue,tax, andcurrency. - Custom listener: temporarily log
corexbiz:purchaseas shown above.
- Network / console: confirm one purchase push (via
- Check your analytics product — In GA4 (or your tag destination), confirm one
purchaseevent with the expected transaction ID and merchandise value. - Test discounts — Repeat with a coupon-heavy order and confirm
valuereflects subtotal minus discount, not pre-discount subtotal or order grand total.
Expected outcomes from live verification:
- One standard
purchaseevent per clean paid test order - Stable transaction ID and currency
- Net merchandise revenue after discount
- Woo campaign attribution in
cbz.attributionwhen 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
| Capability | WooCommerce | Shopify | Wix |
|---|---|---|---|
| Upload Print product flow | Yes | Planned | Planned |
| Paid purchase conversion event | Yes | Planned | Planned |
| Woo / host-native attribution on purchase | Yes (Woo) | Planned | Planned |
dataLayer / gtag / corexbiz:purchase delivery | Yes (Woo) | Planned | Planned |
| Upload funnel diagnostic events (upload started, etc.) | Planned | Planned | Planned |
| Refund conversion events | Planned | Planned | Planned |
| Server-side ad platform API delivery | Planned | Planned | Planned |