Appearance
Installing on WooCommerce
WooCommerce doesn't need a special install path the way Shopify does — its checkout is a normal page on your own site, not a locked-down sandbox. Use the regular snippet install, and Prism auto-detects WooCommerce and starts capturing the funnel on its own: product views, authoritative add-to-cart and cart contents pulled straight from WooCommerce's own Store API, cart and checkout page views, and purchases.
Browser-side tracking alone can miss or undercount an order, though — a blocked script, a closed tab, a payment that completes off-site and redirects back later. So WooCommerce adds one more piece: two webhooks, configured in wp-admin, that report every order straight from your server. Budget 10 minutes, and you'll need an admin login to wp-admin.
Step 1 — Install the standard snippet
Follow the snippet install guide — the same <script> tag every non-Shopify platform uses, placed before </head> site-wide.
That's the whole browser-side setup. Once it's in place, Prism recognizes WooCommerce automatically and the funnel starts arriving with no further configuration: product page views, AddToCart sourced from the Store API (not just DOM guessing, so it holds up across themes), cart and checkout views, and a browser-fired Purchase on the order-received page.
Already running GA4/GTM e-commerce tracking?
If your store also pushes GA4-shaped e-commerce events to window.dataLayer — common with a plugin like GTM4WP — Prism's dataLayer auto-detection picks those up too, and the two sources de-duplicate automatically. You don't get double events, and you don't need to turn either one off.
Step 2 — Create the order webhooks
The webhooks are what make purchase tracking reliable rather than best-effort: they report the order directly from WooCommerce's server, with the real order total, regardless of what happened in the customer's browser. You'll create two — one per order event WooCommerce needs to tell Prism about.
In wp-admin:
- Go to WooCommerce → Settings → Advanced → Webhooks → Add webhook.
- Fill in the first webhook:
- Name: anything recognizable, e.g. "Adsidian Prism — Order created"
- Status: Active
- Topic: Order created
- Delivery URL:
https://{your tracking domain}/v1/commerce/woocommerce/{your prism client id} - Secret: any strong random string — see below
- API version: latest available
- Save.
- Repeat for a second webhook with Topic: Order updated, the same Delivery URL, and the same secret.
The secret is just a shared password WooCommerce and Prism both use to sign the payload, so Prism can trust that a delivery claiming to be your store's order actually is. Generate one however you like — a password manager, a long random string, anything hard to guess — and use the exact same value in both webhooks and in the Adsidian dashboard in the next step. It doesn't need to mean anything, and you'll never type it anywhere but these three places.
When a webhook activates, WooCommerce sends it a one-time test ping. A green Active status on the webhook's list row means that ping was delivered and accepted — a reasonable sign the connection works, before you've even placed an order.
Step 3 — Paste the secret into Adsidian
In your Prism setup page in the Adsidian dashboard, choose Store platform → WooCommerce, and paste the same webhook secret from Step 2. This is what lets Prism verify deliveries from your store and match them to the right client.
Step 4 — Verify
- Browse a product page on your store and confirm a
ViewItemevent shows up in your Prism activity. - Add an item to your cart and confirm
AddToCart. - Place a test order (a low-value real order, or a test-mode gateway if your store has one). Confirm
Purchasearrives — and check that it carries the real order total even if you completed the order with your browser's network tab open or otherwise interfered with the page. That value is coming from the webhook, not the browser.
Troubleshooting
| Symptom | Likely cause / fix |
|---|---|
| A webhook shows Disabled | WooCommerce auto-disables a webhook after repeated delivery failures. Check that the Delivery URL is correct (tracking domain and Prism client ID) and that the secret matches what's saved in Adsidian, then switch the webhook back to Active. |
No AddToCart events, but ViewItem and purchases work | Your theme doesn't use WooCommerce's standard cart markup, so the browser-side listener has nothing to read. This doesn't affect the webhook-sourced purchase data — but if you also want browser-side cart events, GTM4WP or another dataLayer-based setup covers it; see Detecting e-commerce with dataLayer. |
Purchases arrive with no value, or a value of 0 | The webhooks in Step 2 aren't configured (or the secret doesn't match), so Prism is falling back to whatever the browser could see at checkout — which isn't always the full total. Revisit Step 2. |
| An order only counts once, even though both webhooks fired | Expected. Order created and Order updated both point at the same order, and Prism deduplicates by order ID — you'll see one Purchase, not two, even though WooCommerce calls both webhooks as the order moves through its lifecycle. |
Orders count as a conversion once they reach processing, completed, or on-hold status — an order stuck at pending payment or failed doesn't fire Purchase.
Next
- E-commerce events — what each captured event means
- Cart abandonment — abandoned-cart tracking works automatically from the browser-side cart data
- Verifying your install