SlideShare a Scribd company logo
1 of 33
Tadhg Bowe | Screen Pages | November 2016
Mage Titans 2016 - Manchester
Tadhg Bowe | Screen Pages | November 2016
 My name is Tadhg. I’m Irish! That’s all you need to know for now.
Who am I?
Tadhg Bowe | Screen Pages | November 2016
 300+ e-commerce websites since 1997
 Magento specialists since 2009 (ca. 100 implementations)
 Magento 2 certified
 It’s a cool place to work 
Where I work. Some Screen Pages key facts
Tadhg Bowe | Screen Pages | November 2016
THANK YOU FOR YOUR FEEDBACK…
After this talk was given a couple of great people in our community
highlighted some potential mistakes in my presentation. How cool is that! So I’ve
highlighted those areas with an [EDIT] tag.
Data Migration is still very much new. We are all learning. It’s why I love our
Magento community. Don’t look at mistakes as a negative. Some of the most
famous sports people on our planet didn’t get where they are by being perfect.
They got there by making mistakes and learning from them!
This presentation is more like a story or a diary. So for those of you who didn’t
see my talk it should still read quite well 
Cheers.
Tadhg
Tadhg Bowe | Screen Pages | November 2016
 Why talk about Data Migration!
 What is it and how does it work.
 How do we plan for it.
 What actually happened when put to the test!
 And then what…
So what’s the story then? The agenda is:
Tadhg Bowe | Screen Pages | November 2016
 Yes we actually have an Enterprise client migrating from Magento 1
to Magento 2. Here are some stats:
 Magento 1 version 1.13.0.2
 21000+ customers
 5000+ products
 45000+ sales orders
 100000+ quotes
 15+ third part extensions
 40+ modules written in-house
 So as you can see it’s a nice site to work with. Nothing too
complicated.
Why stand up here and talk about Data Migration?
Tadhg Bowe | Screen Pages | November 2016
 When the M2 project kicked off “data migration” was the hot topic
of conversation!
 We knew Magento had a tool already available to help. So we had to
find out did this data migration tool from Magento actually work?!
 Confession: I have not looked into any other migration tools (well
okay I did try one but it crashed). But if Magento produces one you'd
be pretty confident it works right?! 
 QUESTION:
How many people have used/tested the data migration tool?
 So what is Magento’s data migration tool…
Early on…
Tadhg Bowe | Screen Pages | November 2016
 RTFM – Read The Fantastic Manuals (and take your time!):
http://devdocs.magento.com/guides/v2.0/migration/bk-migration-guide.html
 The migration tool is split into three phases (or “modes”):
1. Configuration settings
2. Data
3. Delta / Incremental (that is, changes since the last data run)
How Magento’s Data Migration Tool works:
Tadhg Bowe | Screen Pages | November 2016
Steps to migratng data:
Important:
3rd Party Extensions
Migration Dry Runs
Tadhg Bowe | Screen Pages | November 2016
To install:
 To Install Magento’s migration tool:
> composer config repositories.data-migration-tool git
https://github.com/magento/data-migration-tool
> composer require magento/data-migration-tool:2.1.0
 Please Note: Straight after v2.1.0 was released the data migration
tool was not available. It took about 7-10 days for it to become
available. So you might see this:
“The requested package magento/data-migration-tool could not be found in
any version”
Tadhg Bowe | Screen Pages | November 2016
How to configure/run the Data Migration Tool:
Others files include map_eav.xml, map_customer.xml, map_sales.xml etc…
Tadhg Bowe | Screen Pages | November 2016
 Find the version folder you are migrating from.
 Create a config.xml file (rename the .dist file already there).
 In config.xml:
• Make note of the steps defined (settings, data, delta).
• Define the source and destination databases
• Decide which options apply. That involves renaming the mapping files
you need.
• The last option needed is the Magento 1 crypt key (in local.xml).
[EDIT – Mmm… editing files in vendor/magento!? If you plan to commit these files
to your repository then you will want to explore storing these in app/code. But the
data migration tool only needs to be run once so does it need to be committed?
Are you only running this locally? ]
How to confgure/run the Data Migration Tool:
Tadhg Bowe | Screen Pages | November 2016
Example config.xml file:
Tadhg Bowe | Screen Pages | November 2016
 Settings - stores; websites; and different system configuration
(core_config_data):
> bin/magento migrate:settings
/sites/m2migration/vendor/magento/data-migration-tool/etc/ce-to-
ce/1.9.2.4/config.xml
 Data – eav, categories, products, customers, orders, quotes, wishlists,
ratings, reviews etc...
> bin/magento migrate:data /sites/m2migration/vendor/magento/data-
migration-tool/etc/ce-to-ce/1.9.2.4/config.xml
 Delta - migrate only the changes made in Magento 1 since the last time
