Joomla Tutorials and Blog Posts

Migrate Virtuemart 1.1 to Version 2

Virtuemart

VirtueMart is absolutely huge. By some counts, it stands second in popularity amongst all eCommerce platforms. Last year we explained how to use it in a very detailed tutorial.

Nearly all Virtuemart shops run version 1.1 but recently Virtuemart launched version 2.0. This tutorial will show you how to move your Virtuemart installation from 1.1 to 2.0.

What you need to know

Migrating Virtuemart from 1.1 to the newest 2.0 version seems fairly simple with the migration utility that is built into Virtuemart. However there are a few potential pitfalls. The migration utility does move this data:

  • products
  • orders
  • product categories
  • manufacturers
  • manufacturer categories
  • shopper groups

However, the migration utility does not move the following items. You will need to manually add this data:

  • product types
  • product attributes 

In this tutorial, we'll walk you through the process of moving from 1.1 to 2.0.

Also, please make sure that you try this first on a development copy of your site. As we always advise: DO NOT ATTEMPT AN UPGRADE ON A LIVE, WORKING SITE. Here's a tutorial on creating a development copy of your Joomla site.

Step 1: Download the Virtuemart files

tutuploadstutuploadsmedia_1331519283781.png

Go to http://virtuemart.net and download two things:

  1. Download a copy of Virtuemart 2.
  2. If you are not currently running Virtuemart 1.1.9, download an update file to get you to Virtuemart 1.1.9. In the image above you can see that there are specific patches, for previous versions. You can find the patches at http://dev.virtuemart.net/projects/virtuemart/files. You will need to update to Virtuemart 1.1.9 before going any further.

Step 2. Move your media into /images/stories/virtuemart/

tutuploadstutuploadsmedia_1331595598234.png
  • Use an FTP program or your file manager to create a directory for your media files that is located at /images/stories/virtuemart/.
  • Copy all of the files located in /components/com_virtuemart/shop_image/ to this new folder at /images/stories/virtuemart/.
tutuploadstutuploadsmedia_1331596318673.png

Step 3. Rename your old com_virtuemart folders

Using your file manager or FTP program to go to /components/com_virtuemart/ and rename the entire /com_virtuemart/ folder. I used the word ORIGINAL in the image below so it would be easy to spot the change to /ORIGINALcom_virtuemart/.

tutuploadstutuploadsmedia_1331589192335.png

Step 4. Disable the Joomla debug option plus Virtuemart modules and plugins

We need to go to the Joomla configuration and disable the Joomla debug option.

  • Go to Site > Global Configuration.
  • Go to the System Tab.
  • Choose No for Debug System.
  • Click Save.
tutuploadstutuploadsmedia_1331596729934.png
We also need to disable all of the Virtuemart modules.
  1. Go to Extensions > Module Manager.
  2. Use the Filter to search for Virtuemart Modules.
  3. Click the checkbox at the top of the column to select them all.
  4. Click Disable.

If there are any green checks, for Virtuemart modules change them to red x's.

tutuploadstutuploadsmedia_1331596964900.png
We also need to disable all the Virtuemart plugins:
  • Go to Extensions > Plugin Manager.
  • Use Filter to search for plugins.
  • Disable all Virtuemart plugins.
tutuploadstutuploadsmedia_1331597224413.png

Finally, if you have it installed, also disable the Akeeba System - System Restore Points plugin.

Step 5. Set the default language

tutuploadstutuploadsmedia_1331597461702.png
  • Go to Extensions > Language Manager
  • Check to see that the default language is set to the same language used for your product descriptions. In this illustration there is only one language, but if you have a multi-lingual site, this will make sure you have the correct language tables in the database.

Step 6. Install Virtuemart 2

When you download Virtuemart it comes in a compressed package that needs to be unzipped first. In fact, the download package will tell you to do this by having a name such as com_virtuemart.2.0.2_extract_first.zip. After unzipping you will see two files:

  • com_virtuemart.2.0.2.zip
  • com_virtuemart.2.0.2_ext_aio.zip

You only need to install the com_virtuemart.2.0.2.zip file Complete the installation of this file before you add the AIO (All-in-one) package. The AIO contains all the plugins and modules you'll need.

