Wrong values are almost always a currency or line-item scope mismatch - the pixel sending a per-unit price instead of quantity times price, or a hardcoded currency on a multi-currency store. Duplicated events are almost always the same multi-integration overlap that causes duplicate Purchase events: theme code, an app's own pixel, Shopify's native Facebook and Instagram channel, and a manually added custom pixel all firing the same event independently.
Why this happens
Value bugs come from theme or app code reading a per-unit or per-variant price rather than quantity × price, or ignoring an active discount or compare-at-price. On multi-currency stores, a pixel hardcoded to a single currency string will report a wrong value for any shopper checking out in a different presentment currency, because the number is right but the currency label attached to it is not.
Duplicate bugs share the same root cause as duplicate Purchase events generally: several integration points - theme code, an app's own silent pixel integration, the Facebook & Instagram sales channel, and a manually added custom pixel - each fire their own AddToCart or Purchase call for the identical user action. Meta counts each call as a separate event unless the calls share the same event_id.
Fix it
- Inventory every place AddToCart or Purchase could be firing: theme code, any app with its own Facebook Pixel integration (review apps, upsell apps, and loyalty apps commonly add one without making it obvious), the Facebook & Instagram sales channel, and any custom pixel or GTM setup.
- For value bugs: confirm the value sent equals quantity × line-item price (post-discount) for AddToCart, and the full order total for Purchase, matching what Shopify's order total shows - read these from the actual cart or checkout event payload, never a hardcoded product price.
- For multi-currency stores, always send the
currencyparameter dynamically from the event context - for a Web Pixels API pixel, that'sevent.data.checkout.currencyCode- rather than hardcoding a currency string. - For duplicates, disable every AddToCart/Purchase source except one, using the same single-source-of-truth approach as the Trekkie duplicate-pixel question in this section.
- If you intentionally keep more than one pixel destination (for example two separate ad accounts), implement
event_idconsistently between the browser pixel and the server-side Conversions API event for the same pixel ID, so Meta's dedup applies - this only dedupes within one pixel ID, not across two different ones. - Recheck any app that quietly adds Facebook Pixel tracking as a bundled feature - Shopify app permission screens rarely disclose this clearly, and it's the single most common source of a mystery duplicate that a merchant didn't knowingly configure.
Branch: if the value is wrong on Purchase but correct on AddToCart, check whether tax and shipping are included consistently - a Purchase event that includes tax while your Shopify order-total comparison excludes it (or vice versa) looks like a "wrong value" bug but is actually a definition mismatch.
How to verify it worked
Open Meta Pixel Helper on a product page, click Add to Cart once, and confirm exactly one AddToCart event logs per pixel ID, with a value matching quantity × displayed price. Then place one test order and confirm exactly one Purchase event per pixel ID in Events Manager's Test Events tool, with a value matching the order total shown in Shopify admin and the correct currency code for the checkout currency actually used.