Bygga en modul för Magento 2

Magento modul - hur bygger man en

Det finns många moduler där ute, vissa ligger publicerade på Magento Marketplace och andra distribueras på andra sätt, exempelvis via filer eller git (system för versionshantering av källkod). Eastlane har byggt flera moduler, både för en specifik kunds behov, men också generella moduler som ska fungera för flera e-handlare och ibland flera versioner av Magento 2.

En stor fördel med Magento 1 och Magento 2 är dess rika utbud på färdiga moduler, ibland finns det dock ingen som löser uppgiften på ett tillräckligt bra sätt. Du behöver då bygga en egen plugin för att lösa egna problem.

Checkout lösningar Magento 2 modul

Checkout/betalningar och integration av externt sök är några exempel på generella moduler vi har byggt. När det kommer till kundspecifika kan det exempelvis vara en modul för att integrera 3PL/WMS, tredjepartslogistik/Warehouse Management System, som exempelvis Ongoing Warehouse.

När det gäller affärssystem har vi störst erfarenhet av Microsoft NAV/Navision eller BC (Business Central) som det numera heter. Ni kanske frågar er om det inte borde vara en generell modul? Bra tanke, men med 3-4 olika versioner med två olika typer av autentisering och massor med fält som du namngett själv enligt typen “kund_epostadress_2” blir det svårt att skapa en generell modul som bara fungerar. I dessa fall har du en grund att utgå från, bättre blir det inte.

Framgångsreceptet när du bygger Magento modul

Som med all utveckling är det avgörande med en bra kravspecifikation där en stor uppgift bryts ned till mindre uppgifter som är välskrivna vilket innebär att det är tydligt vad varje deluppgift ska lösa samt hur den ska testas/godkännas. Dessa tasks brukar kallas för User Stories. Det är alltså små korta meningar där användaren berättar vad den vill göra och hur den vill använda systemet. När du bygger en modul bör du alltid följa Magentos best practices samt PHP kodstandarden PSR-2.

Ska modulen kommunicera med ett externt system, exempelvis ett affärssystem, en extern sökmotor eller en betalväxel behöver du säkerställa att du bygger ett flöde som fungerar bra för båda systemen. När det kommer till Magento 2s kassa/orderflöde behöver du förhålla dig till hur Magento 2 fungerar, exempelvis om du väljer fraktsätt innan du anger adress, skapar det problem för fraktsätt som inte är rikstäckande.

Vanliga modul misstag

Vi har implementerat flera olika betalsätt och checkouts och flera gånger stött på grundläggande fel som till exempel:

  • Stöd saknas för alla vanliga produkttyper i Magento2 (simple, configurable och bundle).

  • För e-handlare med produkter av mer komplex karaktär kan ibland “custom options” användas, som enkelt uttryckt är ett fält för ytterligare konfiguration av en komplex produkt, ett fält som kan påverka pris. Våra gardinförsäljande vänner på Textilgallerian använder det för gardinkonfiguration både avseende mått men också upphängning och annat.

  • Du bygger en ny tacksida och missar att exponera ett DataLayer som får till följd att det blir svårt att följa upp konverteringen i ett externt verktyg som exempelvis Google Analytics.

  • Felhantering. Om en order skall synkas till affärssystem direkt när den är lagd behöver du också ha en köhantering. Affärssystemet kan vara nedstängt för underhåll. En köhantering försöker då ett visst antal gånger med ett visst intervall.

  • Loggning, lägsta kravet är att det finns textfiler på servern för att en Magentoutvecklare ska kunna påbörja felsökning i en magento e-handel. I vissa lägen är det att rekommendera att även lägga till en vy för att se vad som gått bra och vad som gått fel i Magentos admin.

Här har vi en Magento modul vi på Eastlane byggt åt en av våra kunder

Checkout magento modul

Undrar du mer om hur det är att bygga en modul i Magento? Tveka då inte på att kontakta oss.