Author - Robert Popovic

Founder and Technical Director of LERO9, a web agency specializing in Magento and WordPress design and development.

I launched Magebase in April, 2010 and am its editor and contributor. My main topics of interest are Magento development, customization and how to get the most out of Magento with the least amount of headache.

More Info » Follow me on Twitter »

Reader Comments (44)

  1. DB
    October 8, 2010 at 1:18 pm /

    We used Cart2Cart back in March and ran into problems with meta tags. None of our product meta tags (title, description or keyword) made it over, which was a major headache. I ended up having to do a manual import over from ZenCart (and figuring out how to tie the differing product ids together was another story in itself).

    But yes, it sure was nice having most of the info moved over for us!

  2. Joe Fletcher
    November 3, 2010 at 9:20 am /

    I’ve done two Cart2Cart migrations. One good, one bad. The first was X-cart to Magento 1.3. This was when Cart2Cart just came out. Everything went smoothly. My first import try was missing something like custom options. I emailed them, and the head guy at the time fixed their process AND re-did the import for me.

    The 2nd migration was a nightmare. It was Magento 1.3 to 1.4. You’d think, this should be a cinch! Well, not only did I get the errors Robert mentions in his post (an additional tab called “General” with only a Short_description field, the new size attributes, incomplete data/identifiers), but I also got indexing errors that prevented some saving. After about 20 hours of trying to fix the data issues, including following advice from the forums and Cart2Cart that did not work, including them blaming it on a Magento bug, I gave up and did the migration manually. Fortunately, Cart2Cart refunded my money.

    So, 2 totally different experiences: 1 great with great support, and 1 terrible with “not our fault” support.

    I’ll second Robert’s advice. This might work for you, and it might not. I suggest trying it, but not counting on it. If you use their wizard, be sure to mark the option that says something about “clear target db first?”. Cart2Cart said that was part of the problem – even if you’re starting with a fresh install.

  3. Rob
    December 21, 2010 at 5:55 am /

    Curious – I’m looking to do the same import as you. Did customer passwords come across successfully, or did everyone need to reset their password post import? Did this go over well?

  4. CF Hughes
    CF Hughes
    January 30, 2011 at 11:21 am /

    I have to say I had an excellent experinece with Cart2Cart. My migration good not have gone more smoothly. No hitches or hic-ups.

    I was migrating from ZenCart to Magento.

    Support was the best…totaly top notch.

    I have only done the one migration so can not speak to the consistency, but do believe the folks at Cart2Cart will do all they can to make the process as painless as possible.

    CF Hughes

  5. James Niland
    March 2, 2011 at 9:22 am /

    I had a much different experience with cart2cart with my Zen cart import. I would not recommend their service as it cost me more to pay someone to clean up the mess it made than it cost to do the import. The cart2cart grew my database from 324 tables to over 680 and they would not fix it. Their answer was “we have done it before without problems”. They just left my store in an messed up state and would not redo the import.

    1. Cart2Cart Team
      March 29, 2011 at 1:59 am /

      Dear James,
      Thank you for a comment. Your opinion is very valuable for us. At this point we have already made more than 900 successful Zen Cart migrations. But very frequently some issues may encounter during the migration, which mostly are connected with a specifics of the store, or other aspects. In this case we ask our clients to provide us with some additional information and permissions to fix this. But it’s up to our client to give or not to give us this information.
      In your case, the migration itself went ok. In fact, there was an issue which was connected with the specifics of your store. After each migration we do dump file which shows all success and errors of migration process. So we asked you to restore dump file to fix all problems or give us access to your FTP (so we could do it by ourselves). You didn’t give us the opportunity to fix the problem and asked for refund. We would be glad to help you.

  6. JP
    March 17, 2011 at 2:56 pm /

    Hi there,

    We’re looking to transfer member data only from epages to Magento. Both customers and subscribers. Sorry to post this here, but it seems the only article tagged ‘data migration’. I understand the passwords in epages are encrypted, so we can’t transfer them with the user data.

    We presently have everyone’s password in Magento set to a single default that we will tell them to change on their first visit to the new Magento site (perhaps with a store discount voucher to encourage this). But we’re having doubts about this for security reasons. It’s a hosted DPS page taking payment, so no credit card info would be available to anyone who ‘hacked’ another user’s account by guessing usernames.

    So I’m really interested hearing anyone’s methods employed when migrating users from a different platform (especially, but not limited to, epages) and getting the subscribers/customers to do the necessary thing on the new Magento site (visit, log in, check details, update password if necessary). One possible solution – is there a way to generate a new password on the fly via a unique link in a bulk email?


    1. Cart2Cart Team
      March 29, 2011 at 3:10 am /

      JP, I’ll try to answer your question.
      Unfortunately, Cart2Cart service does not migrate clients credit cart information and passwords. Migration process goes on a separate Amazon EC2 server and all data will be cleared after finishing process. Also all connections goes through secure HTTPS protocol and only authorized staff have access to the migration process.
      Customer accounts will be migrated from source cart to target. Cart2Cart doesn’t have an option to migrate the passwords, because they are encrypted in most shopping carts by some specific way. Your clients should use Password Recovery tool on your target shopping cart to access their accounts. Although, orders history will be available for them.
      Best regards,
      Mariana Onysko

  7. Wadii
    May 5, 2011 at 10:55 pm /

    has anyone experienced a Prestashop => Magento migration ? Any feedback?

    And Concerning the customers passwords migration, i came up with a solution , but it is from Prestashop to Magento , i will explain:

    Magento password encryption is : MD5 + SALT , which means they add a random word to each password , and then encrypt it using MD5.
    Example :

    Your password : mypass
    Random word : whatever
    SALT : whatevermypass
    CONVERT MD5 : FKEOR54SfRrRrg59 (example)
    Password stored: FKEOR54SfRrRrg59:whatever

    concerning Prestashop it is the same algorithm md5 + salt , the unique difference is that they use the same salt word for all password and that word is placed in a the config file (Cookie_Key).

    So after the Prestashop => Magento migration ,i’ve just added that salt word to the stored hashed passwords using a sql query

    Update YourTable set Password = concat(Password , ‘:SALTWORD’)

    I hope this can help you.

  8. Charlie
    May 25, 2011 at 4:32 am /

    What was your solution to the attributes issue and would you mind posting or describing in more detail the SQL call you used to fix the catalog_product_relation table issue?

  9. Wadii
    June 3, 2011 at 1:16 am /

    Why do they have to store the links in two tables????????????!
    I have the same problem , Everything seems good eventhought i have no row on catalog_product_relation, i was wondering how the products are linked i just knew about the second table existence.

    Can this affect my website or bring problems? the unique thing strange which seemed was : the configurable product quantity , it was a random number , but that doesnt make any problem because its the simple products quantities that matters.

    Can you explain to me what problem can this make? i did run the query i still have the configurable product quantity random, but once i click on Save product in the back office it gets 0 which is the good value.

    Thank you.

  10. Wadii
    June 3, 2011 at 2:11 am /

    I asked Cart2Cart service they told me that catalog_product_relation isnt for Configurable/Simple products associations , it is used for another purpose!!!!!

  11. Charlie
    June 3, 2011 at 2:33 am /

    I did the cart2cart migration a few months ago and the catalog_product_relation table seemed to be just fine however due to the immense number of automatically generated attributes and attribute sets I have had to spend the past week manually renaming and reassigning attributes and sets.

    While I didn’t want to complain at first, now I am confident that fixing cart2cart’s migration quirks has cost me more time than if I had manually moved every product myself. They claim to have updated the service since I used it however given the convoluted steps necessary to repair all this I’m skeptical that they’d get it right.

    Their customer service is to be expected. They are 8 or 9 hours ahead there so there’s usually at least a half-day delay in communicating, and from what I can tell they have a non-technical english representative that didn’t develop the service so they can’t really answer technical questions.

    My advice, if you come across this post and you’re looking for a way to migrate shopping carts (I did OSCommerce to Magento), is to just do the database work yourself. It’s a daunting task but the risk is you spend money on cart2cart and end up having to do more dB work.

  12. Wadii
    June 3, 2011 at 3:38 am /

    yes concerning products its a pain in the ass!!!
    Price problems , attributes , images affected only to configurable products , stock problems… but to be frank , concerning the customers and order and images… its all fine , specially that orders are the hardest feature,
    so from your answer is it ok if i have the catalog_product_relation table empty?

  13. Wadii
    June 3, 2011 at 10:45 am /

    By “the expected data” you mean the same lines as catalog_prodct_super_link right?
    thank you Robert

  14. Wadii
    June 3, 2011 at 11:05 am /

    And concerning the problem you faced about product doesnt display out of stock after last item purchase , i guess it is due to the configurable product quantity which was a value > 0, we had the same conflict and we fixed it just by the data reindexaction… to be frank i did a lot of manual migrations for discounts , related products , url mapping , pictures positions (Anyone want these solutions can contact me) , and the store now is doin’ great , but i’m still confused about two things :

    – catalog_product_relation : do i have to fill it or not.
    – The configurable product for most of products which is a value > 0 ,and i do have to save the product so as it takes 0 value , but despite of that it doesnt occur any problem!!!

    Thank you guys for the help

  15. Wadii
    June 3, 2011 at 7:09 pm /

    Thank you very much!

  16. Wadii
    June 7, 2011 at 3:47 am /

    Hi Robert! what was your solution concerning the thousand attributes? is your store working with that? or did you rename all of them???

    1. Charlie
      June 7, 2011 at 5:24 am /

      My solution was a set of custom scripts I wrote that deleted unused attributes and attribute sets, then manually renamed them one-at-a-time. There were something like 200 items that I ended up manually renaming, it couldn’t have taken more than 30-45 minutes though designing and testing the scripts took 4-5 full work days. I don’t want to post all the code because it took me a lot of work and misuse means a forever ruined dB.

      However here is a script that lists all the attribute sets, their custom attributes, the products that use that set and the attribute options for those products (note: script of course needs mysql connect with your db login at top):

      $sql = "SELECT * FROM `eav_attribute_set` WHERE `entity_type_id`=4 AND `attribute_set_id`>$att_set_id AND `attribute_set_id`!=4 ORDER BY `attribute_set_id` ASC"; // Get all attribute sets
      $e_att_set_res = mysql_query($sql);
      //echo $sql;
      while($e_att_set = mysql_fetch_array($e_att_set_res))
      	$att_set_id = $e_att_set['attribute_set_id'];
      	$att_set_name = $e_att_set['attribute_set_name'];
      	$att_ids = array();
      	$sql = "SELECT * FROM `catalog_product_entity` WHERE `attribute_set_id`='$att_set_id'";
      	$cat_prod_ent_res = mysql_query($sql);
      	//echo $sql;
      	if($att_set_id != 4) // If not the default set
      		if(mysql_num_rows($cat_prod_ent_res) > 1)
      			echo "<br />$att_set_id $att_set_name <br />";
      			$show_atts = true;
      			// for each product in the attribute set
      			while($cat_prod_ent = mysql_fetch_array($cat_prod_ent_res))
      				$ent_id = $cat_prod_ent['entity_id'];
      				$type_id = $cat_prod_ent['type_id'];
      				if($type_id == "configurable")
      					// Get all attributes for this product
      					$att_ids = array();
      					$att_types = array();
      					$sql = "SELECT * FROM `catalog_product_super_attribute` WHERE `product_id`='$ent_id'";
      					$cpsa_res = mysql_query($sql);
      					while($cpsa_arr = mysql_fetch_array($cpsa_res))
      						$att_id = $cpsa_arr['attribute_id'];
      						$att_ids[] = $att_id;
      						$sql = "SELECT * FROM `eav_attribute` WHERE `attribute_id`='$att_id'";
      						$cpea_res = mysql_query($sql);
      						$cpea_arr = mysql_fetch_array($cpea_res);
      						$att_code = $cpea_arr['attribute_code'];
      						$att_types[] = $cpea_arr['backend_type'];
      						echo "att: $att_id $att_code <br />";
      						$show_atts = false;
      					$sql = "SELECT `value` FROM `catalog_product_entity_varchar` WHERE `entity_id`='$ent_id' AND `attribute_id`='60' LIMIT 1";
      					$cpev_res = mysql_query($sql);
      					$cpev_arr = mysql_fetch_array($cpev_res);
      					$prod_name = $cpev_arr['value'];
      					echo "$ent_id $prod_name ";
      					$i = 0;
      					foreach($att_ids as $att_id)
      						$att_type = $att_types[$i++];
      						if($att_type == "varchar")
      							$valtable = "catalog_product_entity_varchar";
      						else if($att_type == "int")
      							$valtable = "catalog_product_entity_int";
      						$sql = "SELECT * FROM `$valtable` WHERE `attribute_id`='$att_id' AND `entity_id`='$ent_id'";
      						$cpe_res = mysql_query($sql);
      						$cpe_arr = mysql_fetch_array($cpe_res);
      						$att_val = $cpe_arr['value'];
      						$sql = "SELECT * FROM `eav_attribute_option_value` WHERE `option_id`='$att_val'";
      						$eaov_res = mysql_query($sql);
      						$eaov_arr = mysql_fetch_array($eaov_res);
      						$option_val = $eaov_arr['value'];
      						echo " $option_val";
      					echo "<br />";
      			<form method="post">
      			Rename set: <input size="75" type="text" value="<?php echo $att_set_name; ?>" name="att_set_name" /><br />
      			<input type="submit" value="click to rename" name="rename" /> <input type="submit" value="skip" name="skip" /><br />
      			<input type="hidden" value="<?php echo $att_set_id; ?>" name="att_set_id" />
      1. Wadii
        June 7, 2011 at 6:29 am /

        Thank you very much , gonna use that tomorrow… i was trying to rename the attributes generated by Cart2Cart but i’ve noticed once i rename an attribute from the bakc office , a problem occurs and then when i consult the product page i see no dropdown lists… some products did show up OUT OF STOCK its like it doesnt recognize its simple products anymore , have any idea about that? is it impossible to rename Cart2Cart generated attributes?

        1. Charlie
          June 7, 2011 at 10:16 am /


          The fields I changed in the back end (using phpMyAdmin at first to test) were the “attribute_code” in the “eav_attribute” table and the “attribute_set_name” in the “eav_attribute_set” table. For me, changing only those fields produced the desired results. (This might be relevant for you at some point too, Robert, since Magento doesn’t offer a way to change the attribute codes from the cart2cart generated ones).

          Only change the attribute code and set name, don’t touch the other fields especially the “id” fields, and remember the attribute code has to be unique with only letters numbers and underscore no spaces! Hopefully I’m not missing something and this has the same effect on your system. I’m on 1.4.2 btw.

          The above script I posted should help you get a handle on what attributes and sets go where, assuming it functions the same on your system.

  17. Wadii
    June 7, 2011 at 7:24 pm /

    Thank you , but the problem that i have got is with the frontend label , the attribute label showing up on the front end…. i really cannot change it , thank you once again Charlie

  18. Mariana Onysko
    June 7, 2011 at 7:44 pm /

    I suggest you to manage attribute sets in Magento via Store Manager for Magento from MagneticOne ( and make your business tasks automatic and fast in resolve.

  19. Wadii
    June 7, 2011 at 8:13 pm /

    Yes yes , but technically speaking this shud happen , as i’ve updated the frontend_label column value in eav_attribute , went to a specific product checked the default attribute label , but it stills display the very first value… it is really strange!!!
    I was able to change the “attribute_code” in the “eav_attribute” table and the “attribute_set_name” in the “eav_attribute_set” but the not the frontend_label!

    thank you for the suggestion Mariana

  20. Wadii
    June 7, 2011 at 8:42 pm /

    Allright i was able to do it , by changing an instruction on configurable.phtml $attribute->getLabel() to $_attribute->getProductAttribute()->getStoreLabel()

  21. Wadii
    June 7, 2011 at 9:01 pm /

    So i checked that when editing an attribute (frontend label , code , attributeset name) from the database everything works perfect , but once i go on the attribute page on the back office , i do nothing but just clicking on SAVE and the product is messed up , on the front end i dont see the drop down lists of the product even the relation between the product and its simple produts is gone… any idea?

  22. Wadii
    June 13, 2011 at 9:57 am /

    Ok if anyone has faced the problem it is due to this:
    When i click Save attribute , the backend_type column in eav_attribute table changes from varchar to int.
    The solution was a sql event that runs on schedule in order to update the value to VARCHAR again.

  23. Eddie
    June 21, 2011 at 9:15 pm /

    I used Cart2Cart to migrate from standard Zen-Cart to Magento (, with about 100 simple products, and all wen very well. I was very pleased with the process and outcome.

  24. carlos
    July 12, 2011 at 1:22 pm /

    I think I will transfer from ubercart to Magento using cart2cart service very soon.
    I will post my experience when it’s all done.
    I do have vast of complex products, which made me a little hesitate.

  25. Mariana Onysko
    August 20, 2011 at 1:44 am /

    Good news!

    We have fixed this stuff:

    – Configurable product import adds multiple attributes and attribute sets for the same attribute
    – Additional category tab created

    We constantly work to make Cart2Cart better for your business needs.

  26. dRock
    September 14, 2011 at 9:30 pm /

    We just did a migration from Ubercart (module for the Drupal CMS) to Magento and are fairly pleased with the results. We did products only and didn’t touch customers or order history. It’s not hard to see how difficult it can be for someone like Cart2Cart to be able to handle all of these different scenarios from multiple systems.

    A write up of our experiences here:

  27. Edvin
    October 18, 2011 at 3:58 am /

    I made the mistake of using this service and all it resulted in was a complete mess. It’ll take you longer to clean it up afterwards than to hire a freelance guy to do it from the start. The script is’nt working properly and the support staff doesnt seem to understand what you’re saying. Maybe you could be one of the lucky ones that get a successful migration but chances are that you’re left with a messed up database and just have wasted a lot a time.

  28. Mariana Onysko
    October 18, 2011 at 10:43 pm /

    Hi Edvin,

    We are extremely sorry for what you had to go through. We would greatly appreciate if you could leave us your feedback and we’d make sure to work on the things you’d like us to improve. If there’s anything you’d like to add, please complete the dedicated complaint form here:

    At times, there happens to be an issue that is hard to resolve on the spot, that is why we are always open for your comments and suggestions. Please let me know if there’s anything we can do to make it work for you in the future. Cart2Cart is constantly striving for improvement. We appologize for any kind of inconvenience that might have been caused by it.

    Thank you!

  29. Bill
    March 29, 2012 at 7:16 am /

    My experience is fairly inline with others.

    In 2010 we did a manual Cart2Cart migration from XCart to Magento 1.3 multi-store installation. Orders good, customers good, products passable. It could be that my expectations for a migration between two different stores was pretty low but we worked with it.

    We’ve just had Cart2Cart perform an assisted migration, (hoping to make the shortcomings of the first go away) from Magento 1.4 to Magento 1.6. You’d think a migration between the same system would be easy, but… Orders good, customers good but the products, categories and attributes, are a complete mess. They say on their site that they can handle these things but THEY CAN’T. Don’t expect them to do it right! You will be dissapointed.

    Here’s part of their reply:
    …”This is connected with the fact there are four attribute sets at your Magento Target store and our service does not allow to work with this kind of issue.”…

    I’m going to dig through the mess and find out if it was worth it or not. It might be time to write my own migration script, (do it for every other site I manage).

    I’ll try to keep ya’ll updated.

    Have Fun – Bill

    1. Cart2Cart Team
      April 4, 2012 at 2:24 am /

      Hi all,

      Bill has completed his migration to the brand new Magento installation. During the demo migration a limited number of products, customers and orders has been moved to the new cart free of charge. Demo migrations are always performed as trials before the actual full migrations to let each client see how the end results would look like. As a result, all the customers and orders have been migrated correctly, while some product information has been disrupted. We’ve informed Bill that some of the product information could not be migrated correctly and offered our services to customize the migration that could possibly correct some of the issues. Bill decided to go ahead with the migration on his own, though we’ve warned about the possible issues. Consequently, when the full migration was completed, product information was migrated incorrectly.

      We’ve offered Bill to customize his migration and fix some of the issues with his product info and restart the migration for him.

      Unfortunately, Bill was not open for further communication. Therefore, we could not provide the best service for the issues arisen.

      In any case, we are always willing to go an extra mile for Bill and all our clients. So, please feel free to contact us at any time and request assistance with the results of your migration. We will make sure to do everything on our part to make your store run smoothly on your brand new shopping cart.

      With regards,
      Cart2Cart Team

  30. MagneticOne
    November 8, 2012 at 11:51 pm /

    On November, 8 MagneticOne, developer of Cart2Cart turns 11.

    On this occasion Cart2Cart service have a special treat!
    Fund your Cart2Cart account and add 25% of the sum to your balance. + Get Daily Full Store Functionality Report for only $18.99!

    The offer is valid from November, 7 to November, 21 , 2012
    Hurry up to benefit from your birthday presents!

    Get more details here:

  31. Hung Nguyen
    Hung Nguyen
    May 27, 2014 at 6:13 am /

    Have anyone try this extension?

    It also can do the job and its great!

    1. Mario
      October 24, 2015 at 2:21 am /

      I’ve planned using Lit, but to my disappointment I faced with some hidden fees, for custom fields migration in particular. This unfortunate fact is somewhat discouraging you know, so I’m thinking of giving Cart2Cart a try now.


Add a Comment & Join the Discussion

Insert small snippets of code by using [code]{your_code_here}[/code]
For larger code blocks please use and paste your link.

You may also use the following HTML in your comment: <a href="" title=""> <abbr title="">
<acronym title=""> <blockquote cite=""> <cite> <em> <strike> <strong>