WooCommerce to Magento Migration

Latest update on how to migrate WooCommerce to Magento (2018)

by admin

There are a lot of ecommerce platforms being developed recently. Among them, WooCommerce and Magento are the two prominent leaders in the Ecommerce race.

Both of them allow you to get free access to the core system, easily add and manage as many products, flexible CMS, advanced SEO, and significant community.

Both of them allow you to get free access to the core system, easily add and manage as many products, flexible CMS, advanced SEO, and significant community.

migrate WooCommerce to Magento

Magento VS. WooCommerce

According to the June 2015 analysis of AheadWorks: The USA’s share of Magento CE was 38% (Stores by Countries), it was 10% for the UK, while in February 2016 it was 14% for the USA, 13% for the UK.

In the case of Magento Enterprise, in June 2015 it was mainly used in the UK (27%), and secondly in the USA (13%), but in February 2016 (after only half a year) the situation is entirely different: UK: 14%, USA: 57%.

Besides, Woocommerce also proves that it is one of the most popular Ecommerce platforms in the world with imposing figures of global users.

Why should we need to migrate from WooCommerce to Magento?

Although both are open source, Woocommerce is not as highly regarded as Magento. If your goal is to maximize your revenue and bring the best experience to your customers, Woocommerce cannot compare to Magento.

WooCommerce is not built for scale up and does not have a CRM, ERP,… system as powerful as Magento, which your business needs in the future.  That is why we need to migrate from WooCommerce to Magento.

As you’ve known already, migration from WooCommerce to Magento is not a simple work, but it is worth if your business is growing and expand. In this post, we will recommend you some tips to help migrate from WooCommerce to Magento.

What checklist should you consider when transforming from WooCommerce to Magento?

  • Product Elements: ID, SKU, Product Name, Description, Quantity, Stock Status, Product Attributes, Prices Images, Product links, Variants, Product-types
  • Categories: Name, Description, Base Image, URL, Title, Description
  • Manufacturers: Name, Image
  • User Data: Password, Billing Adress, Shipping Address
  • Orders: Order Number, Date, Status, Invoice, Credit Memo, Shipment
  • Reviews: Rating, Review, Status, Name
  • Taxes: Rule, Rate, Class
  • Coupons: Name, Rule, Number of uses
  • Multi-store
  • Multi-languages
  • SEO Attributes Meta Title, Meta Description, URL, Robots.txt, Sitemap,…
  • 301 Redirects
  • Data Security. Check our article about Magento 2 Security
  • Downtime between Migration Time
  • Clear existing data

What should you need to pay attention when implementing migrate WooCommerce to Magento?

Analyze pre-migrating

It is recommended that you choose to migrate at the time the traffic on your site is the lowest, usually at midnight, so as not to overwhelm the site’s revenue.

Additionally, you should also let your customers know when the site will be migrated. Besides, you should look for a good hosting provider.

Creating a Backup of all data

The main reason for data backup is to save essential files if something crashes or migration failure occurs during the migration process.

In case your website has many products, the relocation process can be more complicated and take more time.

So we should have a backup, in case the worst happens. Refer to the following link for how to back up

Migrating Steps

After completing the backup process, we should move on to the transfer phase.

Product Elements is one of the most critical factors out of the to-do things.

The products in Magento are much more complicated than WooCommerce. So, to have the right solution and advice for product migration, you need help from a Magento Solution Specialist.

At BSSCommerce we provide solutions for you. Please contact us to get more consultation from Magento certified developers and specialists.

Next, the process of transferring is respectively customer information, order information, payment information, checking and optimization

WooCommerce to Magento Migration tips – Moving User Data

Recently, we worked on a project helping our client migrate user accounts from his old site which is a WooCommerce website to a new site based on Magento platform.

Our client’s requirement as follows:

“Please help migrate user accounts from WordPress to Magento. Information that needs migrating is email and shipping/billing details.”

Some developers might come up with a costly solution that requires an expensive module for this.

But we sorted out this problem right away using this below simple solution. Let’s try it out!

Step 1. Export data from WooCommerce

Then, select WooCommerce on the left-handed navigation and click Reports under it. From the User data section, choose user’s information you want to export then hit the Quick Export button

Before exporting, please remember to back up all user accounts on your WordPress site.

After all, name the exported file as customer.csv

migrate user account from woocommerce to magento

STEP 1. EXPORT DATA FROM WOOCOMMERCE

Step 2: Import user accounts into YOUR Magento site

First of all, you need to download a free import export review module

https://www.magecloud.net/marketplace/extension/product-review-import-export/

Then, install the module on your Magento site as its installation guide.

Access to FTP account via FileZilla and create a new file as follows:

app/code/local/MK/Reviewexport/Model/Convert/Adapter/Customer.php:

