Tracking draft orders in a custom web pixel

Topic summary

Tracking draft orders in Shopify Plus test checkouts is polluting analytics because the Web Pixels API “checkout_completed” event fires for both real and draft orders. A custom web pixel forwards events to Google Tag Manager (GTM) under Checkout Extensibility, but cannot currently distinguish draft orders.

Recent change: About a month ago, draft orders began being counted as conversions by the Meta (Facebook) pixel, whereas they previously were not. Others have reported the same behavior, suggesting a possible change in the underlying API/event handling.

Key question: Does the data payload of the checkout_completed event include any field/flag to identify draft orders, enabling filtering in GTM or downstream platforms? No concrete method or field was identified in the thread.

Implications: Test checkouts using draft orders may inflate conversion metrics across tools (e.g., Meta pixel), affecting attribution and reporting.

Status: Unresolved. Participants suggest Shopify may have recently changed event behavior; clarification or documentation from Shopify would help confirm whether draft identification is supported and how to filter it.

Summarized with AI on December 14. AI used: gpt-5.

We are currently using draft orders on our B2B shopify plus store as a means of testing checkout without the order being automatically pushed to our ERP system and fulfilled. It’s not the most clever solution, I know, but since our “real” customers don’t use draft orders, this was an easy low-code solution to that problem.

The issue now is tracking.

We are using a custom web pixel which is what Shopify recommends, when pushing events to GTM, since we have checkout extensibility enabled. In the custom pixel we are using the web-pixel-api default event checkout_completed (https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_completed).

The checkout_completed event however is triggered for both “real” orders and draft orders, causing tracking on our test checkouts. Maybe not a huge problem, but still quite annoying.

Is there any way from the data provided by the checkout_completed event to identify the order as a draft order?

1 Like

For us draft orders weren’t recorded as conversions by the Meta pixel, but ~1 month ago the pixel started recording them as conversions. Others have noticed this issue as well: https://www.reddit.com/r/FacebookAds/comments/1fuah1f/draft_orders_on_shopify_tracking_as_facebook_ads/

This might be due to a change in the API event you’ve mentioned above. Don’t have an answer to your question unfortunately, but it’s possible that Shopify might share more details around this if it is indeed a recent change.

1 Like