19 december 2019
Is Magento 2 nog wel het juiste product?
Yireo Blog
maandag, 26 oktober 2020: Magento 2 Frontend Development I training in Soest, Netherlands » Meer informatie
Yireo in het kort:

Is Magento 2 nog wel het juiste product?

Komende zomer 2020 nadert de officiele End-Of-Life van Magento 1 en dat betekent dat iedere Magento 1 webwinkelier na zou moet denken over de vraag of een migratie naar Magento 2 op zijn plaats is. Magento enthousiastelingen zeggen direct dat je prima kan overstappen naar Magento 2. Maar is dat zo?

De olifant in de kamer

Er is gelukkig al genoeg over geblogd en gepost de afgelopen tijd: Alternatieven voor Magento, gewoon op Magento 1 blijven of toch juist toch migreren. Hopelijk komt daarmee datgene ik te zeggen heb niet als verrassing: Magento 2 is niet voor iedereen de beste oplossing. De olifant in de kamer is dat Magento 2 niet altijd een goede keuze is.

De meest eenvoudige conclusie is dat Magento 2 de kant van de grotere webshops kiest (enterprise) en dat daarmee vooral de kleinere Magento 1 webwinkeliers uit zouden moeten kijken naar WooCommerce, Shopware, Shopify, CommerceTools en andere systemen. Magento 2 is een flink complex systeem geworden, waardoor het prijskaartje flink hoger ligt dan bij andere systemen.

Magento 2 schuift op naar enterprise

Magento 2 gaat de enterprise markt op. Dat wordt vaker gezegd. En met de overname van Magento door Adobe wordt dit een feit, want de e-commerce oplossing is al toegevoegd aan de grotere Adobe Experience Cloud wat inderdaad voor de grote jongens bedoeld is.

Maar los van grote business deals (gemaakt door de heren die samen golfen), wat betekent het inhoudelijk dat Magento 2 geschikt wordt gemaakt voor de enterprise? Ik denk dat de PWA Studio een onderdeel van deze strategie is - headless is de toekomst en zonder headless zou Magento niet serieus genomen worden door enterprise klanten. Daarnaast zijn er allerlei add-ons bovenop de core gekomen - MSI, MFTF, B2B, PageBuilder, Social - waardoor het systeem steeds rijker is geworden aan features (waaronder enterprise features). En het product is hierdoor complexer geworden.

Is Magento 2 wel geschikt voor enterprise?

En hier raken we dan een gevoelige snaar: Magento 2 is een stuk complexer geworden. En vaak zodanig complex dat je door de bomen het bos niet meer ziet. De frontend is compleet verklooid qua technologie-stack (Knockout, Require, eigen Magento JavaScript code). Gelukkig wordt er gewerkt aan een decoupled headless oplossing. En de database abstractie is vaak moeilijk om doorheen te komen (EAV, schema upgrades). Gelukkig wordt er gewerkt aan een nieuwe storefront benadering. En het inventory systeem was nauwelijks goed aan te passen (ja, met preferences maar weinig klassen beschikken goed bruikbare publieke methodes). Gelukkig is er MSI gekomen.

Ja, er zijn dus weliswaar problemen uit het verleden, maar die worden in de toekomst opgelost. Maar aangezien het bij Magento een gewoonte is geworden om eerst nieuwe functionaliteit uit te brengen voordat die stabiel is geworden, rijst wel de vraag of Magento niet met nieuwe features nieuwe legacy aan het introduceren is. Het einde is zoek, we lopen iedere keer achter de feiten aan. Waarom investeren in uitbreidingen als de essentiele core nog steeds tekortkomingen heeft? (Nou, het antwoord is simpelweg geld, maar dat is een andere blog waard.)

Enterprise betekent niet perse heel veel features

Misschien is dit een persoonlijke mening. Maar enterprise betekent mijns inziens niet perse dat er zo veel mogelijk features aan een open source core toegevoegd worden. Ja, dat maakt misschien een enterprise licentie verkoopbaar. Maar het maakt niet perse het software product meer geschikt voor enterprise. We zouden dan juist moeten praten over uitbreidbaarheid, het gemak van eigen features toevoegen, documentatie, development tijd, minimaliseren van legacy, betrouwbaarheid.

