Magento Open Source brengt verbeteringen in platformkwaliteit, betaalmethoden, de cacheprestaties van GraphQL en toegankelijkheid. Het bevat updates van de geïntegreerde Google-modules.
Deze release bevat meer dan 290 kwaliteitsfixes en verbeteringen.
Releases kunnen niet-achterwaarts-compatibele wijzigingen (BIC) bevatten. Magento Open Source 2.4.5 bevat niet-achterwaarts-compatibele wijzigingen. Zie BIC-referentie om deze wijzigingen te bekijken. (Belangrijke niet-achterwaarts-compatibele problemen worden beschreven in BIC-hoogtepunten. Niet elke release introduceert belangrijke BIC's.)
Magento Open Source brengt verbeteringen in platformkwaliteit, betaalmethoden, de cacheprestaties van GraphQL en toegankelijkheid. Het bevat updates van de geïntegreerde Google-modules.
Deze release bevat meer dan 290 kwaliteitsfixes en verbeteringen.
Releases kunnen niet-achterwaarts-compatibele wijzigingen (BIC) bevatten. Magento Open Source 2.4.5 bevat niet-achterwaarts-compatibele wijzigingen. Zie BIC-referentie om deze wijzigingen te bekijken. (Belangrijke niet-achterwaarts-compatibele problemen worden beschreven in BIC-hoogtepunten. Niet elke release introduceert belangrijke BIC's.)
Overige release-informatie
Hoewel de code voor deze functies wordt meegeleverd met de driemaandelijkse releases van de core-code van Magento Open Source, worden verschillende van deze projecten ook zelfstandig uitgebracht. Bugfixes voor deze projecten worden beschreven in de aparte, projectspecifieke release-informatie in de documentatie van elk project.
Hoogtepunten van Magento Open Source 2.4.5
Let op de volgende hoogtepunten in deze release.
Beveiligingsverbeteringen
Deze release bevat 20 beveiligingsfixes en verbeteringen in de platformbeveiliging. Deze beveiligingsfix is ook teruggezet naar Magento Open Source 2.4.4-p1 en Magento Open Source 2.3.7-p4.
Tot op heden zijn er geen bevestigde aanvallen met betrekking tot deze problemen geweest. Bepaalde kwetsbaarheden kunnen echter mogelijk worden misbruikt om toegang te krijgen tot klantgegevens of beheerderssessies over te nemen. Bij de meeste van deze problemen moet een aanvaller eerst toegang tot de Admin verkrijgen. Daarom herinneren we u eraan alle nodige maatregelen te nemen om uw Admin te beschermen, waaronder maar niet beperkt tot:
- IP-allowlisting
- tweestapsverificatie
- gebruik van een VPN
- gebruik van een unieke locatie in plaats van
/admin - goede wachtwoordhygiëne
Zie het Adobe Security Bulletin voor de meest recente bespreking van deze opgeloste problemen.
Aanvullende beveiligingsverbeteringen
De beveiligingsverbeteringen in deze release zorgen voor betere naleving van de nieuwste best practices op het gebied van beveiliging, waaronder:
-
Ondersteuning voor reCAPTCHA is toegevoegd aan de formulieren voor het delen van verlanglijsten, het aanmaken van een nieuw klantaccount en cadeaubonnen.
-
Er zijn ACL-resources toegevoegd aan Inventory.
-
De beveiliging van Inventory-templates is verbeterd.
-
Het filter
MaliciousCodeis bijgewerkt en gebruikt nu de bibliotheekHtmlPurifier.
Platformverbeteringen
Magento Open Source 2.4.5 ondersteunt nu
-
Composer 2.2
-
TinyMCE (5.10.2). Eerdere versies van TinyMCE (v5.9.2 of eerder) maakten uitvoering van willekeurige JavaScript mogelijk wanneer een speciaal geprepareerde URL of een afbeelding met een speciaal geprepareerde URL werd bijgewerkt.
-
jQueryUI (1.13.1)
-
PHPStan(^1.5.7 met constraint) GitHub-35315
Het schema van de DHL-integratie is bijgewerkt van v6.0 naar v6.2. Deze upgrade leidt niet tot een verandering in het gedrag van het product.
Verouderde JavaScript-bibliotheken zijn bijgewerkt naar hun nieuwste versies en verouderde afhankelijkheden zijn verwijderd. Deze wijzigingen zijn achterwaarts compatibel.
Updates van Composer-afhankelijkheden
De volgende Composer-afhankelijkheden zijn met constraint bijgewerkt naar de nieuwste versies:
colinmollenhour/credis(1.13.0)guzzlehttp/guzzle(^7.4.2)laminas/laminas-captcha(bijgewerkt met constraint ^2.12)laminas/laminas-db(^2.15.0)laminas/laminas-di(^3.7.0)laminas/laminas-escaper(~2.10.0)laminas/laminas-eventmanager(^3.5.0)laminas/laminas-feed(^2.17.0)laminas/laminas-mail(^2.16.0)laminas/laminas-mvc(^3.3.3)laminas/laminas-server(^2.11.1)laminas/laminas-servicemanager(^3.11.0)laminas/laminas-validator(^2.17.0)league/fly(2.4.3)monolog/monolog(^2.5)phpmd/phpmd(^2.12.0)phpstan/phpstan(^1.5.7)phpunit/phpunit(~9.5.20)php-cs-fixer(^3.4.0)webonyx/graphql-php(14.11.6)
De afhankelijkheden laminas/laminas-session, laminas/laminas-text en laminas/laminas-view zijn verwijderd.
Overige upgrades en vervangingen
-
Het schema van de DHL-integratie is bijgewerkt van v6.0 naar v6.2.
-
De standaard gateway-URL voor verzending met USPS is bijgewerkt en gebruikt nu
httpsin plaats vanhttp. -
De bibliotheek
Froogaloopis vervangen door de Vimeo-bibliotheekPlayer.js(2.16.4). -
De bibliotheek
grunt-eslint(NPM) is bijgewerkt naar de nieuwste versie. -
De bibliotheken
jQuery Storagezijn vervangen doorjulien-maurel/js-storage. -
De tools voor statische codeanalyse
php-cs-fixerenphpcszijn nu compatibel met PHP 8.x. -
Afhankelijkheid
glob.js(met constraint bijgewerkt naar ~7.2.0) -
Afhankelijkheid
serve-static.js(bijgewerkt met constraint ~1.14.2) -
Afhankelijkheid
underscore.js(NPM) (1.14.2) -
moment-timezone-with-data.js(0.5.34) -
De bibliotheek
jquery/jquery-cookieis vervangen doorjs-cookie/js-cookie. -
De bibliotheken
jarallax.jsenjaralax-video.jszijn bijgewerkt en gebruiken nu de nieuwste versie van de Vimeo REST API.
Updates voor toegankelijkheid
Deze release richt zich op een winkelervaring in Venia (PWA) die beter waarneembaar, bedienbaar, begrijpelijk en robuust is. Deze verbeteringen omvatten:
- Samenvattende informatie over zoekresultaten wordt nu voorgelezen aan gebruikers van schermlezers
- Schermlezers worden nu geïnformeerd wanneer een nieuwe paginaweergave wordt geladen
- Contrast en toetsenbordtoegankelijkheid zijn verbeterd
Google Analytics
Google heeft de tracking- en integratiemechanismen van AdWords en Analytics in webapplicaties bijgewerkt via integratie met GTag. Deze integratie van Google-functionaliteit in websitepagina's biedt meer mogelijkheden om content via Google-diensten te volgen en te beheren. Adobe Commerce heeft een set ingebouwde modules, waaronder Google AdWords, Analytics, Optimizer en TagManager, die de vorige API gebruiken voor integratie met Google-diensten. In deze release hebben we deze integratie opnieuw geïmplementeerd volgens de GTag-aanpak.â Zie Migrate from analytics.js to gtag.js (Universal Analytics).
GraphQL
Prestatieverbeteringen in GraphQL zijn onder meer:
-
Ontwikkelaars en beheerders merken dat het uniforme GraphQL-schema van de winkel sneller opnieuw wordt opgebouwd bij een deployment of bij het wijzigen van attributen in productie. Shoppers ervaren ook aanzienlijk snellere laadtijden wanneer het GraphQL-schema om welke reden dan ook opnieuw moet worden opgebouwd.
-
Mogelijkheid toegevoegd om de vervaldatum/-tijd van het autorisatietoken uit te lezen via JSON Web Tokens (JWT) in de GraphQL API.
-
Met het commando
bin/magento config:set graphql/session/disable 1kunnen merchants het aanmaken van sessiecookies voor alle GraphQL-bewerkingen volledig uitschakelen. Standaard maakt Magento Open Source deze cookies aan en gebruikt het ze voor autorisatie, wat de prestaties beïnvloedt. Voortaan raden we aan tokens te gebruiken als enige vorm van autorisatie voor GraphQL-verzoeken. We raden af sessiecookies alleen of in combinatie met autorisatietokens te gebruiken. Zie GraphQL-autorisatie. -
Sessiecookies worden in GraphQL-bewerkingen nu via class proxies alleen gestart wanneer dat nodig is.
-
Het gebruik van sessies is verwijderd uit
http-headerprocessors in GraphQL, zoals store, customer of currency.
Zie de GraphQL Developer Guide voor details over deze verbeteringen.
Inventory
De beveiliging van Inventory-templates is verbeterd.
Page Builder
Page Builder v.1.7.2 is compatibel met Magento Open Source 2.4.5.
De kolomindeling van Page Builder bevat de volgende verbeteringen:
-
Kolommen zijn nu beschikbaar gemaakt, zodat gebruikers de kolominstellingen in de winkel kunnen beheren.
-
Het aanpassen van de kolombreedte ondersteunt nu terugloop die door gebruikersacties wordt geactiveerd.
Betalingen
Apple Pay is nu beschikbaar voor alle merchants met een installatie waarin Payment Services is ingeschakeld. Bij deze betaalmethode hoeven shoppers hun creditcard- of betaalpasgegevens niet in te voeren. Apple Pay is beschikbaar op de productdetailpagina, in de minicart, in de winkelwagen en in het checkoutproces. Merchants kunnen deze functie inschakelen.
PayPal
-
Merchants in Spanje en Italië kunnen shoppers nu PayPal Pay Later aanbieden.
-
Voorbeelden van de knoppen PayPal, Credit en Pay Later zijn nu in de Admin beschikbaar voor de checkout, de minicart, de winkelwagen en productpagina's. De voorbeelden laten zien hoe deze knoppen eruitzien wanneer ze zijn ingeschakeld en in de winkel worden weergegeven.
Braintree
-
Braintree is gestopt met de integratie voor fraudebescherming van KOUNT. Deze is verwijderd uit de codebase van Magento Open Source.
-
De optie Always request 3DS is toegevoegd aan de Admin.
PWA Studio
PWA Studio v.12.5.x is compatibel met Magento Open Source 2.4.5.
Nieuwe functies in deze release zijn onder meer:
-
Gegevens over het gedrag van shoppers worden in de PWA Studio-winkel verzameld voor webanalysediensten. Merchants kunnen zich nu op deze events abonneren en ze naar behoefte uitbreiden.
-
Merchants kunnen nu vanuit de Admin een dienst selecteren om te deployen (Google Tag Manager).
Zie PWA Studio releases voor informatie over verbeteringen en bugfixes. Zie Versiecompatibiliteit voor een lijst van PWA Studio-versies en de bijbehorende compatibele core-versies van Magento Open Source.
Opgeloste problemen
We hebben honderden problemen opgelost in de core-code van Magento Open Source 2.4.5.
Installatie, upgrade, deployment
- U kunt nu een data patch hernoemen en de oude klassenaam als alias toevoegen in de databasetabel
patch_list. Er wordt nu gecontroleerd of aliassen van data patches al in de database bestonden voordat de patch wordt toegepast. Voorheen gaf Magento Open Source onder deze omstandigheden een foutmelding. - Magento Open Source geeft niet langer een exception wanneer u vanuit de Admin probeert de Admin-URL te wijzigen in een aangepaste URL. Voorheen kon u na het wijzigen van de Admin-URL niet meer inloggen. GitHub-35416
- Merchants kunnen nu met succes upgraden van een Magento Open Source 2.4.2-installatie met Klarna naar Magento Open Source 2.4.3. GitHub-33760
- Het pad naar Magento Open Source Analytics is niet langer hardcoded. Voorheen leidde dit hardcoded pad tot conflicten wanneer er meerdere Magento Open Source-instanties op één server waren geïnstalleerd. GitHub-29373
Toegankelijkheid
- De knop Shopping bag geeft nu programmatisch of tekstueel zijn status aan. Gebruikers van schermlezers worden geïnformeerd dat een klik op deze knop andere content uitklapt, of dat de bijbehorende content is uit- of ingeklapt. Voorheen gaf deze knop zijn status niet programmatisch of tekstueel aan.
- Tekstelementen of afbeeldingen van tekst bij de creditcardoptie in Payment Information voldoen nu aan de door WCAG 2.0 vereiste minimale kleurcontrastverhouding van 4.5:1 voor standaardtekst van 18pt (24px) of 14pt (19px) indien vetgedrukt. Voorheen voldeden ze niet aan de verwachte contrastverhouding.
- Aangepaste focusindicatoren bij Address book > Communication > Account information hebben nu een contrastverhouding van minimaal 3:1 ten opzichte van de achtergrondkleur.
- De tekst van de knoppen Filter en Sort voldoet nu aan de door WCAG 2.0 vereiste minimale kleurcontrastverhouding van 4.5:1 voor standaardtekst van 18pt (24px) of 14pt (19px) indien vetgedrukt. Voorheen voldeden de navigatieknoppen van carrousels niet aan deze minimale contrastvereisten.
- Schermlezers lezen het woord âVeniaâ nu maar één keer voor bij het navigeren naar headers en footers van Venia. Voorheen werd hetzelfde woord twee keer achter elkaar voorgelezen.
- Knoppen die dropdowns openen, geven schermlezers nu informatie over hun uit- of ingeklapte status en een toegankelijke naam.
- Gebruikers van schermlezers worden geïnformeerd wanneer een nieuwe paginaweergave wordt weergegeven. Voorheen werd een wijziging van de paginatitel niet voorgelezen.
Adobe Stock
- Gebruikers kunnen zich nu met succes afmelden bij Adobe Stock.
Bundelproducten
- U kunt nu het endpoint
PUT /V1/productsgebruiken om prijsattributen van producten voor een specifieke website bij te werken. Voorheen kon u, als sommige productattributen voor een specifieke store view waren overschreven, geen prijsattribuut voor dat product in diezelfde store view bijwerken. - Magento Open Source berekent nu correct het winkelwagentotaal voor een bundelproduct wanneer de regel Product Subselect wordt toegepast.
Cache
- Full page cache wordt in de Admin niet langer als uitgeschakeld weergegeven wanneer de cache van Magento Open Source wordt geleegd en
use_stale_cacheis ingeschakeld. - Deployment markers van New Relic werken nu zoals verwacht wanneer de cache wordt geleegd. GitHub-32649
Winkelwagen en checkout
- De pop-up voor het zoeken naar adressen in de factureringsstap van het checkoutproces veroorzaakt geen DOM-fouten meer.
- De mutation
addProductsToCartwerkt nu correct met meerdere producten. Voorheen gaf deze query het eerste product terug met een correct subtotaal, maar een subtotaal van 0 voor de andere producten. - Uitzonderingen op machtigingen worden nu afgehandeld voor beperkte producten die via SKU worden toegevoegd. Shoppers krijgen nu een passende melding in de winkel en het aantalveld in de fouttabel is uitgeschakeld. Voorheen gaf Magento Open Source een exception zoals:
There has been an error processing your request. - De SQL-query die de betrokken quotes bijwerkt na het uitschakelen van een winkelwagenprijsregel is geoptimaliseerd, zodat niet langer de volledige quotetabel wordt vergrendeld.
- Shoppers met globaal gedeelde accounts hoeven niet langer opnieuw in te loggen op een tweede website in een multisite-installatie wanneer gastcheckout is uitgeschakeld. Klantgegevens worden nu geladen wanneer de shopper naar het subdomein navigeert. De shopper wordt niet meer gevraagd opnieuw in te loggen en de eerdere inhoud van de winkelwagen wordt weergegeven.
- Waarden in de adresdropdown van het checkoutproces veranderen niet langer voor de overige artikelen in een quote wanneer een adresitem met één stuk wordt verwijderd in een checkout met meerdere adressen. Voorheen veranderde de waarde van de adresdropdown voor alle producten naar de standaardwaarde wanneer een product tijdens een checkout met meerdere adressen uit een quote werd verwijderd.
- De query
cartgeeft geen null-antwoorden meer wanneer een product niet op voorraad is. Er is een nieuw elementerrorsmet de foutmelding aan het antwoord toegevoegd. Voorheen toonde Magento Open Source, wanneer u een query uitvoerde met een product dat niet op voorraad was, de waardenullonder de sectieitemsin het antwoord. Zie cart query. - Verzendmethoden zijn nu zoals verwacht beschikbaar wanneer een gast een account aanmaakt nadat hij een product aan de winkelwagen heeft toegevoegd en voordat hij naar de checkout gaat. Voorheen waren er tijdens de checkout geen verzendmethoden beschikbaar wanneer een gast een product aan de winkelwagen toevoegde voordat hij een account aanmaakte. Pas na het toevoegen van andere producten werden de verzendmethoden beschikbaar.
- Shoppers kunnen nu producten aan hun winkelwagen toevoegen wanneer er in het veld Allow Countries geen opties zijn geselecteerd.
- De inhoud van de winkelwagen en de inlogstatus worden nu zoals verwacht opnieuw geladen nadat een sessie is verlopen wanneer Enable Persistence is ingesteld op Yes. GitHub-35182
- Subtotalen in de minicart worden nu correct bijgewerkt wanneer een shopper in het checkoutproces van een bestelling met meerdere verzendadressen van de verzendpagina naar de winkelwagenpagina navigeert. Voorheen werd het subtotaal verdubbeld.
- De minicart toont nu eerder toegevoegde producten na een verlopen sessie wanneer Enable Persistence is ingeschakeld . GitHub-35183
- Merchants kunnen nu een creditnota aanmaken waarbij Refund Shipping (Incl. Tax) is ingesteld op -0.01 en kunnen dit bedrag nu op 0 zetten. Voorheen kon de creditnota onder deze omstandigheden niet worden aangemaakt.
Winkelwagenprijsregel
- Het attribuutbereik
Parent Onlywordt nu correct gebruikt in de voorwaarde van de winkelwagenregel.
Catalogus
- URL-keys van producten blijven nu ongewijzigd wanneer de productnaam via
PUT /V1/products/voor een store view wordt bijgewerkt. Voorheen werd op basis van de nieuwe productnaam een nieuwe URL-key gegenereerd en aan het product toegewezen, waardoor de URL-key in die store view werd overschreven. - Het toevoegen van een product aan een categorie vanuit de productwidget van Page Builder in carrouselmodus leidt niet langer tot het opnieuw laden van de pagina.
- Producten die zijn ingesteld op Not Visible Individually verschijnen niet langer in de resultaten van Advanced Search in de catalogus.
- Dynamische bundelattributen worden nu correct bijgewerkt op de pagina Mass Attribute Update. Voorheen bleef het attribuut Dynamic SKU ingesteld op Yes, ook al was het op de pagina Mass Update uitgeschakeld.
- Catalogusregels worden nu correct toegepast met incrementele indexers in plaats van een volledige herindexering.
- U kunt nu probleemloos wisselen tussen de lijst- en rasterweergave van productlijsten met meerdere pagina's. Voorheen toonde Magento Open Source, wanneer u naar de laatste pagina van een productlijst met meerdere pagina's ging en vervolgens naar de rasterweergave wisselde, deze foutmelding:
Unfortunately there are no products in this category on our website currently. - Rapporten van de Admin Action Log tonen nu zoals verwacht bijgewerkte product-ID's en bijgewerkte statusinformatie.
- Triggers worden na een volledige herindexering nu zoals verwacht hersteld in de tabel
catalogrule_product_price. Voorheen werden triggers uit de tabelcatalogrule_product_priceverwijderd na een volledige herindexering vancatalogrule_ruleofcatalogrule_product. - Categorieregels waarmee producten aan categorieën worden toegewezen, veranderen niet langer willekeurig.
- Categorieën kunnen niet langer globaal worden bijgewerkt door een beheerder met toegang die tot een bepaald bereik is beperkt. Voorheen veranderde, wanneer meerdere websites dezelfde categorie maar verschillende producten gebruikten en een beheerder met rechten voor slechts één winkel de producten in de categorie wijzigde, de productselectie ook voor andere winkels.
- De productdetailpagina toont nu de juiste prijs wanneer een niet-standaardvaluta voor een bepaalde locale wordt gebruikt. Voorheen werden getallen in de winkel niet zoals verwacht gelokaliseerd.
- De API en de winkel tonen nu dezelfde foutmelding wanneer wordt geprobeerd de staffelprijzen op te halen van een product met dubbele records. Voorheen gaf
PUT /V1/products/tier-priceseen onjuiste foutmelding. - Magento Open Source toont nu validatiefoutmeldingen wanneer u een product-URL-key probeert toe te voegen die eindigt op een koppelteken. Er is ook informatieve tooltiptekst beschikbaar.
- Het nieuwe veld
ConfigurableWishlistItem.configured_variantvervangt het veldConfigurableWishlistItem.child_sku. Dat laatste veld veroorzaakte een interne fout wanneer de verlanglijst van een klant een niet-geconfigureerd configureerbaar product bevatte. - URL-rewrites worden nu alleen gegenereerd voor de geselecteerde winkels tijdens de massale attribuutupdate om de zichtbaarheid van producten te wijzigen. Voorheen maakte de massale attribuutupdate een URL-rewrite aan voor de verkeerde winkel.
- Wanneer de instelling
Synchronize widget products with backend storageis ingeschakeld, voegt Magento Open Source gegevens over recent bekeken producten toe aan de databasetabelcatalog_product_frontend_action. Bij het toevoegen van records wordt het klant- of bezoekers-ID opgenomen. De sectierecently_viewed_productin het antwoord is nu leeg als het klant-ID en het bezoekers-ID null zijn. Hierdoor kan Magento Open Source, wanneer het Ajax-verzoekcustomer/section/loadwordt verzonden, recent bekeken producten correct filteren op klant- of bezoekers-ID. Voorheen bevatte het antwoord alle gegevens uit de databasetabelcatalog_product_frontend_action, omdat er niet werd gecontroleerd op een leeg klant- of bezoekers-ID. - Beheerders kunnen nu de opties van configureerbare producten in de winkelwagen van een shopper wijzigen via het schuifpaneel in de Admin. Voorheen werkte het schuifpaneel niet correct.
- De paginacache wordt nu zoals verwacht geleegd voor het bovenliggende configureerbare product wanneer wijzigingen aan een onderliggend product worden opgeslagen. Voorheen werden wijzigingen, doordat de cache niet werd geleegd, niet doorgevoerd op de productpagina van het configureerbare product in de winkel. GitHub-34508
- Productlijsten worden nu correct weergegeven in de Admin. Voorheen werd de productlijst niet weergegeven en toonde Magento Open Source deze foutmelding:
Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "<ID>" already exists. GitHub-33145 - Productprijzen zijn nu gelijk op de productdetailpagina en in de zoekfunctie van de winkel in multistore-installaties nadat Catalogue Price Scope is gewijzigd van website naar global. Voorheen toonde de pagina Catalog Search Results de global-prijs en de productdetailpagina de website-prijs. GitHub-34074
- Gelaagde navigatie toont nu zoals verwacht de producten met de hoogste prijzen wanneer Price Navigation Step Calculation is ingesteld op Manual.
- U kunt nu het aantal producten per pagina binnen een categorie wijzigen wanneer Remember Category Pagination is ingeschakeld. Voorheen verschilden de cookie-
form_keyen de UI-form_key, en toonde Magento Open Source deze foutmelding:Invalid Form Key. Please refresh the page. - De EAV-indexer verwerkt product-ID's nu als type
intom mogelijke prestatieproblemen te voorkomen. - Er wordt nu met succes een nieuwe productcache gegenereerd nadat u een nieuwe afbeelding met een naam die â.â bevat aan een product toevoegt, het product opslaat en de afbeeldingscache leegt. GitHub-32699
-
Magento Open Source toont nu zoals verwacht een foutmelding wanneer u vanaf de productpagina een attribuut probeert aan te maken zonder het Admin-veld in te vullen. GitHub-33099
-
Productbeoordelingen zijn nu correct in alle productlijsten van de catalogus wanneer de homepage meerdere cataloguslijsten bevat. GitHub-33867
Configureerbare producten
- Magento Open Source toont nu de juiste productprijs voor een configureerbaar product met een geselecteerde optie nadat het aantal op de productdetailpagina is gewijzigd. Voorheen werd de prijs na het wijzigen van het aantal teruggezet naar de oorspronkelijke waarde.
- De query
productshaalt nu prijzen op voor configureerbare producten die de configuratie-instelling Display Out Of Stock correct weerspiegelen. Voorheen gaf de query geen correcte prijzen terug. - Configureerbare opties worden nu gekoppeld aan configureerbare producten die in de Admin zijn aangemaakt met
POST /V1/configurable-products/configurable1/child. - Multiselect-attributen worden nu correct opgeslagen bij het bewerken van een product. Voorheen sloeg Magento Open Source bij het opslaan van een product de standaardoptie op voor niet-geselecteerde attributen én voor geselecteerde attributen.
- Magento Open Source toont nu zoals verwacht configureerbare attributen bij het aanmaken van globale
select-attributen via een patchscript. Voorheen werden in aanmerking komende globale attributen verborgen. -
De mutation
addConfigurableProductsToCartkan nu worden gebruikt om configureerbare producten met aangepaste opties toe te voegen. Voorheen gaf Magento Open Source deze foutmelding:Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62. GitHub-28860 -
U kunt nu configureerbare producten met optionele aangepaste opties opnieuw bestellen. Voorheen mislukten pogingen om opnieuw te bestellen en werd deze foutmelding getoond:
Some of the selected options are not currently available. GitHub-35409 - De mutation
addConfigurableProductsToCartwerkt nu zoals verwacht met meerdere producten. Voorheen werd onjuiste productinformatie of een ongeldige foutmelding teruggegeven. GitHub-30948
Klant
- Magento Open Source toont vooraf gedefinieerde EAV-systeemattributen in de winkel nu correct volgens de website-instelling. Voorheen werden klantattributen op websiteniveau die voor de ene website waren ingeschakeld en voor de andere waren uitgeschakeld, voor beide websites als ingeschakeld weergegeven.
Downloadbare producten
- U kunt nu voorbeeldlinks en -bestanden verwijderen uit een downloadbaar product. GitHub-31887
- Door het systeem verzonden e-mails worden nu met succes afgeleverd bij ontvangers met â.-â in hun e-mailadres.
- Klanten ontvangen nu e-mailherinneringen over hun verlaten winkelwagens volgens het juiste schema. De nieuwe SQL-functie
TIMESTAMPDIFF(DAY, ,)vervangt de functieTO_DAYS()en berekent het verschil tussen de tijdstempels op basis van datum en tijd. Voorheen werden e-mailherinneringen niet volgens schema verstuurd door een onjuiste berekening van twee datum-tijdwaarden: het moment van verlaten van de winkelwagen (willekeurige tijdzone) en de servertijd (UTC). - Magento Open Source toont nu een foutmelding op de verzendpagina wanneer een klant een ongeldig e-mailformaat invoert en vervolgens op Place Order klikt. Voorheen werd de foutmelding op de betaalpagina getoond. [GitHub-33590](https://github.com/magento/magento2/issues/33590
Frameworks
- Het commando
bin/magento setup:config:setoverschrijft niet langer reeds ingestelde cache-ID-prefixen inapp/etc/env.php. - Het commando
bin/magento setup:static-content:deploy -s compactneemt nu zoals verwacht stijlen uit child themes mee. Voorheen ontbraken CSS-bestanden van het thema na de deployment in de storefront. - Er is een nieuwe sniff toegevoegd die controleert of afsluitende slashes worden gebruikt in
void-elementen. - Magento Open Source geeft geen SQL-fout meer na het toewijzen van een nieuwe bron aan een product en het wijzigen van de hoeveelheid. GitHub-35262
- De sorteervolgorde van attributen werkt na een update nu zoals gespecificeerd in het bestand
di.xml. - De functie
updateCartCurrencyzet nu een string in plaats van een object in het cart-object. Voorheen laadde Magento Open Source geen quote metgetQuote, omdat de functieupdateCartCurrencyeen object in plaats van een string in het cart-object zette. GitHub-34199 - Deprecation-meldingen treden niet langer op in unit tests door
\DateTimeFormatter::formatObject(). Deze methode werkt nu zoals verwacht met numerieke waarden voor$format. - Magento Open Source toont niet langer een
preg_replace()-fout in de Admin. Het derde argument ($subject) is nu van het typearray|stringin plaats vanbool. - De methode
isFreeShippingretourneert nu een integer in plaats van een Boolean.GitHub-35164 - Magento Open Source geeft niet langer de volgende fout wanneer u een plugin maakt voor een willekeurige methode van de klasse
vendor/magento/module-backend/Model/Menu.php:Error: Call to undefined method ReflectionUnionType::getName(). GitHub-35292 - Magento Open Source retourneert nu een 404-fout in plaats van een 500-fout wanneer u in de storefront naar
/checkout/sidebar/updateItemQty/?item_qty=errornavigeert. Voorheen werd deze fout gegenereerd:Warning: A non-numeric value encountered in /vendor/magento/module-checkout/Controller/Sidebar/UpdateItemQty.php on line 69. GitHub-34380 - Magento Open Source veroorzaakt niet langer de fout
trim(): Passing null to parameter #1 ($string) of type string is deprecatedwanneer de AMPQ-verbinding zonder SSL-configuratie is ingesteld. - De databasedefinitie
longblogis gecorrigeerd naarlong blob. GitHub-35108 - Knockout-tekst met enkele aanhalingstekens is nu vertaalbaar. GitHub-34319
- Een
TypeErrorinmagento2/app/code/Magento/Security/Model/AdminSessionsManager.phpis gecorrigeerd vanintnaarstring. GitHub-34415 .htpasswdis toegevoegd aan de geblokkeerde locaties in hetnginx-configuratiebestand. GitHub-35150- De laadtijd van productlijstpaginaâs van categorieën is verbeterd door
Magento_Ui/js/core/appalsdepstoe te voegen aanapp/code/Magento/Ui/view/frontend/requirejs-config.js. GitHub-34847 - De methode
ProductRepository.php:getretourneert cachesleutels nu één keer. Voorheen werden ze twee keer geretourneerd. GitHub-34958 - Er is een foutmelding toegevoegd aan een nieuwe exception die in de exception handler voor cronjobs wordt aangemaakt. GitHub-34941
- De ReadMe-bestanden voor de modules
GraphQl-GroupedProductGraphQlzijn bijgewerkt. GitHub-34951 - De printpaginaâs voor bestellingen, facturen en creditnotaâs in de storefront tonen niet langer het standaard Luma-logo in plaats van het logo dat voor de website is ingesteld. GitHub-34942
Algemene oplossingen
- Het instellen van de maximale sessiegrootte op 0 (Admin Store > Settings > Configuration - Advanced) logt de beheerder niet langer uit. GitHub-35312
- De configuratie-instellingen van klantadresattributen worden nu correct geladen op basis van de website waaraan de klant is toegewezen, wanneer u vanuit de Admin een nieuw klantadres toevoegt voor een klant die aan een niet-standaard website is toegewezen.
- Magento Open Source geeft geen exception meer wanneer u een bundelproduct toevoegt via Page Builder.
- U kunt nu op een iOS-apparaat een klantaccount aanmaken met de schuine apostrof (â) in de voor-, tussen- of achternaam. Voorheen was alleen de rechte apostrof toegestaan en leidde de standaard schuine apostrof van iOS 11+ tot de fout
Name is not valid!. - De query
productsretourneert nu productinformatie die nauwkeurig overeenkomt met de configuratie âShow Related Productsâ. De veldenrelated_products,upsell_productsencrosssell_productsin de GraphQL ProductInterface worden nu respectievelijk opgelost volgens de configuratie Show Related Products, Show Upsell Products en Show Cross-Sell Products. - Het attribuut Set Product as New From Date toont nu de juiste datum wanneer het attribuut Set Product as New via een bulkupdate van producten wordt ingesteld. Voorheen werd Set Product as New From Date weergegeven als Jan 1, 1970.
- Gebruikers met beperkte rollen krijgen niet langer automatisch toegang tot nieuwe modules.
- Regelvoorwaarden voor gerelateerde producten werken nu zoals verwacht bij producten met
multiselect-attributen. - Verkopers kunnen nu een staffelprijsattribuut (
tier_price) toevoegen aan productvergelijkingen. Voorheen crashte de pagina voor productvergelijking wanneer de instelling Comparable on storefront voor dit attribuut was ingeschakeld. GitHub-35244 - Magento Open Source toont nu een foutmelding wanneer u een ongeldig cookiedomein instelt (Store > Configurations > Web > Default Cookie Settings Cookie Domain). Voorheen crashte de website. GitHub-35048
- Magento Open Source geeft geen fout meer wanneer een beheerder met rollen die tot één website zijn beperkt een product toevoegt aan Content Elements via PageBuilder. Voorheen gaf Magento Open Source een SQL-fout.
- Er is validatie toegevoegd aan de tweede regel van het straatadres op de paginaâs voor het bewerken en toevoegen van adressen. De minimale en maximale tekstlengte die voor de tweede regel zijn ingesteld, worden nu afgedwongen.
- Magento Open Source geeft na een upgrade niet langer de volgende fout bij het aanmaken van een catalogusregel in de Admin:
A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later. - Magento Open Source geeft geen fout meer wanneer u het selectievakje Check here to link an RSS feed to your Wish List activeert voordat u op Share Wish list klikt. GitHub-34998
- De titel van het selectievakje Show Password (in de formulieren Customer Login, Customer Registration, Customer Edit (sectie Change Password) en Customer Set New Password) is nu vertaalbaar. GitHub-34857
- De labels en commentaarbeschrijvingen in
app/code/Magento/NewRelicReporting/etc/adminhtml/system.xmlzijn bijgewerkt. GitHub-31947 - Overbodige
csp_whitelist.xml-bestanden zijn verwijderd. GitHub-30607
GraphQL
- Een ontbrekend
price_range-attribuut is toegevoegd aan het GraphQL-typeBundleItemOption. GitHub-35010 - De query
productsretourneert attributen niet langer als aggregatie wanneer de Layered Navigation-instelling Use in Search Results is uitgeschakeld. GitHub-33318 - Er is een veld
price_including_taxtoegevoegd aanCartItemPrices. GitHub-29057 - De velden
new_from_dataennew_to_datefieldsinProductInterfacezijn niet langer deprecated. GitHub-34783 - De query
categoriesgeeft geen exception meer bij het ophalen van een lijst categorieën waarvan er één een afbeelding bevat die niet op het bestandssysteem te vinden is. Voorheen gaf Magento Open Source deze exception:Category image not found. GitHub-34266 - De query
productsretourneert nu zoals verwachtcategory_uidals aggregatie. GitHub-32557 - De mutatie
updateCartItemsverwijdert producten nu zoals verwacht wanneer de productvoorraad de maximale voorraadhoeveelheid heeft bereikt. GitHub-30220 - De query
urlResolververwerkt het padscheidingsteken (/) nu correct wanneer meerdere homepages dezelfde identifier hebben. Voorheen verwerkte de query het scheidingsteken niet en retourneerde deze null. GitHub-33615 customer-queries halen nu zoals verwacht multi-select-opties van bundelproducten op bij het opvragen van bestellingen. GitHub-34717- Sessies in Magento Open Source eindigen niet langer na een GraphQL-request. Voorheen logde de plugin
ClearCustomerSessionAfterRequestde klant uit. GitHub-34550 - De prijsrange van configureerbare producten in responses van de query
productswordt nu correct berekend wanneer de configuratie-instelling Display Out of Stock Products is ingeschakeld. Voorheen werden uitgeschakelde opties meegenomen in de berekening van de minimum- en maximumprijs. - De query
productsretourneert nu correct gefilterde meerdere categorieën bij sortering op positie. setShippingAddressesOnCart-requests valideren regio-IDâs nu correct. Voorheen gaf Magento Open Source een fout wanneer u een regio-ID gebruikte in plaats van een regiocode.products-queries retourneren nu alleen de categorieën die gekoppeld zijn aan de store die in het request is meegegeven.- De query
categoryListretourneert nu resultaten die overeenkomen met de rootcategorie van de opgevraagde store wanneer de store in de header is opgegeven. Voorheen werden categorieën uit de standaard rootcategorie in de resultaten opgenomen, ook al was er een andere store in de header opgegeven. - De query
productsretourneert attributen niet langer als aggregatie wanneer de instelling Use in Search Results Layered Navigation is uitgeschakeld. GitHub-33318 - De query
cartretourneert voor gratis bestellingen nu slechts één betaalmethode. Voorheen werden alle actieve betaalmethoden in de response van de query geretourneerd. GitHub-34036 products-queries retourneren niet langerprice_range-waarden voor configureerbare producten die worden beïnvloed door uitgeschakelde varianten. GitHub-33629- Er is een plugin toegevoegd vóór de aanroep
collectQuoteTotalsom te voorkomen dat tegoed (store credit) meerdere keren wordt toegepast. - De mutatie
generateCustomerTokenAsAdminhaalt klanttokens nu zoals verwacht op. Voorheen werden er geen tokens geretourneerd en werd deze fout gegeven:Customer email provided does not exist. - Het GraphQL-schema is nu geldig wanneer een aangepast productattribuut
typeis gedefinieerd. Voorheen was het schema ongeldig omdat het attribuuttypevan producttypen werd overschreven door het aangepaste attribuuttype. GitHub-34929 - Klanten die worden toegevoegd of bijgewerkt met de mutatie
createCustomer,createCustomerV2,updateCustomerofupdateCustomerV2worden nu toegevoegd met actieve nieuwsbriefabonnementen. Voorheen werden klanten afgemeld voor nieuwsbrieven, zelfs als het request de juiste invoerparameters bevatte. GitHub-33599 - De query
productsvoor een specifieke store view retourneert in een multi-site-omgeving nu alleen categorieën die in de rootcategorie van de betreffende website staan. Voorheen retourneerde de query categorieën uit de rootcategorieën van andere websites. GitHub-34570 - De query
productsretourneert nu alleen de subcategorie van het opgegeven categorie-ID. Voorheen werden alle categorieën geretourneerd. GitHub-35220 - De query
customerOrdersreageert nu zoals verwacht wanneer het objectgift_messagein de response is opgegeven maar er geen cadeaubericht bestaat. Voorheen retourneerde de query deze melding:Can't load gift message for order is returned. GitHub-28957 - Er is een bug opgelost in de indexer
catalog_category_productwaardoor de queryproductscategorieën uit een andere store retourneerde. GitHub-31253 - De mutatie
generateCustomerTokenmaakt nu zoals verwacht een vermelding aan incustomer_logna het genereren van een klanttoken. GitHub-33378
Google Analytics
- De Google Tag-module is aan de codebase toegevoegd en ondersteunt de overstap naar Google Analytics 4 in juli 2023. U kunt momenteel nog nieuwe gegevens gebruiken en verzamelen in uw Google Universal Analytics-propertyâs, maar Google Universal bereikt in juli 2023 het einde van zijn levensduur. GitHub-35204, GitHub-35376
Afbeeldingen
- Afbeeldingen op productdetailpaginaâs flikkeren niet meer en blijven zoals verwacht gecentreerd. Voorheen verschoof de afbeelding zichtbaar naar beneden nadat een productdetailpagina klaar was met het laden ervan.
Import/export
- De positie van gerelateerde, upsell- en cross-sellproducten in de export-CSV is nu correct nadat een cross-sellproduct in de Admin is verwijderd voordat het CSV-bestand opnieuw wordt gegenereerd. Voorheen werden de posities van cross-sellproducten niet opnieuw berekend na het verwijderen van een cross-sellproduct en was de volgorde van de productposities onjuist.
- Magento Open Source controleert nu op een aangepaste weergave voordat kolommen worden gefilterd bij het exporteren van rapporten. Voorheen hielden geëxporteerde rapporten geen rekening met aangepaste weergaven en waren de geëxporteerde kolommen onjuist.
- Magento Open Source importeert nu met succes afbeeldingen met lange bestandsnamen. Voorheen importeerde Magento Open Source de afbeelding niet en gaf het deze fout:
Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):. - Categorie-ID-attributen zijn nu beschikbaar in filters voor geplande exports.
- Bundelproducten met een vraagteken (?) in de optietitel kunnen nu met succes worden geïmporteerd dankzij verbeteringen aan de querybuilder in de methode
populateExistingOptions. Ook wordt de optietitel correct weergegeven. Voorheen leidden opeenvolgende imports na de eerste import tot corrupt gedrag en dubbele opties, en konden klanten het product bovendien niet aan de winkelwagen toevoegen. - Er is validatie van categorienamen toegevoegd tijdens het importeren. Voorheen valideerde Magento Open Source categorienamen niet, wat tot fouten leidde wanneer categorienamen langer waren dan 255 tekens.
- Bestaande records in de tabel
catalog_url_rewrite_product_categoryworden nu verwijderd voordat nieuwe worden ingevoegd. Voorheen trad de volgende fout op tijdens het importeren van producten in een multi-store-omgeving:SQLSTATE[23000]: Integrity constraint violation. GitHub-34210
Infrastructuur
- Een verouderde Context Menu-plugin is uit de lijst met plugins verwijderd.
- De logica voor de werkbalk van de TinyMCE-editor in de Page Builder-module is bijgewerkt naar aanleiding van de introductie van
delayedRender-logica voor de werkbalk in TinyMCE. - Race conditions onderbreken het aanmaken van de event listener
contentUpdatedniet langer. GitHub-32068 - De functie
getTypeIDretourneert nu het producttype-ID en niet het product-ID. GitHub-35458 -
De mapping van de jQuery UI-slider en
SelectMenuis gecorrigeerd invendor/magento/module-theme/view/base/requirejs-config.js. -
Observers op
sales_order_state_change_beforeondersteunen nu het ophalen van gegevens uit het order-object. Het argumenteventvansales_order_state_change_beforeis bijgewerkt. GitHub-26789 indexer:resetis gerefactord zodat het$indexer->invalidate()aanroept. GitHub-34988- U kunt nu de dubbele punt gebruiken in de waarde van een
htmlClass-attribuut, wat het gebruik van aanvullende componenten zoals Tailwind UI mogelijk maakt. GitHub-34430
Logging
- Acties op klanten, klantadressen en bestellingen worden nu correct gelogd in het Admin-actierapport. Voorheen logde Magento Open Source geen acties als de handler
postDispatchniet in de configuratie-instellingen was opgegeven.
MFTF
Action groups
Herhalende acties zijn in deze tests vervangen door action groups:
AdminConfigurableProductChildrenOutOfStockTest GitHub-32378 AdminCreateStoreViewTest GitHub-34631
Nieuwe tests
AdminUnlockAdminUserEntityTest GitHub-34836
StorefrontNewsletterSubscriptionWithEnabledNeedToConfirmConfigTest GitHub-33344
Gerefactorde tests
AdminCancelTheCreatedOrderWithCashOnDeliveryPaymentMethodTest GitHub-33692
Nieuwsbrief
- Ingelogde klanten worden niet langer als gast gemarkeerd in Admin > Marketing > Newsletter Subscribers.
- De bevestigingsmail voor een nieuwsbriefabonnement bevat nu het juiste, storespecifieke e-mailadres in het veld From als de klant aan een niet-standaard store is toegewezen en vanuit de Admin is aan- of afgemeld. Voorheen ontving de klant een e-mail met het standaard e-mailadres in de From-header. GitHub-34963
- De afmeld-URL in het e-mailsjabloon voor de nieuwsbrief werkt nu zoals verwacht. GitHub-33310
Bestellingen
- Gegevens van gastklanten worden nu correct opgeslagen nadat een bestelling is bewerkt. Voorheen gingen sommige klantgegevens verloren, waaronder
customer_firstnameencustomer_lastname, x_forwarded_for. - Verkopers kunnen geen creditnota met een decimale totale hoeveelheid meer aanmaken wanneer Decimal qty op product- of globaal niveau is uitgeschakeld. Voorheen konden verkopers een creditnota voor een decimale totale hoeveelheid aanmaken waar dat niet van toepassing was.
- Filteren op datum werkt nu correct voor de grids van facturen, verzendingen, creditnotaâs, CMS-paginaâs en CMS-blokken wanneer de tijdzone in de voorkeuren afwijkt van de tijdzone op de lokale computer. Voorheen werd de datum onjuist geparsed en bevatten de gefilterde resultaten gegevens buiten het ingestelde datumbereik.
- Magento Open Source wijzigt niet langer aangepaste e-mailadressen die aan bestellingen zijn toegewezen wanneer u het hoofd-e-mailadres van de klant wijzigt op de accountbewerkingspagina in de Admin. Voorheen werd, wanneer u het hoofd-e-mailadres van een klant bewerkte, het nieuwe e-mailadres toegewezen aan elke bestelling die voor die klant was aangemaakt.

