Jump to content

EU - VAT 0%, tax rules, customer groups, tax exemption


Recommended Posts

Hi all, after couple days I found a way how to go around with this very painful issue. 

 

In detail: I am a seller inside EU (Czech Republic) and because I sell VAT registered and non-VAT registered customers all over the World, there is couple scenarios that can happen:

 

A - Customer inside CZ (Czech republic) - company VAT registered  > VAT 21%

B - Customer inside CZ (Czech republic)  > VAT 21%

 

C - Customer inside EU - VAT registered > VAT 0% 

D - Customer inside EU - non-VAT registered > VAT 21% 

 

E - Customer outside EU (whole world) > VAT 0% but he has to pay fees after arrival of the products to his country

 

Great sources cvering VAT issues

https://ecommerce.shopify.com/c/shopify-discussion/t/european-vat-and-taxes-1315

 

What I needed to do was to create a flow for all of my possible customers without any paid module or major hard coding. I tried almost everything I could find but nothing worked perfectly. 

 

So I decided to tweak it a little bit:

 

1. Registration - I inform customers that I will manually check theirs VAT number (which I am supposed to do anyway for all European customers). I tried official module, but that seems very tricky to me and I am not completely sure whether that stuff works or not. So I decided to inform my customers in this way:

 

post-56484-0-17769700-1420228492_thumb.jpg

 

2. I installed free module which informs me by an email that new customer has registered and I whould check his VAT (http://www.prestashop.com/forums/topic/294459-free-module-customer-registration-admin-alerts-email-when-new-registration/)

 

3. Localization > Taxes : I set up one tax which is suitable for my needs = 21%

 

4. Localization > Tax rules: Here is the magic - Because Tax rules are written the way they are you need to distinguish customers by different countries. 

 

I have only one TAX rule named "CZ Standard Rate (21%)" and inside it are all countries I can supply to. In short there is my setting:

 

A - Czech republic - 21%

B - Czech republic - 21%

 

post-56484-0-22603200-1420229465_thumb.jpg

 

that was easy.

 

C - e.g. Germany - 0% (I have more customers VAT-registered so its is easier for me this way)

D - e.g. Germany. - 21% - For this instance you need to add NEW COUNTRY which is complete identical to Germany above except the name which could be "hiscountrywiththedotattheend" etc. For this country you set up different TAX rules and when you detect non-VAT customer from this country you manually change his country from registration (e.g. Germany) to (Germany.) and  that is it.

 

E - same as C

 

 

post-56484-0-82480900-1420229469_thumb.jpg

------------

After receive an email:

 

  • Are they from EUROPE?
  • YES 
    • Are they from Czech republic?
    • YES 
      • Is there a VAT number?
      • YES 
        • Is it VALID inside EU?
        • YES - Customer A - I will set him to Customer group for companies so he can see proper prices (without TAX) but I will Tax him during order process
        • NO - Customer B (no setting)
      • NO - Customer B (no setting)
    • NO
      • Is there a VAT number?
      • YES 
        • Is it VALID inside EU?
        • YES  - Customer C - I will set him to Customer group for companies so he can see proper prices (without TAX) and thanks to TAX rules, he is set up fot 0% VAT.
        • NO  - Customer D - Manually change his country to "country." which has proper VAT in Tax rules (so he sees Tax incl. and is taxed by 21%)
      • NO - Customer D - Manually change his country to "country." which has proper VAT in Tax rules (so he sees Tax incl. and is taxed by 21%)
  • NO // they are from outside EU
    • Customer E - I dont care if its a company or not because everything is setup with 0% VAT.

 

-----------

Yes, everything is done manually, it is not perfect, but it works like a charm. So if you need any help with that let me know  :)

 

If anybody found something more efficient, please let me know;)

Martin

Edited by ALbi87 (see edit history)
  • Like 3
Link to comment
Share on other sites

  • 1 month later...

Hi!

Thank you for sharing this. I have the similar situation (selling from Estonia).

 

I tried you solution but got stuck while creating a new country

"hiscountrywiththedotattheend

 

I tried to create Finland.  (dublicate of Finland) under Localization > Countries. So that later I could add 0% VAT to to this "Finland." under Tax rules.

 

Problem is that PS doesn't allow dublicate ISO code. Also doesn't allow false ISO code there

How did you manage to create a new country? 

 

Thank you in advance!

Edited by Innar.Hunt (see edit history)
Link to comment
Share on other sites

  • 1 month later...

You need to use the European VAT module, enable B2B mode, check if all 28 EU countries have vat_number in Address format (2 are usually missing) and set appropriate tax rules (X% tax for all 28 EU countries, again some are usually missing). That's it.

Link to comment
Share on other sites

  • 10 months later...
  • 7 months later...

You need to use the European VAT module, enable B2B mode, check if all 28 EU countries have vat_number in Address format (2 are usually missing) and set appropriate tax rules (X% tax for all 28 EU countries, again some are usually missing). That's it.

 