<?php
class MK_Reviewexport_Model_Convert_Adapter_Customer extends Mage_Catalog_Model_Convert_Adapter_Product
{
   public function saveRow( array $data )
   {
     $phone = preg_replace('/\s/', '', $data['Phone (Billing)']);
     $a = strlen($phone);
     $customer = Mage::getModel('customer/customer');
 

     $password = substr($data['Phone (Billing)'], $a-7,$a);;
     $email = $data['User Email'];
 
    //add your logic add webiste id for customer ( example)
    switch($data['Country (Billing)']) {
       case 'MY' :
       $websiteId = 1;
       break;
       default :
       $websiteId = 2;
       break;
    }
    //end logic

    $customer->setWebsiteId($websiteId);
    $customer->loadByEmail($email);
 
    if(!$customer->getId()) {

    $customer->setEmail($email);
    $customer->setFirstname($data['First Name (Billing)']);
    $customer->setLastname($data['Last Name (Billing)']);
    $customer->setPassword($password);


    try {
       $customer->save();
       $customer->setConfirmation(null);
       $customer->setWebsiteId($websiteId);
       $customer->save();

    }

    catch (Exception $ex) {
    }

    if($data['Country (Shipping)'] != '') {
       $_shipping_address = array (
       'firstname' => $data['First Name (Shipping)'],
       'lastname' => $data['Last Name (Shipping)'],
       'street' => array (
          '0' => $data['Address 1 (Shipping)'],
          '1' => $data['Address 2 (Shipping)'],
          ),
 
          'city' => $data['City (Shipping)'],
          'region_id' => '',
          'region' => '',
          'postcode' => $data['Postcode (Shipping)'],
          'country_id' => $data['Country (Shipping)'], /* Croatia */
          'telephone' => $data['Phone (Billing)'],
          );

       $customAddress = Mage::getModel('customer/address');
       $customAddress->setData($_shipping_address)
       ->setCustomerId($customer->getId())
       ->setIsDefaultShipping('1')
       ->setSaveInAddressBook('1');
       try {
       $customAddress->save();
     }
       catch (Exception $ex) {
    }
   }

   if($data['Country (Billing)'] != '') {
   $_billing_address = array (
   'firstname' => $data['First Name (Billing)'],
   'lastname' => $data['Last Name (Billing)'],
   'street' => array (
   '0' => $data['Address 1 (Billing)'],
   '1' => $data['Address 2 (Billing)'],
   ),

 'city' => $data['City (Billing)'],
 'region_id' => '',
 'region' => '',
 'postcode' => $data['Postcode (Billing)'],
 'country_id' => $data['Country (Billing)'], /* Croatia */
 'telephone' => $data['Phone (Billing)'],
 );

 $customAddress = Mage::getModel('customer/address');
 $customAddress->setData($_billing_address)
    ->setCustomerId($customer->getId())
    ->setIsDefaultBilling('1')
    ->setSaveInAddressBook('1');

 try {
 $customAddress->save();
  }
  catch (Exception $ex) {
  }
 }

 Mage::getSingleton('checkout/session')->getQuote()->setBillingAddress(Mage::getSingleton('sales/quote_address')->importCustomerAddress($customAddress));
   }
  }
 }

Next, copy customer.csv file to /var/import/ by FileZilla.

After all, move to Magento Admin Panel => System => Import/Export => Dataflow – Advanced Profiles

import user account to magento

STEP 2: IMPORT USER ACCOUNTS INTO MAGENTO SITE

Choose Add New Profiles. Then, fill in the required fields as follows:

+ Action Name: import customer WooCommerce

+ Actions XML:

<action type="dataflow/convert_adapter_io" method="load">
   <var name="type">file</var>
   <var name="path">var/import</var>
   <var name="filename"><![CDATA[customer.csv]]></var>
   <var name="format"><![CDATA[csv]]></var>
</action>

<action type="dataflow/convert_parser_csv" method="parse">
   <var name="delimiter"><![CDATA[,]]></var>
   <var name="enclose"><![CDATA["]]></var>
   <var name="fieldnames">true</var>
   <var name="store"><![CDATA[0]]></var>
   <var name="adapter">MK_Reviewexport_Model_Convert_Adapter_Customer</var>
   <var name="method">parse</var>
</action>

Don’t forget to hit Save Profile button.

Go back to Advanced Profiles, select newly added profile then Run profile in a pop-up.

You should now see all user accounts from WooCommerce on your new Magento store.

Please try our solution and let us know if this works for you!

Next Reading Suggestions

© 2019 BSS Commerce owned by THANH CONG INTER ., JSC. All Rights Reserved.
Business registration certificate no. 0106064469 issued by Hanoi Department of Planning and Investment on 19 December 2019.
Legal Representative: Mr. Nguyen Quang Trung.