Bold blogt: e-commerce stories from the wild. Gepubliceerd op 16 januari 2016

Magento 2 in de praktijk

Heb je een webshop op Magento 1 en zit twijfel je of je moet overstappen op Magento 2? Vraag je je af of alle kinderziektes er al uit zijn? Allemaal terechte vragen die wij ons ook gesteld hebben. Voor onze klanten dan. Want dat Magento 2 eindelijk voor iedereen beschikbaar is niemand in e-commerce-land ontgaan.

Magento 2

Heb je een webshop op Magento 1 en twijfel je of je moet overstappen op Magento 2? Vraag je je af of alle kinderziektes er al uit zijn?

Terechte vragen die wij ons ook gesteld hebben. Voor onze klanten dan. Want dat Magento 2 eindelijk (zie deze aankondiging van Magento 2 in 2010) voor iedereen beschikbaar is niemand in e-commerce-land ontgaan.

Magento is zelf natuurlijk heel positief over Magento 2. En als je het installeert op een testomgeving met dummy-data dan werkt het allemaal goed. Maar een omgeving zonder eigen:

  • producten
  • theme
  • maatwerk
  • CMS pagina's en blokken
  • verzendmethoden
  • betaalmethoden

werkt altijd goed. Je komt er pas écht achter hoe Magento 2 ervoor staat als je all-in gaat. Daar zijn we mee aan de slag gegaan. We hebben voor een klant die al een Magento 1 shop had, een nieuwe shop gebouwd. From scratch, op Magento 2! In dit artikel lees je onze ervaringen.

Migratie

Ook al was de bouw from scratch, de data moest wel behouden blijven. In ieder geval de klanten en producten, orders was mooi meegenomen. Omdat de betreffende shop behoorlijk wat maatwerk had, was het de vraag of alles goed mee zou komen. Denk hierbij bijvoorbeeld aan custom velden op orderregels. Na het bestuderen van de migratietool bleek dit echter geen probleem, al vereist het wel behoorlijk wat configuratiewerk in de door Magento geliefde XML's.

Qua tijdsbestek is het goed om in het achterhoofd te houden dat de overstap van Magento 1 naar 2 feitelijk een 'replatform' keuze is. Daarbij ga je er vanuit dat datamigratie een vrij forse kostenpost kan zijn. In dit geval is dat niet anders. Dus houd rekening met behoorlijk wat voorstudie, configuratie en trial & error.

Vergeet niet dat je de migratie 2 of meerdere keren moet uitvoeren. Tijdens de ontwikkeling van de nieuwe shop loopt de oude shop gewoon door en op moment van livegang van de Magento 2 shop wil je nog 1x de laatste data naar binnen halen. Ook hiervoor biedt de Magento Migratie-tool mogelijkheden.

Kortom: als het gaat om datamigratie vinden wij dat Magento hier goede tools voor biedt.

Theming en maatwerk

Hier is al veel over geschreven en iedereen is het er over eens: het is moeilijker geworden voor een ontwikkelaar om Magento naar de wensen van de klant aan te passen. Maar dit wil niet zeggen dat het platform niet volwassen is. In zekere zin is juist het omgekeerde waar: waar je voorheen met het betere hak-en-zaag werk (lees: minder ervaren/minder goede developer skills) nog een Magento shop kon neerzetten, is dat bij Magento 2 niet mogelijk.

Er wordt gebruik gemaakt van de nieuwste technieken in object georienteerd programmeren, met een hoog niveau van abstractie. En het samenspel tussen de backend en frontend is ook hypermodern geworden. Met als gevolg dat de shop voor de eindgebruiker dynamischer aanvoelt, met minder page-loads.

Magento 2 is op dat vlak dus volwassener geworden, maar net als in het echte leven vraagt dat ook om meer ervaring, meer plichten, minder free-wheelen en van meerdere facetten iets af te weten.

Issues

Tijdens het bouwen van de Magento 2 shop liepen we tegen wat issues waardoor we af en toe wel begonnen te twijfelen aan de volwassenheid van versie 2.

Configurable products opslaan langzaam

De Magento 2 admin biedt een prachtige nieuwe tool om eenvoudig configureerbare producten aan te maken. In Magento 1 was dat een crime. Ook zit standaard nu een 'optie-selector' op de frontend waarmee je middels icoontjes of kleur-blokjes het juiste 'simple product' selecteert:

Optie Selector Magento 2
Optie-selector in Magento 2

