Skip to content

Purchase

Server-first: fires from the payment hook so the sale survives a thank-you page that never loads.

updated

Outline — facts still to be confirmed

This article is a structured outline. Its headings and scope are settled; the specific values, screens and steps are marked TODO(owner: verify) until they have been checked against the plugin itself. Blueprint §7 is explicit that no article may state plugin behaviour that has not been verified.

When it fires

TODO(owner: verify) — the exact trigger conditions in the shipped build, including any settings that suppress it.

Which side sends it

Server-first. Purchase fires from the WooCommerce payment-complete hook, or from the order reaching processing or completed — whichever happens first. The event ID is stored on the order along with a guard flag that prevents a second send.

If the customer reaches the thank-you page, the browser copy fires there reusing the stored ID, with its own re-fire guard.

Consent is stamped onto the order at checkout and read from the order at send time, because a payment webhook carries no visitor cookies. See Purchases missing after PayPal.

Deduplication

Both copies of a dual-flow event carry the same event ID. Meta merges on event name plus event ID; TikTok’s key additionally includes the event source. See Processed vs Deduplicated.

Data sent

Every event carries a common set of context parameters: content name, event URL, page title, post type, post ID, user role and a plugin identifier. These are added centrally, so they are present on every event rather than only on Purchase.

Customer data is SHA-256 hashed on your server before it leaves. IP address, user agent and click identifiers are sent raw, because the platforms require them in that form.

TODO(owner: verify) — the per-event parameter table: which commerce fields (Purchase specifically) are included, and their names on each platform.

Per-platform mapping

Platform Event name Notes
Meta TODO(owner: verify)
Google TODO(owner: verify)
TikTok TODO(owner: verify)

Verification status

TODO(owner: verify) — record whether this event has been confirmed end to end on a live store, and on which platforms. Blueprint §7 forbids documenting behaviour that has not been checked against the plugin.

Was this page helpful?