Can you post a link of the module you mentionned? 

I see a couple of VAT modules available. 

Thanks!

Link to comment
Share on other sites

The European VAT number module is available in PrestaShop for free - https://github.com/PrestaShop/vatnumber

 

Thanks!

 

Why is it necessary to activate B2B mode? 

 

We are searching for a solution to automatically send a professional client into a customer group, based on the country and if he has a VAT number. 

We have 2 custom client groups: 

- Professional clients (own country) -> 21% VAT

- Professional clients (EU) -> 0% VAT by switching the "price display method" to "tax excluded"

Any ideas how we can handle this? 

 

If I understand well, with the European VAT number module, you have to change the customer to a client group manually?

Link to comment
Share on other sites

With the European VAT number module you have to do nothing special. It just works. In all cases, for all groups, for all customers. Why to reinvent the wheel?

 

I see, it indeed just works. :-)

It wasn't very clear for me, I thought the module just did a check on the VAT number, if it excisted or not. 

 

So B2B mode isn't necessary? 

 

(I'm going to need a clientgroup "Professional" to store all clients with VAT number, because we give them a 20% discount. So I still need to find a way to automatically store the VAT-number clients into a group. But that isn't relevant in this topic anymore) 

Link to comment
Share on other sites

  • 5 months later...

I see, it indeed just works. :-)

It wasn't very clear for me, I thought the module just did a check on the VAT number, if it excisted or not. 

 

So B2B mode isn't necessary? 

 

(I'm going to need a clientgroup "Professional" to store all clients with VAT number, because we give them a 20% discount. So I still need to find a way to automatically store the VAT-number clients into a group. But that isn't relevant in this topic anymore) 

 

So does the module works as it should?

eg for professional clients (EU) does it apply 0% VAT for a product that has been assigned differently? 

 

--

C

Link to comment
Share on other sites

So does the module works as it should?

eg for professional clients (EU) does it apply 0% VAT for a product that has been assigned differently? 

 

--

C

 

The module does work indeed.

When a client fills in a VAT number in his delivery-address and fills in a European country other then the country of the shop, no tax is calculated through the shop. 

  • Like 1
Link to comment
Share on other sites

The module does work indeed.

When a client fills in a VAT number in his delivery-address and fills in a European country other then the country of the shop, no tax is calculated through the shop. 

 

Just installed and tested everything!

It works like a charm!  B)  B)

Its such a pity thetere was not proper documentation for the module and we had to figure this out after so long.

Link to comment
Share on other sites

Hi!

I've purchased "EU VAT and client group Module"

https://addons.prestashop.com/en/customer-administration/4946-eu-vat-and-client-group.html

 

It does help in validating the customers VAT number. But I can't figure out what I need to do in order to have 0% VAT for customers outside of my country (Estonia) that have VAT validated. 

I've tested and users still have VAT after validation. I've tried going business mode and still no success.

No customer support for Module as I haven't receive any answer.

 

I use PS 1.6.0.8

 

I would reallt appreciate support on this!

Link to comment
Share on other sites

It works sometimes

 

We are UK and it will not work for Italian VAT numbers and some spanish ones as far as I can tell.. The VAT number just gets stripped from their address. I cannot figure it.

 

Can you test with some italian VAT numbers?

Link to comment
Share on other sites

Just installed and tested everything!

It works like a charm!  B)  B)

Its such a pity thetere was not proper documentation for the module and we had to figure this out after so long.

 

May I ask which module do you mean:

https://github.com/PrestaShop/vatnumber

or https://addons.prestashop.com/en/customer-administration/4946-eu-vat-and-client-group.html

 

What other steps did you do in order to get it working?

I'm asking as I've purchased: https://addons.prestashop.com/en/customer-administration/4946-eu-vat-and-client-group.html

and can't figure it out how to have 0%VAT on invoices for EU customers with outside of my country
Link to comment
Share on other sites

 

May I ask which module do you mean:

https://github.com/PrestaShop/vatnumber

or https://addons.prestashop.com/en/customer-administration/4946-eu-vat-and-client-group.html

 

What other steps did you do in order to get it working?

I'm asking as I've purchased: https://addons.prestashop.com/en/customer-administration/4946-eu-vat-and-client-group.html

and can't figure it out how to have 0%VAT on invoices for EU customers with outside of my country

 

 