Go to Extensions > Install/Uninstall (or Extensions > Extensions Manager) in Joomla 2.5 and upload the files for Virtuemart 2.0. The file you want to upload will have a name such as com_virtuemart.2.0.3.zip.
tutuploadstutuploadsmedia_1331597804707.png
The image below shows the successful installation response screen. You won't need to install sample data.
tutuploadstutuploadsmedia_1331598085608.png

You can now go to Components > Virtuemart and confirm that all your data is intact and the upgrade has been made. If it was installed successfully, you'll see a screen like the image below. If anything went wrong, you'll see an error message, which seems to be a frequent result according to forum reports. However it's a simple fix. If you get an error message, uninstall Virtuemart 2 and reinstall it once more.

tutuploadstutuploadsmedia_1331598615195.png

 

Step 7. Install AIO component

Return to the Extensions > Install/Uninstall and upload the AIO (All In One) component. This will have a name such as com_virtuemart.2.0.2_ext_aio.zip.

tutuploadstutuploadsmedia_1331598940678.png

 

Step 8. Deactivate an incompatible plugin

If you have a Joomla 1.5 site, you will get an error message if you try to view the site now. The reason is that a Joomla 2.5 plugin was installed with the AIO component. If this is a 1.5 installation, the site will not load correctly. Here's how to fix it:

  • Go to your administrator pages and go to Extensions > Plugin Manager.
  • Use the Filter to search for Virtuemart Plugins.
  • Disable the new plugin called VM - Search, Virtuemart Product.
  • Preview the site.

If you are locked out of your admin, you can turn off the module using phpMyAdmin as explained in this tutorial.

tutuploadstutuploadsmedia_1331599754304.png
 
tutuploadstutuploadsmedia_1331599420465.png

Check your site now. If it works, we let's get the migration going.

  • Check the "Enable database Update tools" setting in Virtuemart Configuration.
  • Go to Tools/Tools & Migration "Migration" tab.
  • Choose Everything and click Start Migration.
  • Click Start Migration as many times as it takes for all products to migrate

Step 9. Enable the database update tools

  • Go to Components > Virtuemart.
  • Click Configuration.
  • Click the Shop tab and scroll down.
  • Check to enable database tools.
  • Click Save.
tutuploadstutuploadsmedia_1331600946624.png

Step 11. Set up the migration

  • Go to Tools and click the Migration tab.
  • Increase the max_execution time. I set mine at 100.
  • Increase the Memory Limit. I set mine to 256MB.
  • Check the "everything" radio button. Do this before you start.
  • Click Start Migration.
tutuploadstutuploadsmedia_1331601370145.png

You already made these changes in the step above, but If you want to increase these manually, open your php.ini file in a script editor and change the parameters as needed. If you need help, here are two tutorials we have available for free, that will give you some guidance in finding the file and making changes.

 
tutuploadstutuploadsmedia_1331606339418.png
Once the migration is complete, you'll see an screen like the image below. Mostly blue is a good sign. At this point you don't need to be too concerned about the error messages. You still need to configure all the details of your store, so that's the next step. That will correct these error messages.
 
tutuploadstutuploadsmedia_1331602006128.png
Now go ahead and previewing the site. It shows you that all the products were imported and everything is working.
 
 
tutuploadstutuploadsmedia_1331602095671.png
 
Congratulations! At this point your migration to Virtuemart 2 has gone as far as the in-built migration utility will take you.
 
Now you can configure your store by going to Components > Virtuemart > Configuration. We have a great tutorial on how to configure Virtuemart if you need it.
 
All the best with your new Virtuemart 2 store!

Comments

 
Kent
#1 Kent 2012-03-13 13:38

This is very useful. I have decided to migrate as well but I am afraid that the whole system will collapse.
 
 
Matt
#2 Matt 2012-03-13 14:17

Great tutorial, but what kills me with VM2 is that right now, the product types / attributes are now custom types, but not nearly as powerful. Unless I am missing something, there is no way to apply multiple custom types to one product (ie. multi-select list) so that I can use the Cherry Picker as I did in VM1.1!
 
 
Elyrith
#3 Elyrith 2012-04-12 18:40