you migrated data.
> bin/magento migrate:delta /sites/m2migration/vendor/magento/data-
migration-tool/etc/ce-to-ce/1.9.2.4/config.xml
How to run the Data Migration Tool:
Tadhg Bowe | Screen Pages | November 2016
 First of all we had to find out does it work!?
Created a new M2 2.0.7 CE and M1 1.9.2.4 CE.
In M1 we created some extra store views, configurable products,
customers and generated some sales orders.
And yes! It all worked. We can use it 
 So when do we run the data migration? What’s the best plan of attack?
Start testing early!
 Does M2 destination database need to be empty? All the entity IDs like
Customer Entity ID, Product Entity ID need to carry across exactly the
same.
 Take backups of your database (source and destination). Take backups as
you go along too e.g. after settings migrate, after data migrates. Use a
separate copy of source DB for migration.
Planning Data Migration:
Tadhg Bowe | Screen Pages | November 2016
Happy so far? :-0
This chap is studying Magento’s “Fundamentals of Magento 2 Dev” online course!
Tadhg Bowe | Screen Pages | November 2016
 So our real world client – M1 1.13.0.2 to M2 2.1.0. Let’s go!
 Settings: Yes migrated fine!
 Data: No! Okay so what errors did we get:
Source documents are not mapped:
aw_core_logger,aw_followup_config…
Destination documents are not mapped:
magestore_storelocator_holiday,magestore_storelocator_image…
Source fields are not mapped. Document: catalogrule. Fields:
points_action, points_currency_id…
Now the fun begins!!
Tadhg Bowe | Screen Pages | November 2016
Destination fields are not mapped. Document: admin_user. Fields:
tfa_login_enabled, tfa_login_secret…
 These can all be fixed in map.xml. You can decide to “ignore” fields
completely or “move” them. Others like the following:
Source fields are not mapped. Document: sales_flat_order. Fields:
exported,export_attempts…
Destination fields are not mapped. Document: sales_order. Fields:
prima_export_status
Those can be fixed in the map_sales.xml. Handy tool here:
http://oyenetwork.com/articles/data-migration-to-magento2-case-study/
 Once you’ve mapped all those tables and fields in the correct xml
files, rerun the data migration command and off we go again!
There’s more…
Tadhg Bowe | Screen Pages | November 2016
 Here’s another issue:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
’first.last@somewhere.com' for key
'CUSTOMER_ENTITY_EMAIL_WEBSITE_ID'
 The above meant we had duplicate customer email addresses for the
same website in the source DB. Oh Oh!
 This was fixed by simply deleting the unwanted accounts via the M1
source Admin Panel.
 Okay it’s not nice seeing these but at least the migration tool picked
them up. Clean data remember!
Continuing on…
Tadhg Bowe | Screen Pages | November 2016
 But then:
[Exception]
Notice: Undefined offset: 1 in
/…/sites/client_site/vendor/magento/data-migration-
tool/src/Migration/Step/Eav/Data.php on line 433
 The above is related to function moveAttributeToGroup??? After some
investigation:
That horrible sinking feeling of
OMG IT’S NOT GOING TO WORK…
But then this…
Tadhg Bowe | Screen Pages | November 2016
 So the source EAV attribute table contains over 800 rows. That’s not
normal for a Magento 1.13 install. Oh oh it’s an upgrade! And it
looked like an upgrade from a CE v1.6 (ish).
Is that compatible… well...
 Should we try continue and shoehorn all this data in? It’s not really
how M2 structures its EAV nowadays. Nothing matches up.
 So let’s be “Data Smart”. We want clean data, data that M2 expects
to see. Let’s avoid junk! M2 doesn’t need any more headaches to
deal with 
 So we reviewed all the source data. What were the must haves?
What data is the client reviewing themselves? Is there data we don’t
actually need to migrate across? So rather than “hitting and hoping”
on the data migration step we’re now approaching it correctly.
Maybe it was a blessing in disguise that it failed!
Massive rethink!
Tadhg Bowe | Screen Pages | November 2016
Let’s be data smart…
Tadhg Bowe | Screen Pages | November 2016
 So what did we do? Here were the main players:
 EAV not being migrated. It simply didn’t work.
 Catalog Products and Categories: Being reviewed by client. This
project was a redesign too. For example things like product images
were being revisited. Okay lets reimport via Product Import. Not
using data migration.
 Reviews: Import via a Magento 2 third party extension. M1 export
extension installed.
 Quotes: Ignored.
 CMS pages and blocks: Ignored.
 Wishlist: Ignored.
 Only migrating Customers, Newsletters, Sales Orders (including
shipments, invoices & credit memo) Cool!
Yes let’s be Data Smart…
Tadhg Bowe | Screen Pages | November 2016
How was this achieved:
 Edit config.xml file and commented out the steps we no longer
