• Resolved contextquestion

    (@contextquestion)


    Good morning everyone! I hope you can help out with an issue I’ve been experiencing.

    Since the big WooCommerce update (9.0) we’ve discovered a strange issue with VAT in B2B situations within Europe.

    For context, we’re a company located in the Netherlands. B2B invoices within Europe* now show “(inc. 0.00% VAT) Supply of services subject to reverse charge”. [* except B2B purchases from within our own country] In theory, this is very convenient as we had to manually add ‘VAT Reverse Charge’ before, however, we only sell goods and it states ‘services’. In our bookkeeping extension we also discovered that WooCommerce marks the shipping costs as services instead of goods, but only for B2B interactions within Europe. For outside of Europe, within our own country or B2C purchases within Europe, it gives the correct tax code. I suspect these two situations are connected to each other. The support from our bookkeeping extension told us we should contact WooCommerce for this issue, as those tax codes were automatically given by WooCommerce’s API. For the life of me, I cannot find where the settings are for that Reverse Charge sentence on the invoices, nor where I can set the tax codes for shipping. All our products are ‘simple products’.

    TLDR: where can I change the “services” to “goods” in “(inc. 0.00% VAT) Supply of services subject to reverse charge” on invoices and how do I change the tax code for shipping?

    System Status Report

    ### WordPress Environment ###

    WordPress address (URL): [Redacted]
    Site address (URL): [Redacted]
    WC Version: 9.0.2
    Legacy REST API Package Version: ? 1.0.4
    Action Scheduler Version: ? 3.7.4
    Log Directory Writable: ?
    WP Version: 6.5.5
    WP Multisite: –
    WP Memory Limit: 1 GB
    WP Debug Mode: –
    WP Cron: ?
    Language: en_GB
    External object cache: ?

    ### Server Environment ###

    Server Info: Apache
    PHP Version: 7.4.33
    PHP Post Max Size: 100 MB
    PHP Time Limit: 600
    PHP Max Input Vars: 100000
    cURL Version: 7.87.0
    OpenSSL/1.1.1w

    SUHOSIN Installed: –
    MySQL Version: 8.0.35
    Max Upload Size: 100 MB
    Default Timezone is UTC: ?
    fsockopen/cURL: ?
    SoapClient: ?
    DOMDocument: ?
    GZip: ?
    Multibyte String: ?
    Remote Post: ?
    Remote Get: ?

    ### Database ###

    [REDACTED]

    ### Post Type Counts ###

    attachment: 439
    aw_workflow: 4
    cookielawinfo: 27
    ct_content_block: 7
    customize_changeset: 440
    custom_css: 2
    elementor_font: 1
    elementor_library: 16
    elementor_snippet: 1
    forminator_quizzes: 2
    is_search_form: 5
    jetpack_migration: 2
    jp_pay_product: 2
    language_switcher: 4
    mailpoet_page: 1
    nav_menu_item: 54
    oembed_cache: 1
    page: 56
    post: 3
    prl_engine: 2
    product: 232
    revision: 67
    seedprod: 2
    shopmagic_automation: 4
    shop_order: 32
    shop_order_refund: 12
    wp_global_styles: 3
    wp_navigation: 1
    wp_template: 2

    ### Security ###

    Secure connection (HTTPS): ?
    Hide errors from visitors: ?

    ### Active Plugins (27) ###

    Blocksy Companion (Premium): by CreativeThemes – 2.0.56
    Ivory Search: by Ivory Search – 5.5.6
    AutomateWoo: by WooCommerce – 6.0.11
    EAN for WooCommerce: by WPFactory – 4.9.7
    Elementor Pro: by Elementor.com – 3.22.1
    Elementor: by Elementor.com – 3.22.3
    Fish and Ships Pro: by wpcentrics – 1.5.6
    FlyingPress: by FlyingWeb – 4.14.4
    Forminator: by WPMU DEV – 1.32
    Redis Object Cache: by Till Krüss – 2.5.2
    Sendcloud | Smart Shipping Service: by Sendcloud B.V. – 2.4.4
    TranslatePress - Multilingual: by Cozmoslabs
    Razvan Mocanu
    Madalin Ungureanu
    Cristophor Hurduban – 2.8.0

    GDPR Cookie Consent: by WebToffee – 2.6.0
    Product Filter by WBW: by WBW – 2.6.4
    WooCommerce Back In Stock Notifications: by WooCommerce – 1.6.6
    WooCommerce EU VAT Number: by WooCommerce – 2.8.9
    WooCommerce Legacy REST API: by WooCommerce – 1.0.4
    PDF Invoices & Packing Slips for WooCommerce: by WP Overnight – 3.8.4
    PDF Invoices & Packing Slips for WooCommerce - Professional: by WP Overnight – 2.15.10
    PDF Invoices & Packing Slips for WooCommerce - Premium Templates: by WP Overnight – 2.21.8
    WooCommerce: by Automattic – 9.0.2
    Asset CleanUp: Page Speed Booster: by Gabe Livan – 1.3.9.3
    WP HTML Mail - Email Template Designer: by Hannes Etzelstorfer // codemiq – 3.4.7
    Smart Image Resize PRO: by Nabil Lemsieh – 1.8.4
    WPSSO Core: by JS Morisset – 17.17.1
    WPSSO Product Metadata for WooCommerce SEO: by JS Morisset – 4.2.0
    Sequential Order Numbers for WooCommerce: by WebToffee – 1.6.3

    ### Inactive Plugins (6) ###

    Force Regenerate Thumbnails: by Exactly WWW – 2.1.4
    Payment Plugins for PayPal WooCommerce: by Payment Plugins
    [email protected] – 1.0.48

    Payment Plugins for Stripe WooCommerce: by Payment Plugins
    [email protected] – 3.3.73

    Query Monitor: by John Blackbourn – 3.16.3
    Regenerate Thumbnails: by Alex Mills (Viper007Bond) – 3.1.6
    WooCommerce Product Recommendations: by WooCommerce – 3.0.4

    ### Dropin Plugins () ###

    advanced-cache.php: advanced-cache.php
    object-cache.php: Redis Object Cache Drop-In

    ### Must Use Plugins (3) ###

    CDN Cache Plugin: by – 1.1.3
    Elementor Safe Mode: by Elementor.com – 1.0.0
    WP.com Site Helper: by –

    ### Settings ###

    API Enabled: ?
    Force SSL: –
    Currency: EUR (€)
    Currency Position: left_space
    Thousand Separator: .
    Decimal Separator: ,
    Number of Decimals: 2
    Taxonomies: Product Types: bundle (bundle)
    external (external)
    grouped (grouped)
    simple (simple)
    variable (variable)

    Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)
    exclude-from-search (exclude-from-search)
    featured (featured)
    outofstock (outofstock)
    rated-1 (rated-1)
    rated-2 (rated-2)
    rated-3 (rated-3)
    rated-4 (rated-4)
    rated-5 (rated-5)

    Connected to WooCommerce.com: ?
    Enforce Approved Product Download Directories: ?
    HPOS feature enabled: ?
    Order datastore: Automattic\WooCommerce\Internal\DataStores\Orders\OrdersTableDataStore
    HPOS data sync enabled: ?

    ### Logging ###

    Enabled: ?
    Handler: Automattic\WooCommerce\Internal\Admin\Logging\LogHandlerFileV2
    Retention period: 15 days
    Level threshold: –
    Log directory size: 384 KB

    ### WC Pages ###

    Shop base: #4649 - /storefront-new/
    Cart: #14 - /cart/
    Checkout: #15 - /checkout/
    My account: #16 - /my-account/
    Terms and conditions: #1271 - /terms-and-conditions/

    ### Theme ###

    Name: Blocksy Child
    Version: (update to version 0 is available)
    Author URL:
    Child Theme: ?
    Parent Theme Name: Blocksy
    Parent Theme Version: 2.0.56
    Parent Theme Author URL: https://creativethemes.com
    WooCommerce Support: ?

    ### Templates ###

    Overrides: blocksy/woocommerce/cart/cart.php
    blocksy/woocommerce/cart/mini-cart.php
    blocksy/woocommerce/content-widget-product.php
    blocksy/woocommerce/content-widget-reviews.php
    blocksy/woocommerce/myaccount/my-account.php
    blocksy/woocommerce/product-searchform.php
    blocksy/woocommerce/single-product/tabs/tabs.php


    ### Back In Stock ###

    Database Version: 1.6.6
    Loopback Test: ?

    ### Admin ###

    Enabled Features: activity-panels
    analytics
    product-block-editor
    coupons
    core-profiler
    customize-store
    customer-effort-score-tracks
    import-products-task
    experimental-fashion-sample-products
    shipping-smart-defaults
    shipping-setting-tour
    homescreen
    marketing
    mobile-app-banner
    navigation
    onboarding
    onboarding-tasks
    product-custom-fields
    remote-inbox-notifications
    remote-free-extensions
    payment-gateway-suggestions
    shipping-label-banner
    subscriptions
    store-alerts
    transient-notices
    woo-mobile-welcome
    wc-pay-promotion
    wc-pay-welcome-page

    Disabled Features: minified-js
    new-product-management-experience
    pattern-toolkit-full-composability
    product-pre-publish-modal
    settings
    async-product-editor-category-field
    launch-your-store
    product-editor-template-system

    Daily Cron: ? Next scheduled: 2024-07-03 09:51:23 +02:00
    Options: ?
    Notes: 95
    Onboarding: completed

    ### Action Scheduler ###

    Canceled: 31
    Oldest: 2024-07-03 11:22:56 +0200
    Newest: 2024-07-03 11:22:56 +0200

    Complete: 23,585
    Oldest: 2024-06-02 11:35:14 +0200
    Newest: 2024-07-03 11:22:08 +0200

    Failed: 13
    Oldest: 2024-06-19 10:32:27 +0200
    Newest: 2024-07-02 14:04:38 +0200

    Pending: 22
    Oldest: 2024-07-03 11:23:02 +0200
    Newest: 2024-07-08 14:04:45 +0200


    ### Status report information ###

    Generated at: 2024-07-03 11:22:56 +02:00
