• Resolved tommyd17

    (@tommyd17)


    Hey,

    so I have a very detailed question and was not able to find a solution yet.
    I have 2 base countries in my shop. Some products are shipped from germany and some from austria.

    When shipping to germany (B2B), VAT should be deducted from the order total (but only for 3 specific products)
    When shipping to Austria (B2B), VAT should also be deducted from the order total (But only for the other products)

    Do you know if this is possible with your plugin?
    Does anybody know how to fix this?

    Thanks, Tom

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

    (@daigo75)

    Out of the box, the EU VAT Assistant doesn’t support the scenario you described. When a valid VAT number is entered at checkout, the plugin flags the transaction as “tax exempt”. The exemption then applies to the order as a whole. This behaviour is by design, it’s not a bug. Please keep in mind that the EU VAT Assistant is a solution to help with compliance with the EU VAT MOSS rules, which apply only to digital products. Due to that, our solution doesn’t automatically cover all the cases that apply to the sale of tangible goods, or their shipping, such as the one you described.

    It should be possible to apply the VAT exemption only to some products, in some conditions, by implementing a customisation. The custom code would have to do the following:
    1. Disable the “global” VAT exemption.
    2. Compare the shipping country with the country linked to the products in the cart. This can be done in several ways, e.g. by assigning special categories to the products.
    3. Assign a special “zero rated” tax class to the products that have to be made VAT exempt.
    4. Possibly, handle the VAT on shipping. You didn’t mention this aspect, but I guess that there would be some rules to apply in this case.

    In the above list, the only element linked to the EU VAT Assistant is the first. That part can be implemented as follows:

    add_filter('wc_aelia_eu_vat_assistant_customer_vat_exemption', function($customer_vat_exemption, $vat_country, $vat_number, $vat_number_validated, $raw_vat_validation_response) {
      // Argument $customer_vat_exemption will be set to true if a VAT exemption
      // should be applied. You can keep track of this information and use it to
      // zero-rate specific products
    
      // Disable the "global" VAT exemption, so that the order at hand is NOT
      // made exempt as a whole
      return false;
    }, 10, 5);

    To change the tax class of the products on the fly, you can look at the following filters:
    woocommerce_product_get_tax_class for simple products.
    woocommerce_product_variation_get_tax_class for variations.

    There would be a bit of work to be done, to make sure that your custom logic covers all angles, but the above should help your developers getting started with it.

Viewing 1 replies (of 1 total)
  • The topic ‘Reverse charge based on specific product’ is closed to new replies.