@1 Kent
You should never do upgrades like this on a live version of your site, and never without a backup first.
Personally, I use Akeeba Backup to make VERY easy backups, plus their Kickstart.php to do restores, which is very easy.
 
 
Russo149
#4 Russo149 2012-05-30 03:27

I have followed this tutorial to the letter and everything worked well with the exception of the Virtuemart template.

It didn't come across in the migration and my site doesn't look the same (terrible actually).

Can you suggest what steps to take from here?
 
 
Jan
#5 Jan 2012-06-25 20:14

On www.timonbos.eu/.../techniek there is a PHP script that migrates product images en category images (in case everything is migrated except images)
 
 
Saly
#6 Saly 2012-07-06 15:32

Hi,

First of all thank you for your great tutorial.

I have 6872 products in my old VM(v.1.1.9) installation. After migration, I can see 6677 products in my shop totally and apparently VM migrator skips some products while it migrates the categories perfectly. I tried the migration several times and every time got the same result(6677 products) . I'd greatly appreciate if you give me a solution.

Thank you in advance.
 
 
Nadia
#7 Nadia 2012-07-07 20:03

i have a virtuemart 1.1.9 in joomla 1.5 now i want to upgrade it in to 2.0 and i alreadt upgrade site in to joomla 2.5 having new installation of virtuemart 2.0..

now when i try to install through installer com_virtuemart 2.0 in joomla 1.5 then error comes and site totally disappear.

can u help me that how could i shift in to virtuemart 2.0 in joomla 1.5? because when i try step 6 i got error
 
 
Igor Leenderts
#8 Igor Leenderts 2012-07-23 19:14

Briljant, it worked. Thanks
Saved me a lot of work.
 
 
Marcio
#9 Marcio 2012-07-26 03:47

Same as Saly .. lots of products are missing after the migration .. any solution?
 
 
Adam
#10 Adam 2012-09-29 04:05

Order date has auto changed to current date after migration. how to solve it?
 
 
Reggaeshop.cz
#11 Reggaeshop.cz 2012-10-08 14:51

Hi, does anybody know: when you say "disable all Virtuemart plugins" does it mean only the ones which have virtuemart (or vm?) in their name, or all the plug ins which do something in/with my VM shop?
And - if I by mistake disable more than only the VM plugins, does it do any harm?
Thanks,
Peter
 
 
Shashindra
#12 Shashindra 2012-10-12 05:23

Hi,

i have follow all your steps mention here but i got this error

vmError: port Orders db error Illegal mix of collations (utf8_general_c i,IMPLICIT) and (utf8_unicode_c i,IMPLICIT) for operation '=' SQL=SELECT `o`.*, `op`.*, `o`.`order_numb er` as `vm1_order_numb er`, `o2`.`order_num ber` as `nr2` FROM -- vm_orders` as `o` LEFT OUTER JOIN -- vm_order_paymen t` as `op` ON `op`.`order_id` = `o`.`order_id` LEFT JOIN -- virtuemart_orde rs` as `o2` ON `o2`.`order_num ber` = `o`.`order_numb er` WHERE (o2.order_numbe r) IS NULL LIMIT 0,201400
vmError: port Orders db error SELECT `o`.*, `op`.*, `o`.`order_numb er` as `vm1_order_numb er`, `o2`.`order_num ber` as `nr2` FROM -- vm_orders` as `o` LEFT OUTER JOIN -- vm_order_paymen t` as `op` ON `op`.`order_id` = `o`.`order_id` LEFT JOIN -- virtuemart_orde rs` as `o2` ON `o2`.`order_num ber` = `o`.`order_numb er` WHERE (o2.order_numbe r) IS NULL LIMIT 0,201400

can you provide any help in that?

Thanks
 
 
Aparna
#13 Aparna 2012-10-16 11:04

Its great tutorial i use it its working
Thanks
 
 
Thomas Anderson
#14 Thomas Anderson 2012-11-21 09:01

