Als paddenstoelen springen ze uit de grond, third-party extensies voor Magento 2. Makkelijk te integreren, doet wat je wil en als het een beetje mee zit nog veel meer. Dat laatste zul je op korte termijn waarschijnlijk niet actief gaan gebruiken, maar het kan in de toekomst prima van pas komen. Na nog even verder te hebben gelezen blijkt, als klap op de vuurpijl, de prijs ook nog eens reuze mee te vallen! Het kan niet op, denk je bij jezelf.

Alle gekheid op een stokje en met een kleine knipoog, lijkt deze trend zich, net als in het verleden, te gaan herhalen. Niets mis mee en in vele gevallen een logische keus afgezet tegen de uren die er tegenover staan om het zelf te (laten) ontwikkelen, waarbij geen garantie, niet goed geld terug en x jaar lange support wordt afgegeven. Geregeld zoeken we de dialoog graag op en adviseren we continu op de hoede te blijven voor de teleurstelling en risico’s die third-party extensies code-technisch met zich mee kunnen brengen. Vooral op dat laatste wil ik graag wat dieper inzoomen.

Sinds de release van Magento 2, een kleine twee jaar geleden, is er een compleet nieuwe markt opengebroken. Naast alle gerenommeerde leveranciers, hebben ook de kleine spelers weer een kans om zich in de zogenaamde “top tien” lijsten te wurmen. In moordend tempo is er een wildgroei aan extensies ontstaan en is merkbaar duidelijk dat de veiligheid, standaarden en schaalbaarheid niet altijd de hoogste prioriteit krijgen.

Kwaliteit staat bij ons team hoog in het vaandel en zorgt voor gedreven mensen vol passie en de drang om continu te blijven leren en verbeteren. Kwaliteit staat voor wie we zijn en wat we uitstralen, het benadrukt de duurzaamheid van elk e-commerce platform. Dit heeft er toe geleid dat we sinds het begin van Magento 2 elke nieuwe third-party extensie, volledig binnenstebuiten keren voordat we ze implementeren. Vaste criteria zijn onder andere veiligheid, code conventies, schaalbaarheid, standaarden en niet geheel onbelangrijk, dat ze geschikt zijn voor Magento Commerce!

Voor de technisch onderlegde lezer heb ik wat simpele voorbeelden bij elkaar gesprokkeld om een beter beeld te geven van wat wij de afgelopen jaren zijn tegengekomen. Dagelijks acteren we hierop en proberen we in een aantal gevallen advies te geven richting de leverancier om stukje bij beetje de code te optimaliseren tot het gewenste en vereiste niveau.

$this->_om = \Magento\Framework\App\ObjectManager::getInstance();
$this->_session = $this->_om->get('\Magento\Catalog\Model\Session');
$this->_scopeConfig = $this->_om->get('\Magento\Framework\App\Config\ScopeConfigInterface');
$this->_registry = $this->_om->get('\Magento\Framework\Registry');

Het continue gebruik van de ObjectManager binnen modules. Dit haalt het principe van onder andere Dependency Injection volledig onderuit en is in uitzonderlijke situaties toegestaan.

Losse ‘.query’ bestanden in de sql folder om ‘selects’ uit te voeren op de database. Deze statische bestanden houden geen rekening met onder andere tabel prefixes of wanneer er gebruik gemaakt moet worden van ‘row_id’ of ‘entity_id’ in het geval van Magento Commerce.

 

Onderstaande constructie maken we liever geen woorden aan vuil en spreekt voorzich.

$pos = strpos($rule['customer_group_ids'], 's:1:"' . $groupId . '"');
if (!$rule['customer_group_enabled'] || $pos !== false) {
     return $this->_helper->checkRuleForbiddenAction($this->_observer,$rule,$apply);
}

 

Naast het schrijven van obscure code merken we nog te vaak dat extensies Magento Commerce-ready worden aangeboden en vervolgens bijvoorbeeld niet overweg kunnen met gesplitste databases. Zonder dat hier nog weer tijd in wordt gestoken, maakt dit een extensie direct onbruikbaar.

Moraal van dit verhaal is vooral dat we hebben gemerkt dat de afgelopen jaren een enorme hoeveelheid Magento 2 extensies de markt op zijn gekomen, waarbij wij sterk het gevoel hebben dat dit meer wordt gedaan om de naam van de leverancier hoog te houden en de verplichting richting de markt in plaats van de bovenstaande kwaliteitsnormen.

Magento zet de juiste stappen met hun Marketplace en het bijbehorende Submit Extension programma, waarbij ze onder andere de technische basis van elke extensie gestructureerd controleren. Desondanks hebben wij als Solution Specialist in welke hoedanigheid dan ook, de verantwoordelijkheid om zelfs deze extensies te controleren en ervoor te zorgen dat onze klanten voorzien worden van het juiste advies en hoogwaardige implementaties.

Uit ervaring weten wij dat er voldoende goede extensies verkrijgbaar zijn. Mijn primaire boodschap is voornamelijk scherp te blijven, kwaliteit boven alles te stellen en vooral niet te gemakzuchtig om te gaan met het installeren van willekeurige third-party extensies tegen beter weten in.

Wil je meer informatie of advies omtrent dit onderwerp of wil je hier graag eens samen over verder sparren? Neem gerust contact op voor een kop koffie.