Viewing 8 replies - 1 through 8 (of 8 total)
  • Plugin Support Zubair Zahid (woo-hc)

    (@doublezed2)

    Hello contextquestion

    Thank you for contacting Woo support.

    To better understand the problem you are facing, I need a little bit more information.

    We’re a company located in the Netherlands. B2B invoices within Europe* now show “(inc. 0.00% VAT) Supply of services subject to reverse charge”. [* except B2B purchases from within our own country]

    Could you edit a few orders and share screenshots of the order details with me?
    You may hide the sensitive information.

    Next, navigate to WooCommerec → Settings and click the Tax tab at the top.
    Then share screenshots of the Tax settings and also of the Tax rates you have set up.

    May I ask which bookkeeping extension you are using?
    It would help me understand the overall situation.

    I would be be happy to assis you further once I have more information. ??

    Best regards.

    Thread Starter contextquestion

    (@contextquestion)

    Dear Zubair,

    Thank you for your answer.

    I have created some screenshots for you. If you need more, or specific information, please tell me so.

    We use E-boekhouden, which uses the REST API of WooCommerce.

    Kind regards.

    NL to BE B2B order:
    Backend view
    Invoice
    NL to DE B2B order:
    Backend view
    Invoice
    Tax settings:
    Tax options 1
    Tax options 2
    Tax rates 1
    Tax rates 2

    REST API view

    Thank you for reaching back, with further details on this @contextquestion .

    Based on this screenshot, the phrase appears on invoices – not part of the core WooCommerce that is supported here.

    From the site’s System Status Report (SSR), shared above, it appears the following plugins are active and have to do with invoicing at the store:

    • PDF Invoices & Packing Slips for WooCommerce: by WP Overnight – 3.8.4
    • PDF Invoices & Packing Slips for WooCommerce – Professional: by WP Overnight – 2.15.10P
    • DF Invoices & Packing Slips for WooCommerce – Premium Templates: by WP Overnight – 2.21.8

    Feel free to reach out to its support channel, as they would be in a better position to assist you.

    I trust that points you in the right direction, but if you have more questions, let us know.

    We’re happy to help.

    Thread Starter contextquestion

    (@contextquestion)

    Dear anastas,

    Thank you for your answer.

    I disabled those plugins, and the sentence still shows. The ‘pro’ WooCommerce plugins have not updated in a few months, which leads me to believe that these do not impact the newly appeared sentence about reverse charging vat. I don’t know what causes it to show, only that it started very recently since the big WooCommerce update.

    However, even if that phrase itself would not be part of the WooCommerce core, I am still stuck with WooCommerce labelling shipping in the incorrect tax code, as a service. I need to know where that comes from, what determines the tax code? I can’t see where I can select the tax code belonging to shipping.

    Kind regards.

    An order with the invoice plugins disabled (NL to BE, B2B):
    Backend view
    Invoice mail

    Thank you for reaching back, clarifying things further @contextquestion .

    I went ahead with browsing the WooCommerce changelog (this was the closest, but not exact match), placed test orders on a test site of mine, and searched the WooCommerce source code. There was no reference that I could find in these places, I’m afraid.

    Gut feeling: this is added by an email template that was edited.

    I don’t know what causes it to show, only that it started very recently since the big WooCommerce update.

    Could you go ahead with temporarily deactivating the WooCommerce EU VAT Number: by WooCommerce – 2.8.9 plugin, before placing another test order, and see if the phrase still appears, or otherwise?

    If it still appears, I’d recommend proceeding with a?conflict test, as detailed here, for finding out.

    I am still stuck with WooCommerce labelling shipping in the incorrect tax code, as a service. I need to know where that comes from, what determines the tax code? I can’t see where I can select the tax code belonging to shipping.

    As I understand, you are referring to the product shipping classes (documentation linked here, for reference). They can be further combined with shipping settings, and set as taxable.

    I hope this is helpful! Please let us know if you have any further questions about this matter, or if we misinterpret your concern in any way. We will be happy to help you further.

    Thread Starter contextquestion

    (@contextquestion)

    Dear Anastas,

    Thank you for looking into this.
    I can’t properly test this without the WooCommerce EU VAT Number: by WooCommerce – 2.8.9 plugin, as without that, I do not have a EU VAT number input, and that means that all orders are B2C, not B2B, (and thus it would not trigger the phrase).
    Here is the test anyway:
    Backend view without EU VAT plugin
    Mail invoice without EU VAT plugin

    Thanks for the links. That’s not my issue though, but perhaps I worded it in an unclear manner. I’ll use a picture to clarify it:
    E-Boekhouden view
    The first number, €40,50, is the order amount itself, so 1 item that cost €40,50 in a B2B sale (within Europe, excluding The Netherlands). It states ‘Goederen naar binnen de EU 0%’, which means that these are marked as goods for the tax code. The second number, €5, are the shipping costs for the order. It states ‘Diensten naar binnen de EU 0%’, which means that they are marked as services for the tax code. These shipping costs need to be marked as goods as well, not services. E-Boekhouden, the program we use, uses the WooCommerce API to pull information in from the orders. Their support told us that this is a WooCommerce problem. I need to know what is making the shipping costs themselves a service instead of goods. We have no issue with the tax codes for our products, nor the tax percentages on them. It’s only the tax code of the shipping costs themselves that pose an issue in B2B transactions within Europe. The tax rates are properly applied (they show the right tax in the right situation).

    As a side note, I apologize if I worded this harshly. I’m very direct. It is not my intention to come across as hostile.

    Plugin Support omarfpg a11n

    (@omarfpg)

    Hi @contextquestion,

    Zooming out on this issue, as I understand you’re trying to find where a setting or a string comes from. Sometimes when I’m lost in that way, the String Locator plugin helps me determine where a string or a setting come from exactly, which plugin, which path, which file, which function.

    Have you considered giving that approach a try?

    Thanks!
    -OP

    Plugin Support omarfpg a11n

    (@omarfpg)

    Hi there ?? ,

    We haven’t heard from you in a while, so I’m going to mark this as resolved for now. Feel free to start a new thread or reply back if you have any more questions.

    All the best,
    Omar

Viewing 8 replies - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.