• Hi,

    I am writing to report a recurring and critical issue regarding the synchronization between WooCommerce and PayPal Zettle. We are using the “PayPal Zettle POS” plugin (v1.6.1).

    The Problems:

    • Tax Discrepancy: Products are correctly configured as “Gross” (including tax) in WooCommerce. However, after synchronization, they frequently appear as “Net” prices in the Zettle POS. Manually updating products in WooCommerce sometimes fixes it temporarily, but the prices often “flip” back to Net.
    • Barcode Data Loss/Shift: Barcodes entered in WooCommerce are disappearing or, even worse, shifting between products (Barcode of Product X suddenly appears on Product Y) after a sync.
    • Ghost Syncing: Even after manual re-syncs, the data remains unstable.

      Technical Observations from System Report:
      I noticed some inconsistencies in the Zettle settings within the WooCommerce status report that might be causing this:
    • Currency/Country: The report shows PayPal Zettle currency: GBP and PayPal Zettle country: GB, but the shop is located in Germany (DE) and uses EUR. Taxation: The report shows PayPal Zettle VAT: 20, while German VAT is typically 19% or 7%. Could you please investigate why the plugin is misinterpreting the tax settings and why barcode metadata is being corrupted or swapped during the sync process? I am happy to provide further logs or access if needed.

      Best regards
Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Support Krystian Syde

    (@inpsydekrystian)

    Hello @binok

    Thanks for reaching out to us, we’re here to help.

    Please follow these steps to share your system status report with us:

    1. Navigate to the WooCommerce / Status section in your site’s admin panel.
    2. Click on the Get system report button and then click Copy for support.
    3. Paste the report into our PrivateBin.
    4. After uploading, please share the link here so we can review the details thoroughly.

    We are waiting for your system reports to proceed as we have quite a similar ticket opened on our support board currently, and I would like to avoid duplication of it.

    Kind regards,
    Krystian

    Thread Starter binok

    (@binok)

    Hi Krystian,

    thank you for your message.

    Here is the link: https://privatebin.syde.com/?3baeb2351aaddf55#Dbk84dWYTe8oc9H1Sf6nDmT25HkSGp9YBVCNV4kdfULa

    I wrote over the woocommerce.com support page a few weeks ago, but haven’t received any feedback.

    Best regards

    Plugin Support Krystian Syde

    (@inpsydekrystian)

    Hello @binok

    This is actually easy to explain. You already have an open ticket, so this appears to be a duplicate of that discussion. I will follow up on that ticket today.

    Currency/Country: The report shows PayPal Zettle currency: GBP and PayPal Zettle country: GB, but the shop is located in Germany (DE) and uses EUR. Taxation: The report shows PayPal Zettle VAT: 20, while German VAT is typically 19% or 7%. Could you please investigate why the plugin is misinterpreting the tax settings and why barcode metadata is being corrupted or swapped during the sync process? I am happy to provide further logs or access if needed.

    According to your system report, the plugin is currently onboarded with ours sandbox UK PayPal Zettle account, which uses GBP and a 20% VAT rate. That is why these values appear in the status report instead of the German settings.

    In my previous message I asked you to reconnect your live PayPal account, which should ensure the correct country configuration is used. To avoid confusion, I suggest we continue the discussion in the existing ticket, as there is no benefit in tracking the same issue in two separate threads.

    Kind Regards
    Krystian

    Thread Starter binok

    (@binok)

    Hi Krystian,

    Thank you for your reply and the explanation regarding the sandbox account.

    I have followed your advice: our correct Live account is now reconnected. The Country (DE), Currency (EUR), and the Tax rates (19% / 7%) are now correctly configured.

    Following the reconnection, I re-synced all products to Zettle. However, the core pricing issue persists:

    • Prices still appear as Net: Even though WooCommerce is configured for “Gross prices” (including tax), the prices in Zettle are still showing as Net amounts. The synced values reflect the price without VAT instead of the final consumer price.

    Could you please investigate why the sync process is still ignoring the tax inclusion or misallocating the values despite the correct regional settings?

    Thank you for your help!

    Plugin Support Krystian Syde

    (@inpsydekrystian)

    Hello @binok

    First, please make sure that everything is configured in line with this guide, especially the tax-related settings: https://woocommerce.com/document/paypal-zettle-pos-for-woocommerce/#configuring-tax-options

    After that, I would recommend testing this on a staging site with Germanized disabled, just to rule out any influence from that plugin.

    It would also be helpful to simplify the tax setup temporarily on staging and check whether the sync behaves correctly with one standard VAT rate only, instead of a more complex custom tax configuration. From there, you can reintroduce the tax settings step by step to identify which specific tax parameter is causing the issue, as this currently appears to be a tax configuration inconsistency during sync rather than a regional settings problem.

    Kind Regards
    Krystian

    Thread Starter binok

    (@binok)

    Hi Krystian,

    Thanks for your help. We monitored the logs and checked your plugin code (PriceBuilder.php), and found more infos.

    The sync correctly sends the 19% VAT rate, but sometimes pushes the Net price instead of the Gross price (e.g., 1.00€ Gross is sent as 0.84€ Net).

    The Cause: Our setting is INCLUSIVE, so your plugin correctly calls wc_get_price_including_tax(). However, during background syncs (Cron/REST API), third-party plugins like WooCommerce Wholesale Pro or Germanized seem to interfere and return the Net/B2B price instead.

    Our Questions:

    1. Is this a known conflict with these plugins during background syncs?
    2. As a workaround, we want to temporarily change the code to fetch the raw price via $payload->get_price(). Will this break the sync?
    3. Is there a custom hook/filter we can use to force the Gross price without modifying your core plugin files?

    Looking forward to your feedback.

    Best regards

Viewing 6 replies - 1 through 6 (of 6 total)

The topic ‘Tax Mismatch (Net vs. Gross) and Barcode Synchronization Failures’ is closed to new replies.