Den seneste version af Magento kommer med en lang række optimeringer inden for sikkerhed, hastighed og stabilitet. Magento 2.4.4 er bygget på den seneste version af PHP (PHP 8.1), og dermed fremtidssikres Magento nu yderligere som digital handelsplatform.
Konsekvenserne af ikke at have en opdateret version af Magento, har blandt andre Bahne og Smith & Wesson måtte sande efter angreb på deres Magento-shops. Bahne var offline i tre timer på Black Friday (af alle dage) og efterfølgende i flere måneder. Smith & Wesson oplevede et fald af deres aktieværdi på 10% efter nyheden om hacket.
Alt i alt indeholder opdateringen til 2.4.4 tæt på 250 kvalitetsforbedringer og optimeringer.
Der tilføjes overordnet set:
- Forbedret sikkerhed
- Øget hastighed og stabilitet
- En lang række platformforbedringer
- Ny version af PHP
Forbedret sikkerhed
Magento 2.4.4 er bygget på de nyeste digitale teknologier for at øge sikkerheden og stabiliteten af platformen. Opdateringen inkluderer en lang række sikkerhedsoptimeringer, som reflekterer nyeste Best Practice. Dette har betydning for, hvordan forskellige sikkerhedselementer håndteres i Magento.
Som eksempler kan nævnes:
- Integrationstokens kan ikke længere bruges som API Bearer-tokengodkendelse.
- Sessions-id’er gemmes ikke længere i databasen.
- OAuth-adgangstokens og nulstillingstokens for adgangskode er nu som standard krypteret, når de er gemt i databasen.
- Validering er blevet styrket for at forhindre upload af ikke-alfanumeriske filtypenavne
- reCAPTCHA-understøttelse er tilføjet til brugen af kuponkoder.
- Swagger er nu deaktiveret som standard, når Magento er i produktionstilstand.
- HTTPS er nu default og alle indbyggede cookies, bliver dermed sat som sikre.
Øget stabilitet og hastighed
Opdateringen inkluderer hundredvis af kvalitetsforbedringer ifm. bl.a. tilgængelighed, backend, cache og index, checkout og kurv, katalog, sammensatte produkter, konfigurerbare produkter, prisregler, import/eksport, ordrer og forsendelser.
For blot at nævne nogle af de væsentligste:
- Tilgængelighed: forbedringer af skærmlæsning, kontrast, tastatur-navigation og titler på knapper og UI-elementer.
- Backend: forbedringer ifm. login og redirects ved Multi-store installationer.
- Cache og indeks: forbedringer til cache-algoritmen, som kører ved re-indeksering samt forbedringer til Full Site Page Cache og Varnish cache.
- Checkout og kurv: forbedringer til fri fragt ifm. Table Rates samt optimering af opdatering af kurv og tilføj til kurv.
- Katalog: optimering af massehandlinger på produkter med date/time-egenskaber, mulighed for tildeling af flere end 1000 produkter til kategori samt optimering af prisfiltre for konfigurerbare produkter med varianter som ikke er på lager.
- Sammensatte produkter: kategorier viser nu de korrekte produkter når underprodukter/valgmuligheder af sammensatte produkter er deaktiveret på enkelte forretningsvisninger samt forbedring af cachering ifm. sammensatte produkters lagerstatus.
- Konfigurerbare produkter: oprettelse af nye underprodukter/valgmuligheder for konfigurerbare produkter overskriver ikke længere værdierne for de eksisterende underprodukter/valgmuligheder.
- Prisregler: Prisregler for kurv, som bruger en SKU-betingelse med ” If an item is FOUND/NOT FOUND in the cart with All/Any of these conditions true”, fungerer nu som forventet med konfigurerbare produkter.
- Import/eksport: Produkters position gemmes nu korrekt ved import via .csv.
- Ordrer: Ordredetaljesiden vises nu korrekt i tilfælde hvor særlige momssatser figurerer på ordren.
- Forsendelser: forsendelsesopdaterings-e-mails kan nu deaktiveres som forventet fra Stores > Configuration > Sales > Sales Emails.
Platformforbedringer
Alle dele af Magento (interne biblioteker og dependencies) og integrerede moduler som Page Builder er opdateret til at være kompatible med PHP 8.1 og der er opgraderet på en lang række teknologier. Det gælder b.la.:
- Elasticsearch 7.16 og OpenSearch 1.2 – understøttes.
- TinyMCE 5.8.1 – understøttes og TinyMCE 4 fjernes fra kodebasen.
- jQuery – opgraderes til version 3.6.
- jQuery-UI – opgraderes til version 1.13.
- RequireJS – opgraderes til version 2.3.6.
- PHPUnit – opgraderes til version 9.5.
- GraphQL – optimeres på flere punkter og opgraderes til version 14.9.
Deruderover er alle Vendor-bundled Extensions på nær Braintree blevet afkoblet fra kildekoden, hvilket betyder at disse services skal installeres og fremover opdateres som moduler i stedet. Det gælder Klarna, Amazon Pay, dotdigital, Vertex og YotPo.
Udfordringer
Samlet set tilføjer denne opdatering en stor mængde forbedringer – men det kommer naturligvis ikke uden en række udfordringer:
Opdateringen til PHP 8.1 i sig selv kræver, at de servere som din webshop kører på, understøtter teknologien. Dertil kommer de nye dependencies og opdaterede versioner af teknologier, som din webshop skal være kompatibel med. Det gælder navnlig de opdaterede versioner af ElasticSearch, Redis, Varnish, MariaDB og MySQL som skal opdateres og som kildekoden for din webshop, skal gøres kompatibel med.
Yderligere betyder udelukkelsen af Modernizr, es6-collections, FormData.js og MutationObserver.js, at der skal findes andre løsninger i tilfælde, hvor disse teknologier har været i brug.