Sorry for the confusions - the free one does not work for italian numbers (https://github.com/P...aShop/vatnumber)

Our messages crossed in the ether

Link to comment
Share on other sites

 

May I ask which module do you mean:

https://github.com/PrestaShop/vatnumber

or https://addons.prestashop.com/en/customer-administration/4946-eu-vat-and-client-group.html

 

What other steps did you do in order to get it working?

I'm asking as I've purchased: https://addons.prestashop.com/en/customer-administration/4946-eu-vat-and-client-group.html

and can't figure it out how to have 0%VAT on invoices for EU customers with outside of my country

 

First set up the taxes you'll use (eg GR vat = 24%)

Second set up tax rules. For each rule you have to assign the countries you desire this vat to be applied (eg all EU countries)

Then you have to assign the taxes to the products. (...)

Install free module the "European VAT number v2.0.0 - by PrestaShop" & select your country of origin in EU.

 

Now go to your frontoffice and create a several address:

- address with no vat in your origin country (tax applied)

- address with with vat in your origin country (tax applied)

- address with no vat in another EU country (tax applied)

- address with vat in another EU country (no tax applied)

- address with country outside EU (since tax rule is not connected with this country, no tax will be applied no matter the vat)

 

I hope this helps. 

 
**Personally i disabled the checking of VAT - i am more interested in the correct application of the tax.
Link to comment
Share on other sites

 

First set up the taxes you'll use (eg GR vat = 24%)

Second set up tax rules. For each rule you have to assign the countries you desire this vat to be applied (eg all EU countries)

Then you have to assign the taxes to the products. (...)

Install free module the "European VAT number v2.0.0 - by PrestaShop" & select your country of origin in EU.

 

Now go to your frontoffice and create a several address:

- address with no vat in your origin country (tax applied)

- address with with vat in your origin country (tax applied)

- address with no vat in another EU country (tax applied)

- address with vat in another EU country (no tax applied)

- address with country outside EU (since tax rule is not connected with this country, no tax will be applied no matter the vat)

 

I hope this helps. 

 
**Personally i disabled the checking of VAT - i am more interested in the correct application of the tax.

 

Have you checked this process with Italian numbers? When first on screen it works, but then stops working. Can you try an italian number? get it to the shopping cart and see the VAT effect, then click away and come back and see if VAT is still deducted?

Link to comment
Share on other sites

  • 2 months later...
  • 1 month later...
  • 2 weeks later...
  • 3 months later...

Hello

The European VAT module for prestashop 1.7 is very important, almost essential, it is just incredible that prestashop team removed it from the default basic modules in prestashop 1.7, too bad, :(

Anyone found a free solution to this problem?

I found this post and tried it, but so far at least for me does not work: [SOLVED] Free VATNumber module FIXED for PS 1.7.0.0-1.7.2.4

Would anyone try it out too and post comments, maybe help to give an end to this issue?

Thank you

Link to comment
Share on other sites

Hello Yes

I tried right that module, and does NOT work, also the file modification suggested in that post do not work on my presta 1.7.2.4 installation, I am going to try it now on a completely fresh one just out the box, but I guess the result will not change, will post the results in short.

Link to comment
Share on other sites

En 12/12/2017 a las 7:55 PM, daxit_x dijo:

Hello Yes

I tried right that module, and does NOT work, also the file modification suggested in that post do not work on my presta 1.7.2.4 installation, I am going to try it now on a completely fresh one just out the box, but I guess the result will not change, will post the results in short.

 

The 'problem' is because PS 1.7 isn't ready for VAT Number feature like PS 1.5 or PS 1.6. VAT number module works fine!

In my old PS 1.5.6.2 i have this javascript code in address.tpl

	$(document).ready(function() {
		$('#company').on('input',function(){
			vat_number();
		});
		vat_number();
		function vat_number()
		{
			if ($('#company').val() != '')
				$('#vat_number').show();
			else
				$('#vat_number').hide();
		}
	});

And this smarty code

			{if $field_name eq 'company'}
				<div class="text form-group">
					<label class="control-label col-sm-4" for="company">{l s='Company'}</label>
					<div class="col-sm-6">
						<input class="form-control" type="text" id="company" name="company" value="{if isset($smarty.post.company)}{$smarty.post.company}{else}{if isset($address->company)}{$address->company|escape:'html'}{/if}{/if}" />
					</div>
				</div>
			{/if}
			{if $field_name eq 'vat_number'}
				<div id="vat_area">
					<div id="vat_number">
						<div class="text form-group">
							<label class="control-label col-sm-4" for="vat_number">{l s='VAT number'}</label>
							<div class="col-sm-6">
								<input type="text" class="form-control text" name="vat_number" value="{if isset($smarty.post.vat_number)}{$smarty.post.vat_number}{else}{if isset($address->vat_number)}{$address->vat_number|escape:'html'}{/if}{/if}" />
							</div>
						</div>
					</div>
				</div>
			{/if}

But in PS 1.7 only

      {block name="address_form_fields"}
        <section class="form-fields">
          {block name='form_fields'}
            {foreach from=$formFields item="field"}
              {block name='form_field'}
                {form_field field=$field}
              {/block}
            {/foreach}
          {/block}
        </section>
      {/block}

You need a lot of code in PS 1.7 (javascript and smarty) in different files  to add this show/hide feature :(

 

Link to comment
Share on other sites

  • 1 year later...
  • 2 weeks later...
  • 2 months later...
  • 1 month later...
  • 1 month later...
  • 9 months later...
  • 5 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...