Voor mij betekent enterprise dat er grote projecten gedraaid worden waar een evenredig budget voor beschikbaar wordt gemaakt. Dat budget kan je spenderen aan Magento 2 waardoor je heel veel features out-of-the-box er meteen bij krijgt. Maar daarna wordt het grootste gedeelte van dat budget besteedt aan het aanpassen van al die features, wat vervolgens erg moeilijk blijkt en veel bugs met zich mee brengt. Volgens mij zou die complexiteit in sommige gevallen enorm afgenomen kunnen worden door te kiezen voor een developer-first platform zoals Sylius. Out-of-the-box weinig features, maar wel heel veel gemak in het bouwen van alle features die nodig zijn. En wat dat betreft is Sylius ook compleet klaar om voor enterprise projecten gebruikt te worden.

Wat is er compleet fout aan Magento 2?

Deze blog is niet bedoeld als een feature-analyse tussen platforms. Het is ook niet bedoeld om platforms als Sylius en Shopware naar voren te schuiven als alternatief op Magento 2. Dat past niet in de korte tekst van een blog. Wat ik wel wilde bereiken was dat je je durft af te vragen of Magento 2 wel het juiste product is.

Om misschien een beetje te helpen, hierbij een tirade over wat er fout is: De huidige Knockout/RequireJS frontend is te complex en niet conform enige standaard. De codebase van Magento 2 als geheel is heel vaak over-engineered waarbij het niet meer lijkt te gaan om hoe uitbreidbaar iets is voor anderen, maar meer over hoe goed de ontwerper zijn best lijkt te doen om aan te tonen hoe flexibel iets kan zijn. Het includen van commerciele derde partij packages in de core is een blunder. MFTF is een poging om testbaarheid beter te garanderen maar is te complex en komt daarom moeilijk van de grond. De PWA Studio opzet is mooi qua concept, maar de voortgang is moeizaam - ik weet niet waarom, maar ik vermoed dat het politiek is. MSI is erorm mooi qua opzet maar complex. Ik denk dat ik op deze manier nog even verder kan gaan, maar ik stop hier - het schetst al een beeld.

Wat is er goed aan Magento 2?

Wat is er dan goed aan Magento 2? Nou, gek genoeg ook best veel: De GraphQL API ben ik dol-enthousiast over en de manier waarop MSI qua code in elkaar zit ook. De toekomst is daarom rooskleurig, als ik er naar kijk met een developers-bril. Bovendien leunen alle PHP-onderdelen van Magento zwaar op Dependency Injection, waarvan de configuratie misschien moeilijk voor beginners is maar het geeft wel een enorme kracht qua uitbreidbaarheid. Het is simpelweg een modulair maar ook robuust systeem.

Een notendop

Misschien kan ik daarom in een notendop wel zeggen dat ik de PHP-core van Magento 2 erg mooi vindt. Maar omdat er daarna allerlei over-engineering van features daar bovenop is gekomen is Magento 2 nu als geheel te complex. Het liefst zou ik het uit elkaar willen trekken, de goede dingen over houden, de slechte dingen weg.

En dat is nu precies ook wel terug te lezen in de roadmap van Magento: Headless, verschillende composer distributies, het opbreken van de core in services. Het is alleen de vraag hoe Magento zal om blijven gaan met de legacy. Hoe snel ze nieuwe features introduceren die zelf ook weer snel legacy blijken. Want dan mag een nieuwe core fantastisch zijn, maar de fouten uit het verleden worden opnieuw herhaald, simpelweg omdat die core te vlug wordt opgeleverd en te snel worden opgevolgd door een nieuwe architectuur.

Een moeilijke keuze

Des te complexer Magento wordt, des te moeilijker het te achterhalen is welke onderdelen waarvoor nodig zijn. Het lijkt een studie te vergen om te zien welk platform een goede vervanging is van Magento 1 of Magento 2. Het is een moeilijke keuze. Hopelijk helpt deze blog met wat argumenten. Of misschien maakt het het complexer.

Geschreven door Jisse Reitsma op 19 december 2019

Behoefte aan een training op maat?
Dat gaat we doen!

Een training kan op maat en op locatie worden gegeven. Hierdoor weet je zeker dat de tijd optimaal wordt benut en dat de training zeker de moeite waard is. Om de training op maat te maken overleggen we eerst over de vorm en de onderwerpen. Hierna sturen we een offerte op. Zie hiervoor ook onze tarieven. Sinds 2011 hebben we al honderden bedrijven (geen grap en geen overdrijving) van een professionele opleiding voorzien. We beloven je dat het inspirerend en leerzaam is!