wanted e.g. EAV step, Ratings step, Tier Prices step.
 Migrate data into separate empty M2 database. Then copy only the
files we need across to go-live database.
M1 DB
M2
Migration
Empty DB
M2 GO LIVE
DB
DATA
MIGRATION
TOOL
ONLY COPY
TABLES YOU
NEED!
AND IT WORKS!
Tadhg Bowe | Screen Pages | November 2016
 So it worked for us! We only copied the DB tables we needed i.e.
Customers, Sales Orders, Newsletter.
 But hold on! What about Customer EAV for example? What about any
bespoke customer attributes in an M2 third party module that also
existed in M1!?
 For example we have a customer third party EAV attribute
“integration_customer_number” (type varchar). It exists in our
source and destination. The data migrates across. You just need to
make sure the attributes IDs match up. Why? The migration tool
copies across the data assuming the EAV attributes have also come
across. In this example our final go-live DB attribute_id was 177. The
source attribute_id was 987!
Success! But a few little tweaks…
Tadhg Bowe | Screen Pages | November 2016
 By using the main GIT master (go live) branch on the migration DB it
ensures all DB fields are in place before data migrated. And if
everything is mapped correctly (xml files) then it should go pretty
smoothly.
 In the end we decided not to run the Migration Settings step! One of
