VAT provider ready for testing

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
13 年 前
I've now finished a beta version of my VAT Tax Provider for NopCommerce. Andrei has agreed to have a look at the code and hopefully will include it in the next version.

Features:
Uses tax categories for VAT rates (standard rate VAT, zero rate, reduced rate etc) - each SKU needs to be assigned to a tax category
Uses existing countries table but with an extra field to indicate whether the country is in the VAT zone
If so configured will collect VAT registration numbers from customers
If you choose will validate submitted numbers with the EU. After that, you can choose to have them VAT exempt straight away or after approval from you in the admin area (recommended)
Charges 0% tax to those shipping outside the EU, 0% to those who have supplied a validated and approved VAT number and are shipping within the EU but outside the shop country
VAT registration details are stored with the order
Admin can view VAT details with orders, alter and amend customer VAT details, and of course set the VAT rates specific to their country
Fully localised and written the "Nop way"

TODO:
By law in the UK at least invoices need to display the shop's VAT number and if 0% was charged the customer's VAT number (AFAIK). Not done this yet.

Demo: http://nopdemo.gloucestersoftware.com/
Admin: [email protected] admin  (please don't change this)
Demo will be online for a few days only

Please create an account, test the VAT number validation, and make purchases - ship outside EU (no VAT), inside EU (VAT), inside EU to another country with a valid number (no VAT) etc. Let me know if you find any bugs or if I've misunderstood the VAT system in any way (I am neither a lawyer nor an accountant).

URLs of interest (besides the shopping cart):
http://nopdemo.gloucestersoftware.com/Account.aspx - My account, change and validate VAT number
http://nopdemo.gloucestersoftware.com/Administration/OrderDetails.aspx?OrderID=7 - A VAT exempt order (see Billing Info & Shipping Info tabs)
http://nopdemo.gloucestersoftware.com/Administration/TaxProviderDetails.aspx?TaxProviderID=13 - VAT provider config
http://nopdemo.gloucestersoftware.com/Administration/Countries.aspx - Countries
http://nopdemo.gloucestersoftware.com/Administration/TaxCategories.aspx - Tax classes (categories) configured for VAT

If you're a developer or an experienced admin and want to try it out, you can download the source at http://nopdemo.gloucestersoftware.com/FTP/NopVAT.zip Please bear in mind that this is based on 1.5 as the Nop team got 1.6 out of the door while I was still developing. You'll need a demo nop database set up and then have to make some changes to tables etc before it will work (all documented). Obviously the installer would in future ask users if they want to do VAT and then set it up for them.
13 年 前
To the person who downloaded the zip not long after I posted, I fixed a bug: In VatTaxProvider.cs change line 65 to if (calculateTaxRequest.Address != null && calculateTaxRequest.Address.Country != null && calculateTaxRequest.Customer != null)

(Null reference exception when not logged in).

zip on server now includes this fix.
13 年 前
This would be a great set of features to add.  Some suggested improvements:

1) Make the VAT number capture part of the checkout process because many customers will create an account and checkout something without visiting their Account area so will never see or be

2) Explicitly note 'Reverse Charge Applicable' where appropriate.

3) Invoice change should add VAT number of merchant and text in 2) when an EC sale occurs

4) Help in preparing the EC Sales List data required (spreadsheet csv etc download for a particular period, monthly, quarterly, annually etc)
13 年 前
Thanks for the feedback. You have very good timing as Andrei had just written to me telling me he'd downloaded the zip.

3) is essential and if the provider is included in NopCommerce I'm happy to finish that feature off.

The others are all good ideas, 4) in particular - I hadn't thought of that but you're right it would be very helpful.

To whom it may concern: Now that Andrei has the zip I'll likely take the demo down this week.
13 年 前
#1) I think is the most critical area needed because customers will not enter/remember this unless prompted.  Perhaps the checkout process might add a page when the conditions are met, or either the shipping or billing address page request the VAT number depending on the option in tax->'tax settings'

Certainly after customers have entered it the first time, the store should remember it for next time.  The other reason why it is important is where stores are configured for anonymous checkout this implementation couldn't be used because the info is assigned to the account not the order - probably needs to be both.

I actually like the approach taken by Nero in their checkout process for sales to the EU.  Suggest you take a look by simply adding something to their cart and following the checkout process.

The difference between how a Service or a Good is treated for VAT can be tricky, but I think your implementation handles this fine through the country and product dimensions.  So in general this looks pretty good and on first look appears that it will handle those items which appear under the 'General Rule' VAT cases - subject to the reliability of the EU web service for checking the VAT number.  

That web service check is a hugely valuable feature because when you submit VAT returns under Reverse Charge rules (changed Jan 1, 2010 so that place of supply is the recipient's country), you are "required" to have checked the numbers are correct.  Doing this manually for hundreds of orders, then trying to followup customers who gave the wrong info would be a nightmare.  Further the ease by which a customer can get themselves a 20% discount with a fake number means that support for VAT must include a call to this service.

We have actually customised our store to collect this number on the registration page but do not have the live validity check and overall getting this right is our current number 1 problem.  Your solution goes a long way towards solving this for us.

The registration page is a good place to collect the number, but I feel the order process must confirm or check the number.

Note that I have only looked at the functionality, not the code.
13 年 前
Actually isn't what we're discussing "Intra-EC supplies"? Unless I'm mistaken "reverse charge" applies to imports rather than exports?

As far as I know the EU web service is definitive but obviously it would be down to users to confirm that with the tax authorities if there's any doubt. As currently coded I just check the number and return the address for admin inspection so manual verification is still recommended. We can look at automating the process further later on.

Thanks again for the ideas. I'm waiting to hear if this will go into Nop or not before working on it any further. What you've viewed is a bit rough round the edges and some if not all your suggestions will need to be implemented, but I'm glad you like what you've seen so far.
13 年 前
I've taken the demo site down now.
13 年 前
In our case when we sell software online from the UK to an EU country it is treated as a 'Service' not a 'Good'.  From Jan 2010 the 'Place of Supply' for services became the recipients country.  The tax department told me to place the text 'Reverse Charge Applicable' on the receipt so that the person importing the software will note on their return the purchase from me.
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.