Before migrating products, you will need to configure all the tax-options in Magento. Within VirtueMart you will need to go to "Tax > List Tax Rates". Within Magento you will need to go to "Sales > Tax". Note that within Magento tax rules are very flexible, thus harder to configure.

Steps

In short, you will need to create:

  • a Product Tax Class: a container for all your products
  • a Customer Tax Class: a container for all your customers
  • a list of Tax Rates which lists the actual taxes and the region to which it applies
  • a list of Tax Rules that combine all the entities of before.

By default, Magento creates a tax-class "Taxable Goods" and a single "Tax Rule". If you have only one tax to worry about, you still need to configure the right Tax Rate. For this, we refer you to the regular Magento documentation.

Migrating products from multiple tax-groups

Within the Vm2Mage Parameters you can configure only one Magento "Product Tax Class ID". This tax-class is applied to all the products you migrate. But what if you need to migrate products to multiple tax-classes?

The solution is simple: Configure the first tax-class within the Vm2Mage Parameters. Next, use the Vm2Mage Products overview page to select only those products that have the first tax-class applied. When hitting the "Migrate" button, only those products that are currently selected will be migrated. When the migration of these products is finished, repeat all these steps with a different tax-class.

Showing the tax

VirtueMart always shows the product prices including tax on the frontend. Optionally you can add a string "including XX% tax" to this price, but there is no (easy) way to display prices exluding tax using VirtueMart. Each product gets assigned a VAT id, and using this the right tax is calculated and applied.

However, by default Magento will show the price excluding tax. The reason for this is completely correct, and actually the behaviour of VirtueMart is wrong: When you sell a product to somebody from Spain, different tax rules need to be applied then if that somebody comes from the USA. This is the reason why Magento (by default) hides the tax by default. With VirtueMart it is shown, but actually there is no guarantee that the tax is right until the customer has filled in the country-details.

Of course you'll want to present your customers with the same details as given in the old webshop. So the question is: How to show all prices including tax in Magento anyway? If you go (within the Magento Admin Panel) to "System > Configuration > Sales > Tax > Display", you will find an option "Display product prices" which you can set to "Including tax".

But the problem remains: Unless a customer logged in and has told Magento which country he or she is from, Magento is unable to apply any tax rule to that customer. The solution is to configure a default Tax Zone. If you navigate to "System > Configuration > Sales > Tax > Default Tax Destination Calculation" you can enter a default Tax Zone. Just make sure the same settings exist under "Sales > Tax > Manage Tax Rates" as well.

Posted on December 12, 2009

About the author

Author Jisse Reitsma

Jisse Reitsma is the founder of Yireo, extension developer, developer trainer and 3x Magento Master. His passion is for technology and open source. And he loves talking as well.

Sponsor Yireo

Looking for a training in-house?

Let's get to it!

We don't write too commercial stuff, we focus on the technology (which we love) and we regularly come up with innovative solutions. Via our newsletter, you can keep yourself up to date on all of this coolness. Subscribing only takes seconds.

Do not miss out on what we say

This will be the most interesting spam you have ever read

We don't write too commercial stuff, we focus on the technology (which we love) and we regularly come up with innovative solutions. Via our newsletter, you can keep yourself up to date on all of this coolness. Subscribing only takes seconds.