Twinkle | Digital Commerce

Magento 2: overstappen of niet?

2017-05-27
180101
  • 6:49

Magento versie 2 is uit. Een paar maanden geleden verscheen zelfs al versie 2.1, waarmee verschillende nieuwe features werden toegevoegd, waaronder support voor ElasticSearch. Is het de moeite om over te stappen?


Tekst: Jisse Reitsma

Magento is een open source webwinkelpakket dat momenteel wel het meest populair genoemd mag worden. Magento werd in 2008 ontwikkeld door een bedrijf Varien, dat in 2011 werd overgenomen door eBay. Lange tijd werd vanuit Magento geroepen dat een versie 2 in de maak was. Maar de nieuwe versie liet meer dan vijf jaar op zich wachten. In de jaren na de overname door eBay, lagen er plannen om Magento op te laten gaan in een overkoepelend systeem genaamd X.Commerce. Uiteindelijk ging dat alles niet door. Magento werd een apart eBay-bedrijf en er werd verder gebouwd aan versie 2. Dat werk heeft zich terugbetaald: Magento 2 is een nieuw robuust platform waar veel mee kan worden gedaan.


Meerwaarde niet in features, maar in techniek
Dat Magento 2 flink anders is dan Magento 1 valt direct op. Toch is veel ook bij het oude gebleven en valt het niet mee om nieuwe features te ontdekken. De meerwaarde van Magento 2 ligt ook niet bij de features, maar primair bij de techniek waarmee deze gebouwd kunnen worden. Bij Magento 1 was dat ook zo; de core applicatie werd juist zo gewild dankzij de duizenden extensies die ervoor beschikbaar kwamen.

De kleine nieuwigheden zijn toch ook wel interessant: Het ‘Magento Admin Panel’ (waarmee producten en bestellingen worden beheerd) is responsive, wat wil zeggen dat het gemakkelijk bruikbaar is vanaf mobiel of tablet. De checkout is veranderd, misschien zelfs zodanig dat het niet meer nodig is om met One Page Checkout extensies de hele checkout te vervangen (iets waar ik later nog op terug kom). Er is geen expliciete stap meer nodig voor het aanmaken van een account. Er zijn nog wat kleine handigheden, maar een voorlopige conclusie is dat het hierbij gaat om kleine nieuwigheden. Deze zijn niet de reden dat Magento 2 zo de hemel in wordt geprezen, het is juist de architectuur waar het om draait.


Waarom versie 2? 
Waarom een versie 2? Wat is er mis met Magento 1? Magento 1 is een PHP-applicatie die in 2008 zijn tijd vooruit was. Maar in de loop der jaren zijn flink wat dingen veranderd in PHP-land, zoals de opkomst van zogenaamde PSR-standaarden, pakketbeheer via Composer en verschillende ontwikkelingen binnen JavaScript. Magento 1 kon hier vanwege zijn monolithische structuur niet genoeg in meegroeien. Daarom ontstond de behoefte aan een applicatie die inwendig radicaal anders was opgebouwd: flexibeler, schaalbaarder en met de nieuwste technieken. Met de release van Magento 2.0 in november 2015 werd die applicatie publiek gemaakt en sindsdien is de markt volop in beweging.

Voor iedereen? 
Magento 1 is in de loop der tijd erg populair geworden, zowel onder kleinere webwinkeliers als onder grotere Enterprise shops. De vraag is nu of Magento 2 geschikt is voor al deze partijen. Er zijn bijvoorbeeld met Magento 2 veel technische tools beschikbaar gekomen die het ontwikkelaars makkelijker maken de applicatie uit te breiden. Maar precies die tools maken het zelfstandige webwinkeliers juist weer lastiger zelf hun shop te onderhouden. Om de vraag te beantwoorden of Magento 2 echt voor iedereen is, moeten we daarom eerst bekijken wat er nu precies onder de motorkap is veranderd.

Moderne stack 
Bij het bouwen van een webshop komen allerlei expertises samen: denk aan webdesign, teksten, seo en onderhoud. Maar bij het bouwen van een webapplicatie (zoals Magento) is de techniek het belangrijkst. We kunnen Magento 2 dus alleen goed doorgronden als we ook de techniek onder ogen zien. Dankzij de techniek kan er een veelvoud aan handige Magento-extensies ontstaan, waarmee weer krachtige webwinkels gebouwd kunnen worden.

Een applicatie draait vaak op een stack - een combinatie van andere softwareproducten die het mogelijk maken een applicatie als Magento te draaien. De stack van Magento vereist een webserver met support voor PHP en een database. Qua webserver voor PHP-applicaties werd jaren geleden vaak gekozen voor Apache. Vandaag de dag draait Magento juist het beste op Nginx. Via een ander programma PHP-FPM kan Nginx ook PHP-scripts uitvoeren. De PHP versie is dan ook van belang. De huidige versie PHP 7 is een stuk sneller dan zijn voorganger PHP 5.6. Een lagere versie dan PHP 7 voor Magento gebruiken is dus niet slim. Als database heeft Magento 2 MySQL versie 5.6 nodig (of een compatibele variant). Niets spectaculairs, wel belangrijk om te weten.