Great work, great tutorial.
I have error, not images migration to new version, and when change language to spanish, not appear categories and products, and show this message:
"vmError: exeSortSearchLi stQuery Table 'infoco.j25_vir tuemart_categor ies_es_es' doesn't exist SQL=SELECT c.`virtuemart_c ategory_id`, l.`category_des cription`, l.`category_nam e`, c.`ordering`, c.`published`, cx.`category_ch ild_id`, cx.`category_pa rent_id`, c.`shared` FROM `j25_virtuemart _categories_es_ es` l JOIN `j25_virtuemart _categories` AS c using (`virtuemart_ca tegory_id`) LEFT JOIN `j25_virtuemart _category_categ ories` AS cx ON l.`virtuemart_c ategory_id` = cx.`category_ch ild_id` WHERE cx.`category_pa rent_id` = 0 ORDER BY category_name DESC"

Can you help me?
Thank you very much
 
 
Juliana
#15 Juliana 2012-12-08 03:02

it says 126 products were migrated, but there's none in the producto list. What can I do?
 
 
Jindra
#16 Jindra 2013-01-27 04:18

Hi, thx for great tutorial, but you should write that you must rename all com_virtuemart folders! i mean in administrator/c omponents/ too.
 
 
mohamed mira
#17 mohamed mira 2013-02-15 15:00

Ed Andrea thnx vrey much that is helpful

but it stop at step 8

now i dont have VM - Search, Virtuemart Product.
and my offline site is blank (white page :) )

any suggestion?

but i did follow the steps to the end

and still white page
 
 
mari
#18 mari 2013-02-17 17:24

I follow all steps but I have a problem at Step 8.

I dont have a"VM - Search, Virtuemart Product" plugin to disable. I disable just a plugin named: Virtuemart Product (type: search) thinking maybe is it the same, but my vm shop doesn´t run.
Any suggestion? (I´m in Joomla 1.5.26)
Thanks in advanced!
 
 
Michele89
#19 Michele89 2013-03-13 13:08

Hello, the migration tool tells me that everything is fine but the list of products and categories is currently empty.
I read the guide a dozen times and I have not made ​​any mistakes.
I can not understand where is the problem ..

Give me a hand please?
 
 
Tarun
#20 Tarun 2013-03-22 11:39

Very Nice tutorial Thanks for sharing with us
 
 
Stephen H
#21 Stephen H 2013-05-16 22:29

Worked like a charm. Thanks a million!
 
 
renea
#22 renea 2013-06-09 20:02

Same here: This error: vmError: port Orders db error Illegal mix of collations (utf8_general_c i,IMPLICIT) and (utf8_unicode_c i,IMPLICIT) for operation '=' SQL=SELECT `o`.*, `op`.*, `o`.`order_numb er` as `vm1_order_numb er`, `o2`.`order_num ber` as `nr2` FROM -- vm_orders` as `o` LEFT OUTER JOIN -- vm_order_paymen t` as `op` ON `op`.`order_id` = `o`.`order_id` LEFT JOIN -- virtuemart_orde rs` as `o2` ON `o2`.`order_num ber` = `o`.`order_numb er` WHERE (o2.order_numbe r) IS NULL LIMIT 0,201400
vmError: port Orders db error SELECT `o`.*, `op`.*, `o`.`order_numb er` as `vm1_order_numb er`, `o2`.`order_num ber` as `nr2` FROM -- vm_orders` as `o` LEFT OUTER JOIN -- vm_order_paymen t` as `op` ON `op`.`order_id` = `o`.`order_id` LEFT JOIN -- virtuemart_orde rs` as `o2` ON `o2`.`order_num ber` = `o`.`order_numb er` WHERE (o2.order_numbe r) IS NULL LIMIT 0,201400 Does anyone know how to fix this error?
 

Add comment


Security code
Refresh

blog-ad

Start Online Training

Members get access to all our video training. That's 1,244 training sessions in Joomla, Drupal, WordPress and Coding.

Latest Comments

The License for Our Tutorials

All of our tutorials are published under the Creative Commons Attribution-NonCommercial license. This means:

  • You can re-use these tutorials.
  • You can modify these tutorials.
  • You must link back to our original tutorial.
  • You can't use these tutorials commercially.

Click here to read the full license.

Copyright 2013 Open Source Training, LLC. All rights reserved.