Categorieën
Magento Nieuws

Migratie Magento 1 naar Magento 2

Wanneer je besluit om je shop opnieuw op te bouwen in Magento 2 wil je natuurlijk wel graag de data van je klanten meenemen en het liefst ook al je verrijkte product informatie. Ik neem je in deze blog mee in een migratie traject van Magento 1 naar 2 en vertel je waar je allemaal rekening mee moet houden voor een succesvolle migratie.

Tools

– Je begint niet vanaf scratch –

Bij Guapa gebruiken we inmiddels twee tools voor het migreren van data tussen Magento installaties. De tool die door de Magento community wordt aangeboden (https://github.com/magento/data-migration-tool) en een gemodificeerde versie van de UberTheme Data Migration Pro. Welke we gebruiken is afhankelijk van het type migratie die we doen, omdat niet elke migratie even geavanceerd hoeft te zijn. Heb je veel data die niet standaard is? Ga dan voor de migratie tool van de Magento community. Deze is helemaal gebouwd om zelf je migratie te kunnen configureren en te voorzien van eigen migratie stappen.

Configuratie

– Configureer je migratie nauwkeurig –

De migratie tool van de Magento community is niet direct klaar om gebruikt te worden. Er zijn verschillende configuratie bestanden beschikbaar afhankelijk van de bron- en doelversie. Bijvoorbeeld: Magento 1 Community naar Magento 2 Enterprise, Magento 1 Enterprise naar Magento 2 Commerce etc. Elke versie vereist een andere configuratie. De basisconfiguratie bevat de database configuratie en welke stappen gemigreerd moeten worden. Het is bijvoorbeeld mogelijk om een stap over te slaan of je eigen stappen toe te voegen. Dit doen wij wanneer we data van een custom module willen migreren. Bedenk daarbij goed in welke volgorde je de stappen wilt doorlopen. Vooral wanneer je je eigen stappen schrijft moet je er rekening mee houden dat je misschien data nodig hebt wat nog niet gemigreerd is. Bijvoorbeeld een foreign-key tussen een tabel van jouw module en categorieën of producten. Naast de basisconfiguratie is de map configuratie een belangrijke sleutel tot een geslaagde migratie. Hierin geef je aan welke tabellen gemigreerd moeten worden en welke er juist genegeerd moeten worden. Deze laatste is belangrijk voor tabellen die niet bestaan in de nieuwe Magento installatie. Heb je tabellen met data die in Magento 2 wel een plek kunnen hebben? Dan kun je dit aangeven met de move-node.

<move>
<field>cms_page_store.page_id</field>
<to>cms_page_store.row_id</to>Magento 2
</move>

Het converteren van data is ook mogelijk wanneer in Magento 2 waardes anders verwacht worden dan in Magento 1 het geval is. Een goed voorbeeld hiervan zijn de pagina layouts.

<transform>
<field>cms_page.root_template</field>
<handler class=“MigrationHandlerConvert"">
<param name=""map"" value=""[one_column:1column;two_columns_left:2columnsleft;two_columns_right:2columns-right;three_columns:3columns]""
/>
<param name=""defaultValue"" value=""1column"" />
</handler>
</transform>

Heb je attributen met custom source-, back of frontend models? Plaats deze dan in de class map. Deze configuratie zorgt ervoor dat de juiste verwijzing naar de Magento 2 class in de database wordt weggeschreven. Heb je geen Magento 2 equivalent, maar wil je toch je data meenemen? Geen probleem, laat de doel class leeg en de migratie zorgt ervoor dat je data alsnog in Magento 2 terecht komt. Je moet hierna uiteraard wel zorgen dat je data juist weergegeven wordt.

Delta migratie

– Begin al vroeg met je migratie tijdens de ontwikkeling. –

Het is handig om vroeg te beginnen met je migratie. Op die manier heb je al wat producten om mee te testen en heb je voldoende tijd om je data te controleren. De migratie tools hebben ondersteuning voor delta migraties, op die manier kun je de laatst gewijzigde data bijwerken. Dit heeft als voordeel dat je bij de daadwerkelijke livegang van je gloednieuwe webshop minder tijd kwijt bent aan het opnieuw migreren van alle data. Alleen de laatst gewijzigde data hoeft bijgewerkt te worden. Dat doet de migratie tool door changelog triggers- en tabellen aan te maken. Wijzigt een klant zijn data? Dan wordt een record in de Magento 1 database bijgeschreven en weet de migratie tool dat deze klant wijzigingen heeft ten opzichte van de Magento 2 database.

Testen

– Backup, testen, testen, testen –

Ga niet over een nacht ijs en test je migratie grondig. Controleer je data en probeer je entities opnieuw te slaan om er zeker van te zijn dat de data op de juiste plek terecht komt.

  • Probeer categorieën en producten op te slaan en controleer of je URL-rewrites kloppen.
  • Probeer als klanten in te loggen, kloppen de geëncrypte wachtwoorden en de gegevens van de klanten.
  • Plaats bestellingen en maak facturen, verzendingen, creditmemo’s en RMA’s om te controleren of de nummers juist oplopen. Houdt er rekening mee dat Magento 2 gebruik maakt van sequence tabellen die bijhouden wat het laatste id van een order, factuur etc. is. Kijk bij problemen ook in deze tabellen.

Bugs

– Waar gehakt wordt, vallen spaanders –

Het kan zijn dat er na de migratie een aantal bugs in je nieuwe Magento 2 shop naar voren komen. Vaak zijn deze bugs al bekend of komen ze specifiek voor jouw shop naar voren. Bij Guapa hebben we voor een de bekende bugs een aparte patcher module geschreven die deze problemen verhelpt totdat deze door het core team van Magento opgelost worden.

Tips

– Anderen gingen je voor –

  • Controleer je Magento 1 shop nadat de changelog tabellen en triggers zijn aangemaakt. Controleer of de id’s van wijzigingen die bijgehouden moeten worden ook daadwerkelijk worden weggeschreven.
  • Schakel mail communicatie uit en voorkom dat er e-mails naar je klanten worden verstuurd tijdens of na je migratie. Zeker wanneer je gebruik maakt van modules die automatisch e-mails verstuurd.
  • Voer je migratie per stap uit en controleer je data tussendoor. Het uitvoeren van de migratie kan flink wat tijd in beslag nemen wanneer je veel data hebt. Het is zonde van je tijd wanneer je erachter komt dat data bij een eerdere stap verkeerd geïmporteerd is, waardoor je een paar stappen terug moet.
  • Soms is het sneller om met een script of query data wat bij te schaven, op die manier hoef je niet opnieuw stappen in je migratie proces te draaien.
  • Werk regelmatig de data bij via de delta migratie. Hierdoor ben je bij livegang minder tijd kwijt aan het bijwerken van de laatste data.
  • Backup je migratie database regelmatig.

Ook je shop migreren naar Magento 2?

Wil je meer weten over migratie trajecten van Magento 1 naar 2? Neem contact op met onze specialisten of plan een Magento demo in.