Met als bonus dat ook nog de productafbeelding verandert op basis van de gekozen opties. Mooie feature! Echter vraagt dit ook om een flinke berg afbeeldingen (voor iedere combinatie van opties 1 afbeelding). Het opslaan van zo'n configurable product met simples en hun afbeeldingen duurde lang, heel lang. Zo lang dat ofwel de server het opgaf, dan wel de browser. Dit kwam door een bug in Magento 2.1.2 (specifiek die versie). Voor onze klant betekende dit dat zij niet verder konden met het opbouwen van de catalogus. Behoorlijk vervelend midden in een project.

Vele uren zijn gaan zitten in het vinden van het euvel, upgraden naar duurdere hosting, communicatie met de klant etc. Bij nader onderzoek bleek dat veel andere mensen hier last van hadden op shops die al live zijn.

Uiteindelijk hebben we middels een work-around(CSV import voor het koppelen van productafbeeldingen) het probleem kunnen omzeilen.

In 2.1.3 is het probleem overigens verholpen.

Website scope configuratie bug

In Magento kan je meerdere shops beheren, waarbij iedere shop apart geconfigureerd kan worden (bijvoorbeeld op welke URL een shop te bereiken is).

Na het upgraden naar 2.1.3 liepen we tegen het probleem aan dat de configuraties die gedaan worden op shop-niveau niet werken. Dit had te maken met deze bugs:

Met een simpele fix was dit verholpen, maar het kost toch tijd om op te lossen. En dit soort problemen zouden eigenlijk niet mogen ontstaan. Zeker nu Magento propvol zit met automated tests, zou je verwachten dat dit eerder naar boven was gekomen.

Vertalingen kunnen niet op theme-niveau ge-override worden

Dit is een functionaliteit die ook in Magento 1 zit: de mogelijkheid om een stukje tekst op theme-niveau aan te passen. Zo wil je bijvoorbeeld in de ene shop 'Winkelmandje' gebruiken voor de Engelse term 'Shopping cart' en in een andere shop met een ander theme 'Winkelwagen'.

Een developer heeft een oplossing aangedragen aan Magento op 30 mei vorig jaar, maar deze oplossing is nog niet door Magento geaccepteerd. Terwijl de wijziging 1 regel code betreft.

Sinds dat Magento 2 publiekelijk beschikbaar is, is het aantal issues opgelopen. Logisch, want dan gaan mensen ermee werken en lopen tegen problemen aan. Het aantal pull requests is ook toegenomen, van 127 in februari vorig jaar naar 341 nu. Dat betekent dat de community ook steeds actiever wordt in het aandragen van oplossingen in plaats van alleen bugs in te dienen. Dus dat is positief.

We moeten ook niet vergeten hoe veel werk Magento heeft aan het verwerken van alle issues:

  • Kunnen we het reproduceren?
  • Komt het door een bug in Magento of een extensie?
  • Hoe groot is de impact?
  • Als er ook een pull request is ingediend, moeten ook de commits gecheckt worden

We hopen dat Magento committed blijft om issues te blijven verhelpen.

Conclusie

Magento 2 heeft een lange hobbelige weg afgelegd en ook nog een lange weg, maar met minder hobbels, te gaan. Het is een ongelooflijk omvangrijk platform met een hoop diepe krochten. Een shop met caviahokken en 3 vaste klanten draait er op, maar ook de B2B shop van Burger King, met 1000 orders per minuut. Dat zijn totaal verschillende use-cases met vooral ook verschillende vereisten. Door alle input van al die gebruikers en developers begint Magento 2 echt een volwassen e-commerce product te worden voor in principe iedere shop...

Dat wil niet zeggen dat je met een beperkt budget aan Magento 2 moet beginnen. Het platform is modern opgezet, met focus op toekomstbestendigheid, onderhoudbaarheid van de code (lagere onderhoudskosten) en betere scheiding van modules waardoor conflicten tussen extensies minder snel voor zullen komen. Dit is heel goed nieuws, maar heeft wel de keerzijde dat de initiele bouw van maatwerk en extensies meer tijd kost. En dus duurder is.

Daarnaast zijn veel extensies voor Magento 2 ook duurder geworden dan hun Magento 1 tegenhanger. Je krijgt wel ook meer waar voor je geld omdat extensies die in de Marketplace staan gecheckt worden door Magento, waarmee de kans op aanschaf van een miskoop kleiner wordt. Als het goed is heb je dan ook minder je Magento bouwer nodig voor het oplossen van bugs ;)

Ondanks de roadblocks die we zijn tegengekomen zijn we aangenaam verrast door het platform. De admin werkt prettig, de frontend is snel, ontwikkelen met de nieuwste tools is fantastisch, we zijn niks tegen gekomen wat niet kon en niet geheel onbelangrijk: binnenkort gaan we live!