Hi Andrei,
With regards to the VAT, I see you've wired it in to the tax manager itself rather than use a seperate provider which is fine. However I'm wondering how it's going to cope with multiple VAT rates.
The 2 most important VAT rates are standard rate (in the UK currently this is 17.5%) and zero rate (0%). In the UK there's at least one other rate. There's also "VAT exempt" which means "outside the scope of VAT" - charged at zero but needs to be accounted for seperately.
The way I did this was to add a VAT rate to the tax category and make sure each product is assigned a tax category. I set the categories up as one per VAT rate. See
http://nopdemo.gloucestersoftware.com/Administration/TaxCategories.aspxOnce we've determined that the customer is required to pay VAT we simply check the VAT rate of each item in the cart (and the shipping fee) to calculate the tax on each item. I favour this solution as being very simple to set up. Most products in a cart will be at standard rate but some may be zero rate (in the UK that includes common items such as books). There's no certainty that we can apply a fixed 17.5% to the entire cart. Because of this it may actually be better to use the provider I submitted, or something based on it, *to do the actual tax calculation* and add the VAT rate field to the tax category? You can also then use the TaxCategoryNullException class I submitted and make it mandatory for products to be in a tax (VAT) category when the VAT Provider is active.
Don't forget to have the update installer set to true "is in the scope of VAT" for all the countries in the VAT zone. There's a list in one of the text files. We may need to add "EU" to the countries list as I understand that's a special VAT country code for purchases/supplies made by the EU itself.
Finally, I see you're calling the web service to check the VAT number each time there is a purchase? I can see the benefits of this (the number may be withdrawn, perhaps?) but I liked as store admin the ability to be able to accept or reject a number and manually check, in the admin area, that the address returned by the service (if any) matches the address supplied by the customer. Would it perhaps be better to make this a configurable option? See
http://nopdemo.gloucestersoftware.com/Administration/CustomerDetails.aspx?CustomerID=37, VAT tab. (Incidentally I found a bug in the user control on that page, which I've fixed. If you want to use the control ask me for the fixed version).
Actually I can't see any UI infrastructure for VAT so maybe you didn't get round to that yet.
(Note the VAT demo store is back online for a while as I had a request. admin@yourstore.com password admin).
Steve