our store views in M1 was being moved to a new website in M2.
Another store view was being removed completely. So why bring
across settings we no longer need. It also gave us an opportunity to
take a fresh look at all the client’s settings – and it’s a chance to
learn the new M2 Admin Panel 
 How long did the data migration step take: Roughly 16 minutes (Mac
Mini 3.0 GHz Intel "Core i7” 8GB RAM PHP 7.0.9 Percona MySql 5.6.25).
 That means for go live deployment: no Delta migration step. The data
migration step can easily be completed while a holding page is up 
Some more notes…
Tadhg Bowe | Screen Pages | November 2016
 Sales Order Increment ID. There’s a new sequence table for sales
orders split by Store ID e.g. sequence_order_1. Edit this table and
set the increment ID to a value past the last Live order taken. Same
applies for invoices, shipments etc…
[EDIT – this should work if you migrate settings + data – always check]
 Just in case: If your M1 site used a prefix then in M2 that’s set in
sales_sequence_profile table which is linked to the
sales_sequence_meta table.
 I mentioned we had a shake up of store views. One of our M1 store
views no longer exists (it was a mobile view). Just be careful copying
across data where Store IDs may no longer match up.
 So what about our products and categories?
Anything else?
Tadhg Bowe | Screen Pages | November 2016
Getting ready to party…???
Tadhg Bowe | Screen Pages | November 2016
How do we migrate products and categories?
 Export all products from M1 using built in System > Export. In our case
they were all configurable & child simple products.
 Product Importing in M2 has changed. It’s now one row per product. For
configurable products we have a very busy column called
configurable_variations. For example you have something like:
sku=ASHCH060,display=1,size=6|sku=ASHCH065,display=1,size=6.5|…
We wrote a small script to export this information from M1.
 Always test with a very small subset of data first!
 Before we started importing we made sure the Increment ID
(sequence_product table) was higher than the last product ID in M1.
Nearly there!
Tadhg Bowe | Screen Pages | November 2016
 Configurable product dropdown attribute values need to be imported
first! Look at sample data modules e.g. module-catalog-sample-data,
module-configurable-sample-data for example CSV files!
 Product Reviews: We installed a free extension on our M1 site so we
could export reviews in the exact format that a purchased M2
extension needed for importing.
Will this talk ever end…
Tadhg Bowe | Screen Pages | November 2016
In Summary:
Think Data Smart
Allow plenty of time!
Plan well ahead
There are no two Magento 1 sites the same!
The Magento team are human too.
It’s very easy to be negative.
But there’s a whole lot to be positive about.
Tadhg Bowe | Screen Pages | November 2016
Finally…I shall leave you with an Irish Toast:
Thank you! See you at the bar…
@tadhgbowe

More Related Content

Viewers also liked

E-commerce Forum 2015: Digital Marketing Best Practice by Smart Insights
E-commerce Forum 2015: Digital Marketing Best Practice by Smart InsightsE-commerce Forum 2015: Digital Marketing Best Practice by Smart Insights
E-commerce Forum 2015: Digital Marketing Best Practice by Smart InsightsScreen Pages
 
Magento (David Wise)
Magento (David Wise)Magento (David Wise)
Magento (David Wise)Screen Pages
 
E-commerce Forum 2015: personalised targeting & recommendations
E-commerce Forum 2015: personalised targeting & recommendationsE-commerce Forum 2015: personalised targeting & recommendations
E-commerce Forum 2015: personalised targeting & recommendationsScreen Pages
 
ERP Data Migration Methodologies
ERP Data Migration MethodologiesERP Data Migration Methodologies
ERP Data Migration MethodologiesAhmed M. Rafik
 
Amazon payments (Sean Casey)
Amazon payments (Sean Casey)Amazon payments (Sean Casey)
Amazon payments (Sean Casey)Screen Pages
 
50 ways to increase your online sales (Roger Willcocks)
50 ways to increase your online sales (Roger Willcocks)50 ways to increase your online sales (Roger Willcocks)
50 ways to increase your online sales (Roger Willcocks)Screen Pages
 
Search Marketing update (Dan Richardson)
Search Marketing update (Dan Richardson)Search Marketing update (Dan Richardson)
Search Marketing update (Dan Richardson)Screen Pages
 
Online trends & insights (Rebecca de Freitas)
Online trends & insights (Rebecca de Freitas)Online trends & insights (Rebecca de Freitas)
Online trends & insights (Rebecca de Freitas)Screen Pages
 
A Roadmap to Data Migration Success
A Roadmap to Data Migration SuccessA Roadmap to Data Migration Success
A Roadmap to Data Migration SuccessFindWhitePapers
 
Digitalisierung sozialwirtschaft
Digitalisierung sozialwirtschaftDigitalisierung sozialwirtschaft
Digitalisierung sozialwirtschaftChristian Hartmann
 
Preparing a data migration plan: A practical guide
Preparing a data migration plan: A practical guidePreparing a data migration plan: A practical guide
Preparing a data migration plan: A practical guideETLSolutions
 

Viewers also liked (17)

E-commerce Forum 2015: Digital Marketing Best Practice by Smart Insights
E-commerce Forum 2015: Digital Marketing Best Practice by Smart InsightsE-commerce Forum 2015: Digital Marketing Best Practice by Smart Insights
E-commerce Forum 2015: Digital Marketing Best Practice by Smart Insights
 
Magento (David Wise)
Magento (David Wise)Magento (David Wise)
Magento (David Wise)
 
Mention me
Mention meMention me
Mention me
 
E-commerce Forum 2015: personalised targeting & recommendations
E-commerce Forum 2015: personalised targeting & recommendationsE-commerce Forum 2015: personalised targeting & recommendations
E-commerce Forum 2015: personalised targeting & recommendations
 
Search Marketing
Search MarketingSearch Marketing
Search Marketing
 
Bronto
BrontoBronto
Bronto
 
Brand and Soul
Brand and SoulBrand and Soul
Brand and Soul
 
ERP Data Migration Methodologies
ERP Data Migration MethodologiesERP Data Migration Methodologies
ERP Data Migration Methodologies
 
Amazon payments (Sean Casey)
Amazon payments (Sean Casey)Amazon payments (Sean Casey)
Amazon payments (Sean Casey)
 
50 ways to increase your online sales (Roger Willcocks)
50 ways to increase your online sales (Roger Willcocks)50 ways to increase your online sales (Roger Willcocks)
50 ways to increase your online sales (Roger Willcocks)
 
Search Marketing update (Dan Richardson)
Search Marketing update (Dan Richardson)Search Marketing update (Dan Richardson)
Search Marketing update (Dan Richardson)
 
Magento
MagentoMagento
Magento
 
Online trends & insights (Rebecca de Freitas)
Online trends & insights (Rebecca de Freitas)Online trends & insights (Rebecca de Freitas)
Online trends & insights (Rebecca de Freitas)
 
Data migration
Data migrationData migration
Data migration
 
A Roadmap to Data Migration Success
A Roadmap to Data Migration SuccessA Roadmap to Data Migration Success
A Roadmap to Data Migration Success
 
Digitalisierung sozialwirtschaft
Digitalisierung sozialwirtschaftDigitalisierung sozialwirtschaft
Digitalisierung sozialwirtschaft
 
Preparing a data migration plan: A practical guide
Preparing a data migration plan: A practical guidePreparing a data migration plan: A practical guide
Preparing a data migration plan: A practical guide
 

Similar to Mage Titans MCR 2016 - Data Migration from Magento 1 to Magento 2 - Tadhg Bowe

Lizards & Pumpkins Catalog Replacement at mm17de
Lizards & Pumpkins Catalog Replacement at mm17deLizards & Pumpkins Catalog Replacement at mm17de
Lizards & Pumpkins Catalog Replacement at mm17devinaikopp
 
SAP Business One Data Transfer Workbench Tool
SAP Business One Data Transfer Workbench ToolSAP Business One Data Transfer Workbench Tool
SAP Business One Data Transfer Workbench ToolCinntraInfotech
 
The biggest stores on Magento
The biggest stores on MagentoThe biggest stores on Magento
The biggest stores on MagentoDivante
 
SEO for Large/Enterprise Websites - Data & Tech Side
SEO for Large/Enterprise Websites - Data & Tech SideSEO for Large/Enterprise Websites - Data & Tech Side
SEO for Large/Enterprise Websites - Data & Tech SideDominic Woodman
 
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEO
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEOUse Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEO
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEOGerry White
 
Sales force certification-lab-ii
Sales force certification-lab-iiSales force certification-lab-ii
Sales force certification-lab-iiAmit Sharma
 
Dynamics gp insights to manufacturing
Dynamics gp insights to manufacturingDynamics gp insights to manufacturing
Dynamics gp insights to manufacturingSteve Chapman
 
Intalio Project Dogfood And Doubleshot
Intalio Project Dogfood And DoubleshotIntalio Project Dogfood And Doubleshot
Intalio Project Dogfood And DoubleshotTomoaki Sawada
 
Running a business on Web Scraped Data
Running a business on Web Scraped DataRunning a business on Web Scraped Data
Running a business on Web Scraped DataPierluigi Vinciguerra
 
shopify to magento 2 migration.pdf
shopify to magento 2 migration.pdfshopify to magento 2 migration.pdf
shopify to magento 2 migration.pdfSafcodes LLC
 
Mozilla Foundation Metrics - presentation to engineers
Mozilla Foundation Metrics - presentation to engineersMozilla Foundation Metrics - presentation to engineers
Mozilla Foundation Metrics - presentation to engineersJohn Schneider
 
Think like a developer debugging seo - be wizard 2013 rimini
Think like a developer  debugging seo - be wizard 2013 riminiThink like a developer  debugging seo - be wizard 2013 rimini
Think like a developer debugging seo - be wizard 2013 riminiDavid Sottimano
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilFabio Akita
 
Magento 2 Best Practice MLUK17
Magento 2 Best Practice MLUK17Magento 2 Best Practice MLUK17
Magento 2 Best Practice MLUK17Brent W Peterson
 

Similar to Mage Titans MCR 2016 - Data Migration from Magento 1 to Magento 2 - Tadhg Bowe (20)

Lizards & Pumpkins Catalog Replacement at mm17de
Lizards & Pumpkins Catalog Replacement at mm17deLizards & Pumpkins Catalog Replacement at mm17de
Lizards & Pumpkins Catalog Replacement at mm17de
 
SAP Business One Data Transfer Workbench Tool
SAP Business One Data Transfer Workbench ToolSAP Business One Data Transfer Workbench Tool
SAP Business One Data Transfer Workbench Tool
 
The biggest stores on Magento
The biggest stores on MagentoThe biggest stores on Magento
The biggest stores on Magento
 
SEO for Large/Enterprise Websites - Data & Tech Side
SEO for Large/Enterprise Websites - Data & Tech SideSEO for Large/Enterprise Websites - Data & Tech Side
SEO for Large/Enterprise Websites - Data & Tech Side
 
Migrating from Magento 1 to Magento 2
Migrating from Magento 1 to Magento 2Migrating from Magento 1 to Magento 2
Migrating from Magento 1 to Magento 2
 
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEO
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEOUse Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEO
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEO
 
Sales force certification-lab-ii
Sales force certification-lab-iiSales force certification-lab-ii
Sales force certification-lab-ii
 
Magento 2 Migration - features & demography 2018
Magento 2 Migration -  features & demography 2018Magento 2 Migration -  features & demography 2018
Magento 2 Migration - features & demography 2018
 
Megaventory
MegaventoryMegaventory
Megaventory
 
Dynamics gp insights to manufacturing
Dynamics gp insights to manufacturingDynamics gp insights to manufacturing
Dynamics gp insights to manufacturing
 
Intalio Project Dogfood And Doubleshot
Intalio Project Dogfood And DoubleshotIntalio Project Dogfood And Doubleshot
Intalio Project Dogfood And Doubleshot
 
Running a business on Web Scraped Data
Running a business on Web Scraped DataRunning a business on Web Scraped Data
Running a business on Web Scraped Data
 
shopify to magento 2 migration.pdf
shopify to magento 2 migration.pdfshopify to magento 2 migration.pdf
shopify to magento 2 migration.pdf
 
Blount European Web Sales Project
Blount European Web Sales ProjectBlount European Web Sales Project
Blount European Web Sales Project
 
Ibm redbook
Ibm redbookIbm redbook
Ibm redbook
 
SEO for Large Websites
SEO for Large WebsitesSEO for Large Websites
SEO for Large Websites
 
Mozilla Foundation Metrics - presentation to engineers
Mozilla Foundation Metrics - presentation to engineersMozilla Foundation Metrics - presentation to engineers
Mozilla Foundation Metrics - presentation to engineers
 
Think like a developer debugging seo - be wizard 2013 rimini
Think like a developer  debugging seo - be wizard 2013 riminiThink like a developer  debugging seo - be wizard 2013 rimini
Think like a developer debugging seo - be wizard 2013 rimini
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
 
Magento 2 Best Practice MLUK17
Magento 2 Best Practice MLUK17Magento 2 Best Practice MLUK17
Magento 2 Best Practice MLUK17
 

Recently uploaded

WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2
 

Recently uploaded (20)

WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid Environments
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration Tooling
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AI
 

Mage Titans MCR 2016 - Data Migration from Magento 1 to Magento 2 - Tadhg Bowe

  • 1. Tadhg Bowe | Screen Pages | November 2016 Mage Titans 2016 - Manchester
  • 2. Tadhg Bowe | Screen Pages | November 2016  My name is Tadhg. I’m Irish! That’s all you need to know for now. Who am I?
  • 3. Tadhg Bowe | Screen Pages | November 2016  300+ e-commerce websites since 1997  Magento specialists since 2009 (ca. 100 implementations)  Magento 2 certified  It’s a cool place to work  Where I work. Some Screen Pages key facts
  • 4. Tadhg Bowe | Screen Pages | November 2016 THANK YOU FOR YOUR FEEDBACK… After this talk was given a couple of great people in our community highlighted some potential mistakes in my presentation. How cool is that! So I’ve highlighted those areas with an [EDIT] tag. Data Migration is still very much new. We are all learning. It’s why I love our Magento community. Don’t look at mistakes as a negative. Some of the most famous sports people on our planet didn’t get where they are by being perfect. They got there by making mistakes and learning from them! This presentation is more like a story or a diary. So for those of you who didn’t see my talk it should still read quite well  Cheers. Tadhg
  • 5. Tadhg Bowe | Screen Pages | November 2016  Why talk about Data Migration!  What is it and how does it work.  How do we plan for it.  What actually happened when put to the test!  And then what… So what’s the story then? The agenda is:
  • 6. Tadhg Bowe | Screen Pages | November 2016  Yes we actually have an Enterprise client migrating from Magento 1 to Magento 2. Here are some stats:  Magento 1 version 1.13.0.2  21000+ customers  5000+ products  45000+ sales orders  100000+ quotes  15+ third part extensions  40+ modules written in-house  So as you can see it’s a nice site to work with. Nothing too complicated. Why stand up here and talk about Data Migration?
  • 7. Tadhg Bowe | Screen Pages | November 2016  When the M2 project kicked off “data migration” was the hot topic of conversation!  We knew Magento had a tool already available to help. So we had to find out did this data migration tool from Magento actually work?!  Confession: I have not looked into any other migration tools (well okay I did try one but it crashed). But if Magento produces one you'd be pretty confident it works right?!   QUESTION: How many people have used/tested the data migration tool?  So what is Magento’s data migration tool… Early on…
  • 8. Tadhg Bowe | Screen Pages | November 2016  RTFM – Read The Fantastic Manuals (and take your time!): http://devdocs.magento.com/guides/v2.0/migration/bk-migration-guide.html  The migration tool is split into three phases (or “modes”): 1. Configuration settings 2. Data 3. Delta / Incremental (that is, changes since the last data run) How Magento’s Data Migration Tool works:
  • 9. Tadhg Bowe | Screen Pages | November 2016 Steps to migratng data: Important: 3rd Party Extensions Migration Dry Runs
  • 10. Tadhg Bowe | Screen Pages | November 2016 To install:  To Install Magento’s migration tool: > composer config repositories.data-migration-tool git https://github.com/magento/data-migration-tool > composer require magento/data-migration-tool:2.1.0  Please Note: Straight after v2.1.0 was released the data migration tool was not available. It took about 7-10 days for it to become available. So you might see this: “The requested package magento/data-migration-tool could not be found in any version”
  • 11. Tadhg Bowe | Screen Pages | November 2016 How to configure/run the Data Migration Tool: Others files include map_eav.xml, map_customer.xml, map_sales.xml etc…
  • 12. Tadhg Bowe | Screen Pages | November 2016  Find the version folder you are migrating from.  Create a config.xml file (rename the .dist file already there).  In config.xml: • Make note of the steps defined (settings, data, delta). • Define the source and destination databases • Decide which options apply. That involves renaming the mapping files you need. • The last option needed is the Magento 1 crypt key (in local.xml). [EDIT – Mmm… editing files in vendor/magento!? If you plan to commit these files to your repository then you will want to explore storing these in app/code. But the data migration tool only needs to be run once so does it need to be committed? Are you only running this locally? ] How to confgure/run the Data Migration Tool:
  • 13. Tadhg Bowe | Screen Pages | November 2016 Example config.xml file:
  • 14. Tadhg Bowe | Screen Pages | November 2016  Settings - stores; websites; and different system configuration (core_config_data): > bin/magento migrate:settings /sites/m2migration/vendor/magento/data-migration-tool/etc/ce-to- ce/1.9.2.4/config.xml  Data – eav, categories, products, customers, orders, quotes, wishlists, ratings, reviews etc... > bin/magento migrate:data /sites/m2migration/vendor/magento/data- migration-tool/etc/ce-to-ce/1.9.2.4/config.xml  Delta - migrate only the changes made in Magento 1 since the last time you migrated data. > bin/magento migrate:delta /sites/m2migration/vendor/magento/data- migration-tool/etc/ce-to-ce/1.9.2.4/config.xml How to run the Data Migration Tool:
  • 15. Tadhg Bowe | Screen Pages | November 2016  First of all we had to find out does it work!? Created a new M2 2.0.7 CE and M1 1.9.2.4 CE. In M1 we created some extra store views, configurable products, customers and generated some sales orders. And yes! It all worked. We can use it   So when do we run the data migration? What’s the best plan of attack? Start testing early!  Does M2 destination database need to be empty? All the entity IDs like Customer Entity ID, Product Entity ID need to carry across exactly the same.  Take backups of your database (source and destination). Take backups as you go along too e.g. after settings migrate, after data migrates. Use a separate copy of source DB for migration. Planning Data Migration:
  • 16. Tadhg Bowe | Screen Pages | November 2016 Happy so far? :-0 This chap is studying Magento’s “Fundamentals of Magento 2 Dev” online course!
  • 17. Tadhg Bowe | Screen Pages | November 2016  So our real world client – M1 1.13.0.2 to M2 2.1.0. Let’s go!  Settings: Yes migrated fine!  Data: No! Okay so what errors did we get: Source documents are not mapped: aw_core_logger,aw_followup_config… Destination documents are not mapped: magestore_storelocator_holiday,magestore_storelocator_image… Source fields are not mapped. Document: catalogrule. Fields: points_action, points_currency_id… Now the fun begins!!
  • 18. Tadhg Bowe | Screen Pages | November 2016 Destination fields are not mapped. Document: admin_user. Fields: tfa_login_enabled, tfa_login_secret…  These can all be fixed in map.xml. You can decide to “ignore” fields completely or “move” them. Others like the following: Source fields are not mapped. Document: sales_flat_order. Fields: exported,export_attempts… Destination fields are not mapped. Document: sales_order. Fields: prima_export_status Those can be fixed in the map_sales.xml. Handy tool here: http://oyenetwork.com/articles/data-migration-to-magento2-case-study/  Once you’ve mapped all those tables and fields in the correct xml files, rerun the data migration command and off we go again! There’s more…
  • 19. Tadhg Bowe | Screen Pages | November 2016  Here’s another issue: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ’first.last@somewhere.com' for key 'CUSTOMER_ENTITY_EMAIL_WEBSITE_ID'  The above meant we had duplicate customer email addresses for the same website in the source DB. Oh Oh!  This was fixed by simply deleting the unwanted accounts via the M1 source Admin Panel.  Okay it’s not nice seeing these but at least the migration tool picked them up. Clean data remember! Continuing on…
  • 20. Tadhg Bowe | Screen Pages | November 2016  But then: [Exception] Notice: Undefined offset: 1 in /…/sites/client_site/vendor/magento/data-migration- tool/src/Migration/Step/Eav/Data.php on line 433  The above is related to function moveAttributeToGroup??? After some investigation: That horrible sinking feeling of OMG IT’S NOT GOING TO WORK… But then this…
  • 21. Tadhg Bowe | Screen Pages | November 2016  So the source EAV attribute table contains over 800 rows. That’s not normal for a Magento 1.13 install. Oh oh it’s an upgrade! And it looked like an upgrade from a CE v1.6 (ish). Is that compatible… well...  Should we try continue and shoehorn all this data in? It’s not really how M2 structures its EAV nowadays. Nothing matches up.  So let’s be “Data Smart”. We want clean data, data that M2 expects to see. Let’s avoid junk! M2 doesn’t need any more headaches to deal with   So we reviewed all the source data. What were the must haves? What data is the client reviewing themselves? Is there data we don’t actually need to migrate across? So rather than “hitting and hoping” on the data migration step we’re now approaching it correctly. Maybe it was a blessing in disguise that it failed! Massive rethink!
  • 22. Tadhg Bowe | Screen Pages | November 2016 Let’s be data smart…
  • 23. Tadhg Bowe | Screen Pages | November 2016  So what did we do? Here were the main players:  EAV not being migrated. It simply didn’t work.  Catalog Products and Categories: Being reviewed by client. This project was a redesign too. For example things like product images were being revisited. Okay lets reimport via Product Import. Not using data migration.  Reviews: Import via a Magento 2 third party extension. M1 export extension installed.  Quotes: Ignored.  CMS pages and blocks: Ignored.  Wishlist: Ignored.  Only migrating Customers, Newsletters, Sales Orders (including shipments, invoices & credit memo) Cool! Yes let’s be Data Smart…
  • 24. Tadhg Bowe | Screen Pages | November 2016 How was this achieved:  Edit config.xml file and commented out the steps we no longer wanted e.g. EAV step, Ratings step, Tier Prices step.  Migrate data into separate empty M2 database. Then copy only the files we need across to go-live database. M1 DB M2 Migration Empty DB M2 GO LIVE DB DATA MIGRATION TOOL ONLY COPY TABLES YOU NEED! AND IT WORKS!
  • 25. Tadhg Bowe | Screen Pages | November 2016  So it worked for us! We only copied the DB tables we needed i.e. Customers, Sales Orders, Newsletter.  But hold on! What about Customer EAV for example? What about any bespoke customer attributes in an M2 third party module that also existed in M1!?  For example we have a customer third party EAV attribute “integration_customer_number” (type varchar). It exists in our source and destination. The data migrates across. You just need to make sure the attributes IDs match up. Why? The migration tool copies across the data assuming the EAV attributes have also come across. In this example our final go-live DB attribute_id was 177. The source attribute_id was 987! Success! But a few little tweaks…
  • 26. Tadhg Bowe | Screen Pages | November 2016  By using the main GIT master (go live) branch on the migration DB it ensures all DB fields are in place before data migrated. And if everything is mapped correctly (xml files) then it should go pretty smoothly.  In the end we decided not to run the Migration Settings step! One of our store views in M1 was being moved to a new website in M2. Another store view was being removed completely. So why bring across settings we no longer need. It also gave us an opportunity to take a fresh look at all the client’s settings – and it’s a chance to learn the new M2 Admin Panel   How long did the data migration step take: Roughly 16 minutes (Mac Mini 3.0 GHz Intel "Core i7” 8GB RAM PHP 7.0.9 Percona MySql 5.6.25).  That means for go live deployment: no Delta migration step. The data migration step can easily be completed while a holding page is up  Some more notes…
  • 27. Tadhg Bowe | Screen Pages | November 2016  Sales Order Increment ID. There’s a new sequence table for sales orders split by Store ID e.g. sequence_order_1. Edit this table and set the increment ID to a value past the last Live order taken. Same applies for invoices, shipments etc… [EDIT – this should work if you migrate settings + data – always check]  Just in case: If your M1 site used a prefix then in M2 that’s set in sales_sequence_profile table which is linked to the sales_sequence_meta table.  I mentioned we had a shake up of store views. One of our M1 store views no longer exists (it was a mobile view). Just be careful copying across data where Store IDs may no longer match up.  So what about our products and categories? Anything else?
  • 28. Tadhg Bowe | Screen Pages | November 2016 Getting ready to party…???
  • 29. Tadhg Bowe | Screen Pages | November 2016 How do we migrate products and categories?  Export all products from M1 using built in System > Export. In our case they were all configurable & child simple products.  Product Importing in M2 has changed. It’s now one row per product. For configurable products we have a very busy column called configurable_variations. For example you have something like: sku=ASHCH060,display=1,size=6|sku=ASHCH065,display=1,size=6.5|… We wrote a small script to export this information from M1.  Always test with a very small subset of data first!  Before we started importing we made sure the Increment ID (sequence_product table) was higher than the last product ID in M1. Nearly there!
  • 30. Tadhg Bowe | Screen Pages | November 2016  Configurable product dropdown attribute values need to be imported first! Look at sample data modules e.g. module-catalog-sample-data, module-configurable-sample-data for example CSV files!  Product Reviews: We installed a free extension on our M1 site so we could export reviews in the exact format that a purchased M2 extension needed for importing. Will this talk ever end…
  • 31. Tadhg Bowe | Screen Pages | November 2016 In Summary: Think Data Smart Allow plenty of time! Plan well ahead There are no two Magento 1 sites the same! The Magento team are human too. It’s very easy to be negative. But there’s a whole lot to be positive about.
  • 32. Tadhg Bowe | Screen Pages | November 2016 Finally…I shall leave you with an Irish Toast:
  • 33. Thank you! See you at the bar… @tadhgbowe