Meer voorwaarden aan hosting
De stack van een ideale Magento 2 site is meer dan alleen maar de webserver en database. Vaak wordt er gekeken naar een betere cache handler zoals Redis, terwijl op de server ook tools als Composer, Magerun2, Git onmisbaar zijn. Al met al maakt dit de stack van Magento 2 tot een erg moderne stack, waar developers van smullen. Tergelijkertijd schept dit extra voorwaarden voor hostingproviders. Kwamen hosters er soms mee weg om Magento te draaien op een verouderde PHP-omgeving, met Magento 2 kan dat niet meer. Dit betekent niet direct dat de prijs voor het hosten van een Magento 2 shop omhoog zal moeten. Het betekent vooral dat hosting providers die niet continu hun platform up-to-date houden, uit de gratie zullen vallen. En dat is maar goed ook, want door slechte hosting-omgevingen zijn niet alleen veel snelheidsproblemen ontstaan, maar ook nog eens beveilingsproblemen. Magento 2 maakt het dus mogelijk om de hele stack met de tijd mee te laten gaan.

Betere checkout 
Magento 2 kent een upgrade van JavaScript: Een webpagina is vaak opgebouwd uit HTML broncode, CSS stylesheets, JavaScript scripts en afbeeldingen. Aan ieder onderdeel zijn er tal van veranderingen geweest, en dus ook aan JavaScript (niet te verwarren met Java, wat een compleet andere programmeertaal is). Magento 2 kent een upgrade van JavaScript.

Van alle frameworks (MooTools, ProtoType, ExtJS) is jQuery veruit het populairst gebleken. Daarom heeft Magento 2 daarvoor gekozen (en het oude ProtoType/Scriptaculous de deur uit gegooid). jQuery is een stuk kleiner dan zijn voorgangers, wat het inladen van shoppagina’s op een mobieltje bijvoorbeeld een stuk sneller maakt.

Er is ook een aantal nieuwe JavaScript toevoegingen die moeilijker uit te leggen zijn: RequireJS en KnockoutJS - de technische uitleg sla ik daarom even over. Wel belangrijk is dat de twee met andere onderdelen van de Magento templating-laag worden samengesmolten om een concept te vormen genaamd UIComponents. Dankzij UIComponents wordt het mogelijk om vanuit de ene extensie de JavaScript functionaliteit van een andere extensie compleet aan te passen.

Het kwartje valt op het moment dat duidelijk wordt dat de hele prijsberekening op productpagina's en de hele checkout gebaseerd zijn op UIComponents. Dankzij deze techniek is de checkout dus veel simpeler aan te passen. Het toevoegen van een nieuwe stap in de checkout was een drama in Magento 1. In Magento 2 is het een relatief simpele procedure (voor developers dan). Ook is het mogelijk om dankzij deze JavaScript-technieken in te haken op het toevoegen van producten aan de winkelwagen, of het selecteren van een specifieke productcombinatie (Configurable Products en color Color swatchesSwatches).

Snel en uitbreidbaar 
Magento 2 is snel, in ieder geval even snel als Magento 1. Maar het biedt ook technieken (jQuery, RequireJS) die het laden van een webpagina binnen mobile clients (telefoons, iPads) sneller maken. Gevoelsmatig maakt dit Magento 2 dus misschien wel sneller dan Magento 1. Magento 2 is in ieder geval erg ‘uitbreidbaar’, een grote verbetering ten opzichte van Magento 1. Een randvoorwaarde is dat je daarmee wel een stuk extra complexiteit omarmt. Developers hebben hierin zeker een leercurve. Maar op bepaalde vlakken zullen zij merken dat zaken ook gemakkelijker en intuïtiever gaan. Deze mogelijkheid tot uitbreiding is misschien wel de belangrijkste feature van Magento 2.

Wachten of niet? 
Op zichzelf betekenen RequireJS, KnockoutJS en UIComponents niets. Maar het is juist de techniek die de markt voor Magento 2 een immense boost zal geven, dankzij het gemak waarmee developers vanaf nu betere innovatieve extensies kunnen bouwen.

Magento 2 is een krachtig platform, maar als je zelf geen implementatiepartij bent, dan moet die krachtigheid worden bewezen door een partij die je daarvoor inhuurt, ofwel door extensies die je zelf integreert. De markt is echter nog dun bezaaid met dergelijke extensies. Nu overstappen is misschien nog een grote stap.

Magento 1 support eindigt in 2018. Je hebt dus nog wel even de tijd om over te stappen. Maar het betekent niet dat er niets gedaan hoeft te worden. Bij een migratie komen veel stappen kijken, zoals een inventarisatie van de huidige extensies, een roadmap van de catalogus, een vergelijking van de features, een inventaris van de kosten. Via documentatie, seminars, trainingen of gebruikersgroepen is veel informatie in te winnen. Twee jaar vliegt zo voorbij.

Magento 2 is sowieso het platform van de toekomst. Het heeft een levend hart dat geschikt is voor groei in het komende decennium. En het heeft nu al een community die daar graag aan mee werkt.

Jisse Reitsma is oprichter van Yireo. Samen met Dutchento en Magento organiseert het bedrijf op 21 oktober een seminar over Magento 2.