Setting up tax-classes before Vm2Mage migrations

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.


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.