Description
DATA Reshape for WooCommerce is a bridge between your WooCommerce store and the DATA Reshape platform. It emits structured ecommerce events (product_viewed, product_added_to_cart, cart_viewed, checkout_started, checkout_completed, plus the mid-funnel checkout steps) into DATA Reshape’s reshape.push() queue, and DATA Reshape’s loader — served from a tracking subdomain you control — handles delivery and routing onward to GA4, Meta, TikTok, and every other destination you have connected.
Because the loader is served first-party, events are not blocked by ad blockers, ITP, or the usual third-party-script defences that break conventional gtag/fbq/ttq setups. You do not need to fire those calls in parallel — DATA Reshape routes a single event to every connected destination with the correct platform-specific name and field mapping.
This plugin does not replace analytics tools like Google Analytics or Meta Pixel; it replaces the fragile transport layer underneath them. Event processing, routing, and deduplication all happen inside DATA Reshape.
An active DATA Reshape plan is required to use this plugin. All tracking logic, integrations, and event delivery are managed through the DATA Reshape platform.
What’s coming next: API Events
A second tab in the settings UI (“API Events”) is reserved for data that can’t flow through the storefront browser at all — admin-recorded phone-call orders, sales agent activity, and historical customer/order backfill imported into DATA Reshape via API. This is not a CAPI-style server-side mirror of the browser events (those already get through reliably thanks to the first-party loader); it covers genuinely different data sources. Configuration UI is dormant in this version and will be wired up in a later release.
Features
Core Features
- Global enable/disable for the integration
- DATA Reshape library integration
- Subdomain tracking support
- Fully compatible with WooCommerce HPOS (High-Performance Order Storage)
Events
- Product Viewed
- Product Added to Cart (AJAX + POST + GET fallbacks)
- Product Removed from Cart
- Cart Viewed
- Checkout Started
- Checkout Steps (Billing Address Added, Shipping Detail Added, Payment Method Selected — legacy checkout only)
- Checkout Completed
- Consent integration — DATA Reshape natively detects most CMPs (Cookiebot, OneTrust, Termly, etc.) and Google Consent Mode v2, with no plugin-side wiring required
- Single “Grant consent by default” toggle for stores that don’t run a CMP — fires DATA Reshape’s native
consent_updatedpush at session start so events process immediately drswc_consent_payloadfilter for stores that want to drive the consent object explicitly from PHP- Plain user data in reshape payloads (DATA Reshape hashes server-side)
Advanced Tracking
- Spec-shaped products with
price_base+price;tax_included/tax_percentonly when WooCommerce tax is enabled - Variations carry
parent_id/parent_name/parent_sku/parent_url - Order-level and product-level coupons emitted in dedicated
coupons[]arrays - Shipping methods and payment methods emitted as structured arrays on Checkout Completed
- Categories emitted as both
category(primary) andcategories[]withname+id - Stock status, product type, creation timestamp, image, and gallery images
Extensibility
drswc_event_payload— filter the full event envelope before pushdrswc_product_payload— inject GTIN/MPN/EAN, predicted values, custom properties per productdrswc_user_payload— augment user identity (pre_purchaseorpurchasesource)drswc_consent_payload— replace or inject the consent object
Reliability Enhancements
- Handles non-AJAX add-to-cart flows
- Handles redirect-based add-to-cart (?add-to-cart=)
- Cache-safe identity hydration — PII never inlined into cacheable HTML
- Sticky user identity model (loader caches first-seen user, subsequent events inherit)
- Safe execution timing for low overhead
Configuration
Integration Setup
- Enable Integration (master switch)
- Tracking Subdomain (the first-party host serving DATA Reshape’s loader)
- Library ID
- Built-in “Check tracking endpoint” health check
Events
- Master switch for browser-delivered events
- Per-event toggles (so events you handle via custom code can be disabled individually)
- “Grant consent by default” toggle — off by default (let DATA Reshape auto-detect your CMP / Google Consent Mode); on if you don’t run a CMP and want events processed immediately
API Events
- Reserved for the upcoming admin-recorded events sync (phone-call orders, etc.) and historical customer/order backfill. Not yet active.
Installation
- Upload the plugin to the
/wp-content/plugins/directory - Activate the plugin through the ‘Plugins’ screen in WordPress
- Ensure WooCommerce is installed and active
- Open the settings from either WooCommerce Settings DATA Reshape or Marketing DATA Reshape (the page lives under WooCommerce Settings; the Marketing entry is a shortcut)
- Fill in your tracking subdomain and library ID (provided by DATA Reshape), enable the integration, and turn on the events you want emitted
FAQ
-
Does this plugin support GA4?
-
Indirectly — events are pushed to DATA Reshape’s
window.reshapequeue, and DATA Reshape routes them to GA4 and every other connected destination with the correct platform-specific event name and field mapping. You do not need to firegtag,fbq, orttqcalls in parallel. -
Does it work without AJAX add-to-cart?
-
Yes. It includes fallback mechanisms for redirect-based add-to-cart flows (native WooCommerce redirect to cart after adding a product).
-
Does it support the block-based Cart/Checkout?
-
The plugin’s core events (Product Viewed, Add to Cart, Cart Viewed, Checkout Started, Checkout Completed) work on both legacy and block checkouts. The mid-funnel events (Billing Address Added, Shipping Detail Added, Payment Method Selected) currently fire on the legacy (shortcode-based) checkout only — block-based checkout support is planned for a later release.
-
Does it support server-side / CAPI-style event mirroring?
-
No, and it intentionally doesn’t need to. DATA Reshape’s tracking library is served from a first-party subdomain on your own site, so browser events get through reliably without being blocked by ad blockers or browser privacy features. The forthcoming “API Events” tab is for a different purpose: syncing data that doesn’t flow through the storefront browser at all — admin-recorded phone-call orders and historical customer/order backfill.
-
Will this slow down my website?
-
No. The plugin is designed with performance in mind and uses lightweight, conditional execution; if anything, your setup should see a boost in speed compared to clasic integrationg (Meta, TikTok and Google).
-
Is deduplication handled?
-
Deduplication is handled by DATA Reshape. The plugin focuses on exposing accurate and complete data for DATA Reshape to pickup and process onward.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Datalayer Tracking via DATA Reshape for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Datalayer Tracking via DATA Reshape for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.8
- Consent integration overhauled. The legacy “Google Consent Mode granted by default” toggle (emitted a
gtag('consent', 'update', ...)block) and the per-event envelopeconsent_default_granttoggle have both been removed. A single new “Grant consent by default” toggle now fires DATA Reshape’s nativeconsent_updatedpush at session start — DATA Reshape detects most CMPs and Google Consent Mode v2 on its own, so this toggle defaults to OFF. - Tax fields (
tax_included,tax_percent) are now omitted entirely from product, coupon, and shipping payloads when WooCommerce tax is disabled (previously emitted astax_included: false). - Settings tabs renamed for clarity: “Browser events” “Events”, “Server-side events” “API Events”. The API Events tab is reserved for admin-recorded events (e.g. phone-call orders) and historical customer/order backfill — not a CAPI-style server-side mirror of browser events.
- Settings also reachable under Marketing DATA Reshape (shortcut to the canonical WooCommerce Settings DATA Reshape page).
- Field labels simplified: “Server-side API endpoint” / “Server-side API key” “API endpoint” / “API key”.
- Internal: narrative inline comments moved to CLAUDE.md; no functional impact.
0.7
- Hard cutover from
window.dataLayerto DATA Reshape’swindow.reshapeAPI. Event names updated to the new spec (product_viewed, product_added_to_cart, cart_viewed, checkout_started, checkout_completed, etc.). - Mid-funnel checkout events on legacy checkout: billing_address_added, shipping_detail_added, payment_method_selected.
- “Grant consent by default” and “Track checkout steps” toggles added.
- Identity emission tightened —
userobject sent only when logged in or in checkout with confirmed contact data. - Variations carry parent_* fields; products emit categories[], stock status, type, created_at, image, gallery.
- Pricing decoupled from coupons —
price/price_baseare the buyer-visible regular / sale prices; coupons land in dedicatedcoupons[]arrays. - New filters:
drswc_event_payload,drswc_product_payload,drswc_user_payload,drswc_consent_payload.
0.6
- PII cache leak fix extended to cart/checkout pages (in addition to thankyou).
- HPOS and Cart/Checkout Blocks compatibility declared.
0.5
- Fixed PII leak on page-cached thankyou pages (LiteSpeed et al.) — identity now hydrated client-side from cookies.
- Removed browser-side SHA256 hashing — DATA Reshape hashes server-side.
- On-save tracking endpoint health check plus on-demand re-check button.
- wp.org update-available pill in the settings header.
- Loader URL tags the installed plugin version (
&wp=).
0.4
- Fresh-install checkbox defaults flipped to off.
- Admin warning notice when the plugin is active but not configured.
0.3
- AJAX add-to-cart detection works with third-party plugins (QuadLayers etc.) and themes whose buttons don’t expose
data-product_id. - Removed the in-page dataLayer debug overlay.
0.1
- Initial release.

