• Hi, I found a problem with the price values sent by CapiFlow to Meta Pixel/CAPI.

    WooCommerce prices are stored and displayed correctly as decimal EUR values, but CapiFlow is sending them as cents without converting them back to the EUR decimal value.

    For example:

    Product price in WooCommerce: €14.21

    Meta Pixel Helper shows:

    currency: EUR
    value: 1421

    And the contents parameter contains:

    [
    {
    "id": "180397",
    "quantity": 1,
    "item_price": 1421
    }
    ]

    The expected values should be:

    currency: EUR
    value: 14.21
    item_price: 14.21

    The same happens with other prices:

    €3.44 → 344
    €7.55 → 755
    €14.21 → 1421

    So it appears that CapiFlow is multiplying the WooCommerce price by 100, or is using a value already expressed in minor units, and then sending that value to Meta as if it were EUR.

    This affects at least the AddToCart event, both:

    value
    contents[].item_price

    Could you please check the price normalization/serialization logic in the current version of CapiFlow and confirm where this conversion happens?

    The site uses EUR and WooCommerce prices are normal decimal values. We need Meta to receive the actual EUR amount, e.g. 14.21, not 1421.

    I am using the latest CapiFlow version 1.1.1 installed today.

    Thanks! (The dashboard design is sick!)

    The page I need help with: [log in to see the link]

Viewing 1 replies (of 1 total)
  • Plugin Author capiflow

    (@capiflow)

    Hi @techgeeksvk ,

    Thank you very much for reporting this issue and for your kind compliments on the dashboard design!

    We have thoroughly verified your report against the CapiFlow v1.1.1 codebase and confirmed the exact behavior you described. What Was Happening:

    The issue was not an intentional minor units (cents) multiplication or a currency conversion bug, but rather a client-side DOM price parsing limitation.

    In European WooCommerce stores (EUR), prices are formatted using a comma as the decimal separator (e.g., 14,21 €). In version 1.1.1, the JavaScript click handler used a regular expression that stripped all non-digit and non-period characters. Because the comma was excluded, "14,21 €" had its comma stripped out, resulting in "1421" which was then parsed as 1421 EUR and sent to both Meta Pixel Helper and CAPI. The Permanent Fix:

    We have built a universal, dual-layer price normalization engine:

    1. Store Config Bridge: CapiFlow now dynamically reads your store’s official WooCommerce formatting settings (wc_get_price_decimal_separator and wc_get_price_thousand_separator).
    2. Client Normalizer: The frontend parser properly strips thousand separators and normalizes regional decimal markers (commas, spaces) into standard IEEE decimal floats (e.g. 14.21) before dispatching payloads to Meta Pixel and CAPI.

    This fix will be published in the upcoming CapiFlow Core v1.1.2 update.

    **A Quick Favor:**

    We are a dedicated team working hard to build the best free tracking solution for WooCommerce. If you appreciate our fast response, thorough investigation, and transparency, **could you please take a moment to leave an honest review on WordPress.org?**

    👉 [Leave a review on WordPress.org]

    Your feedback means a lot to us and helps our plugin reach more store owners.

    Thank you again for helping us make CapiFlow better for the global WooCommerce community!

Viewing 1 replies (of 1 total)

You must be logged in to reply to this topic.