Notes de mise à jour de Magento Open Source 2.4.5
Magento Open Source apporte des améliorations à la qualité de la plateforme, aux méthodes de paiement, aux performances de mise en cache du GraphQL et à l’accessibilité. Elle comprend des mises à jour des modules Google intégrés.
Cette version comprend plus de 290 correctifs et améliorations de qualité.
Autres informations de mise à jour
Bien que le code pour ces fonctionnalités soit fourni avec les versions trimestrielles du code principal de Magento Open Source, plusieurs de ces projets sont également publiés indépendamment. Les correctifs de bugs pour ces projets sont documentés dans les informations de mise à jour distinctes spécifiques au projet disponibles dans la documentation de chaque projet.
Points forts de Magento Open Source 2.4.5
Recherchez les points forts suivants dans cette version.
Améliorations de la sécurité
Cette version comprend 20 correctifs de sécurité et améliorations de la sécurité de la plateforme. Ce correctif de sécurité a été rétroporté dans Magento Open Source 2.4.4-p1 et Magento Open Source 2.3.7-p4.
Aucune attaque confirmée liée à ces problèmes ne s’est produite à ce jour. Cependant, certaines vulnérabilités peuvent potentiellement être exploitées pour accéder aux informations sur les clients ou prendre le contrôle de sessions d’administration. La plupart de ces problèmes nécessitent qu’un attaquant obtienne d’abord l’accès à l’administrateur. Par conséquent, nous vous rappelons de prendre toutes les mesures nécessaires pour protéger votre administrateur, y compris, mais sans s’y limiter, les mesures suivantes :
- PLACER SUR LA LISTE AUTORISÉE IP en cours de traitement
- authentification à deux facteurs
- utilisation d'un VPN
- utilisation d’un emplacement unique plutôt que de
/admin
- bonne hygiène des mots de passe
Consultez le Bulletin de sécurité d’Adobe pour connaître la dernière discussion sur ces problèmes résolus.
Améliorations de la sécurité supplémentaires
Les améliorations apportées à la sécurité dans cette version améliorent la conformité aux dernières bonnes pratiques de sécurité, notamment :
-
La prise en charge de reCAPTCHA a été ajoutée aux formulaires Partage de liste de souhaits, Création d’un nouveau compte client et Carte cadeau .
-
Les ressources ACL ont été ajoutées à l'inventaire.
-
La sécurité des modèles d'inventaire a été améliorée.
-
Le filtre
MaliciousCode
a été mis à niveau pour utiliser la bibliothèqueHtmlPurifier
.
Améliorations de Platform
Magento Open Source 2.4.5 prend désormais en charge
-
du compositeur 2.2
-
TinyMCE (5.10.2). Les versions antérieures de TinyMCE (v5.9.2 ou antérieure) permettaient l’exécution arbitraire de JavaScript lorsqu’une URL spécialement conçue ou une image avec une URL spécialement conçue était mise à jour.
-
de jQueryUI (1.13.1)
-
PHPStan
(^1.5.7 avec contrainte) GitHub-35315
Le schéma d'intégration DHL a été mis à jour de la v6.0 vers la v6.2. Cette mise à niveau n’entraînera pas de changement du comportement du produit.
Les bibliothèques JavaScript obsolètes ont été mises à jour vers leurs dernières versions et les dépendances obsolètes ont été supprimées. Ces modifications sont rétrocompatibles.
Mises à jour des dépendances du compositeur
Les dépendances du compositeur suivantes ont été mises à jour vers les dernières versions avec contrainte :
colinmollenhour/credis
(1.13.0)guzzlehttp/guzzle
(^7.4.2)laminas/laminas-captcha
(mise à jour avec une contrainte ^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)
Les dépendances laminas/laminas-session
, laminas/laminas-text
et laminas/laminas-view
ont été supprimées.
Autres mises à niveau et remplacements
-
Le schéma d'intégration DHL a été mis à jour de la v6.0 vers la v6.2.
-
L'URL de passerelle par défaut pour l'expédition USPS a été mise à jour pour utiliser
https
au lieu dehttp
. -
La bibliothèque
Froogaloop
a été remplacée par la bibliothèque VimeoPlayer.js
(2.16.4). -
La bibliothèque
grunt-eslint
(NPM) a été mise à niveau vers la dernière version. -
Les bibliothèques
jQuery Storage
ont été remplacées parjulien-maurel/js-storage
. -
Les outils d'analyse de code statique
php-cs-fixer
etphpcs
sont désormais compatibles avec PHP 8.x. -
Dépendance
glob.js
(mise à niveau avec contrainte vers ~7.2.0) -
Dépendance
serve-static.js
(mise à niveau avec contrainte ~1.14.2) -
Dépendance
underscore.js
(NPM) (1.14.2) -
moment-timezone-with-data.js
(0.5.34) -
La bibliothèque
jquery/jquery-cookie
a été remplacée parjs-cookie/js-cookie
. -
Les bibliothèques
jarallax.js
etjaralax-video.js
ont été mises à jour afin d’utiliser la dernière version de l’API REST Vimeo.
Mises à jour de l’accessibilité
L’objectif de cette version était de créer une expérience de storefront sur Venia (PWA) plus perceptible, plus exploitable, plus compréhensible et plus robuste. Ces améliorations comprennent :
- Les informations récapitulatives des résultats de recherche sont maintenant annoncées aux utilisateurs de lecteurs d’écran
- Les lecteurs d’écran sont désormais informés du chargement d’une nouvelle page vue
- Amélioration du contraste et de l’accessibilité du clavier
Google Analytics
Google a mis à jour les mécanismes de suivi et d’intégration d’AdWords et d’Analytics dans les applications web grâce à l’intégration à GTag. Cette intégration de la fonctionnalité Google dans les pages de site web étend les possibilités de suivi et de gestion du contenu par le biais des services Google. Adobe Commerce dispose d’un ensemble de modules intégrés, notamment Google AdWords, Analytics, Optimizer et TagManager, qui exploitent l’ancienne API pour l’intégration aux services Google. Dans cette version, nous avons réimplémenté cette intégration à l’aide de l’approche GTag Voir Migration de analytics.js vers gtag.js (Universal Analytics).
GraphQL
Les améliorations apportées aux performances de GraphQL sont les suivantes :
-
Les développeurs et les administrateurs obtiennent une reconstruction plus rapide du schéma GraphQL de storefront unifié lors du déploiement ou lors de la modification des attributs en production. Les acheteurs constatent également que les vitesses de chargement des pages sont considérablement plus rapides lorsque le schéma GraphQL doit être reconstruit, quelle que soit la raison.
-
Ajout de la possibilité de consommer la date/l’heure d’expiration du jeton d’autorisation via l’utilisation de jetons web JSON (JWT) dans l’API GraphQL.
-
La commande
bin/magento config:set graphql/session/disable 1
permet aux commerçants de désactiver complètement la création de cookies de session pour toutes les opérations de GraphQL. Par défaut, l’application Open Source crée ces cookies et s’en sert pour obtenir l’autorisation, ce qui affecte les performances. À l’avenir, nous vous recommandons d’utiliser des jetons comme seule forme d’autorisation pour les requêtes GraphQL. Il est déconseillé d’utiliser des cookies de session seuls ou conjointement avec des jetons d’autorisation. Voir Autorisation GraphQL. -
Les cookies de session sont désormais lancés dans les opérations GraphQL à l’aide de proxy de classe uniquement lorsque cela est nécessaire.
-
L’utilisation de la session a été supprimée des processeurs d’en-tête
http
dans GraphQL tels que le magasin, le client ou la devise.
Consultez le Guide du développeur de GraphQL pour plus d’informations sur ces améliorations.
Inventaire
La sécurité des modèles d'inventaire a été améliorée.
Page Builder
Page Builder v.1.7.2 est compatible avec Magento Open Source 2.4.5.
La disposition Colonnes de Page Builder comprend les améliorations suivantes :
-
Les colonnes sont désormais exposées, ce qui permet aux utilisateurs de contrôler les paramètres des colonnes sur le storefront.
-
Le redimensionnement des colonnes prend désormais en charge le renvoi à la ligne déclenché par les actions des utilisateurs.
Paiements
Apple Pay est désormais disponible pour tous les commerçants exécutant des déploiements avec les services de paiement activés. Ce mode de paiement ne nécessite pas que les acheteurs saisissent leurs informations de carte de crédit ou de débit. Apple Pay est disponible sur la page des détails du produit, dans le mini panier, dans le panier et dans le workflow de passage en caisse. Les commerçants peuvent activer cette fonctionnalité.
PayPal
-
Les commerçants d'Espagne et d'Italie peuvent désormais proposer PayPal Pay Later aux acheteurs.
-
Les aperçus des boutons PayPal, Crédit et Payer plus tard sont désormais disponibles dans l’administration pour les pages de passage en caisse, de mini-panier, de panier et de produit. Les aperçus révèlent à quoi ressembleront ces boutons lorsqu’ils seront activés et rendus sur le storefront.
Braintree
-
Braintree a arrêté l'intégration de la protection contre les fraudes KOUNT. Il a été supprimé de la base de code Magento Open Source.
-
L’option Toujours demander les 3DS a été ajoutée à l’administrateur.
PWA Studio
PWA Studio v.12.5.x est compatible avec Magento Open Source 2.4.5.
Les nouvelles fonctionnalités de cette version sont les suivantes :
-
Les données sur le comportement des acheteurs sont collectées sur le storefront PWA Studio pour les services Web Analytics. Les commerçants peuvent désormais s’abonner et prolonger ces événements si nécessaire.
-
Les commerçants peuvent désormais sélectionner un service à déployer à partir de l’administration (Google Tag Manager).
Pour plus d’informations sur les améliorations et les correctifs, voir Versions de PWA Studio. Consultez Compatibilité des versions pour obtenir la liste des versions de PWA Studio et de leurs versions principales de Magento Open Source compatibles.
Problèmes résolus
Nous avons corrigé des centaines de problèmes dans le code principal de Magento Open Source 2.4.5.
Installation, mise à niveau, déploiement
- Vous pouvez désormais renommer un correctif de données et ajouter l’ancien nom de classe en tant qu’alias dans la table de base de données
patch_list
. Magento Open Source vérifie désormais si les alias de correctif de données existaient déjà dans la base de données avant d’appliquer le correctif. Auparavant, le Source applicationOpen générait une erreur dans ces conditions.
- Magento Open Source ne renvoie plus d’exception lorsque vous tentez de modifier l’URL d’administration en URL personnalisée à partir de l’URL d’administration. Auparavant, après avoir modifié l’URL d’administration, vous ne pouviez pas vous connecter. GitHub-35416
- Les commerçants peuvent désormais effectuer une mise à niveau d’un déploiement Magento Open Source 2.4.2 avec Klarna vers Magento Open Source 2.4.3. GitHub-33760
- Le chemin d’accès à Magento Open Source Analytics n’est plus codé en dur. Auparavant, ce chemin d’accès codé en dur entraînait des conflits lorsque plusieurs instances Magento Open Source étaient installées sur un serveur. GitHub-29373
Accessibilité
- Le bouton Sac à provisions fournit désormais une indication programmatique ou textuelle de son état. Les utilisateurs et utilisatrices de lecteurs d’écran sont informés que si vous cliquez sur ce bouton, d’autres contenus seront développés, ou le contenu associé sera développé ou réduit. Auparavant, ce bouton ne fournissait aucune indication programmatique ou textuelle de son état.
- Les éléments de texte ou les images de texte de l'option de carte de crédit des informations de paiement respectent désormais le rapport de contraste des couleurs minimal requis de 4,5 :1 par la norme WCAG 2.0 pour un texte standard de 18 pt (24 px) ou de 14 pt (19 px) en cas de mise en gras. Auparavant, ils n’atteignaient pas le rapport de contraste attendu.
- Carnet d’adresses > Communication > Informations de compte les indicateurs de focus personnalisés fournissent désormais un rapport de contraste d’au moins 3:1 par rapport à la couleur d’arrière-plan.
- Le texte des boutons Filtrer et Trier respecte désormais le rapport de contraste des couleurs minimal requis de 4,5 :1 par la norme WCAG 2.0 pour un texte standard de 18 pt (24 px) ou 14 pt (19 px) en cas de mise en gras. Auparavant, les boutons de navigation pour les carrousels ne satisfaisaient pas à ces exigences de contraste minimales.
- Les lecteurs d’écran n’annoncent le mot « Venia » qu’une seule fois lors de la navigation vers les en-têtes et pieds de page Venia. Auparavant, le même mot était annoncé deux fois de suite.
- Les boutons qui déclenchent des listes déroulantes fournissent désormais aux lecteurs d’écran des informations indiquant leur statut développé ou réduit et les noms accessibles.
- Les utilisateurs et utilisatrices de lecteurs d’écran sont informés lorsqu’une nouvelle page vue est rendue. Auparavant, lorsqu’un titre de page était modifié, le changement de titre n’était pas annoncé.
Adobe Stock
- Les utilisateurs peuvent désormais se déconnecter d’Adobe Stock.
Lots de produits
- Vous pouvez désormais utiliser le point d’entrée
PUT /V1/products
pour mettre à jour les attributs de prix de produit pour un site web spécifique. Auparavant, si certains attributs de produit étaient remplacés pour une vue de magasin spécifique, vous ne pouviez pas mettre à jour un attribut de prix pour ce produit dans cette même vue de magasin.
- Magento Open Source calcule désormais correctement le total du panier pour un produit groupé lorsque la règle Sous-sélection de produit est appliquée.
Cache
- Le cache de page complet n’est plus affiché comme désactivé dans l’Administration lorsque le cache de Magento Open Source est vidé et que le
use_stale_cache
est activé.
- Les marqueurs de déploiement New Relic fonctionnent désormais comme prévu lorsque le cache est vidé. GitHub-32649
Panier et passer en caisse
- Le pop-up de recherche d’adresse à l’étape de facturation du workflow de passage en caisse ne provoque plus d’erreurs DOM.
- La mutation
addProductsToCart
fonctionne désormais correctement avec plusieurs produits. Auparavant, cette requête renvoyait le premier produit avec un sous-total précis, mais renvoyait un sous-total de 0 pour les autres produits.
- Les exceptions d’autorisation sont désormais gérées pour les produits restreints ajoutés par SKU. Un message approprié est désormais envoyé aux acheteurs sur le storefront et le champ Quantité dans la table d’erreur est désactivé. Auparavant, le Source applicationOpen générait une exception comme celle-ci :
There has been an error processing your request
.
- La requête SQL qui met à jour les devis concernés après la désactivation d’une règle de prix de panier a été optimisée afin d’éviter de verrouiller l’ensemble de la table des devis.
- Les acheteurs avec partage de compte global ne sont plus tenus de se reconnecter à un site web secondaire dans un déploiement multisite lorsque le passage en caisse des invités est désactivé. Les données client sont désormais chargées lorsque l’acheteur accède au sous-domaine. L’acheteur n’est plus invité à se reconnecter et le contenu du panier précédent s’affiche.
- Les valeurs des listes déroulantes d'adresses dans le workflow de passage en caisse ne changent plus pour les articles restants d'un devis lorsqu'un seul article d'adresse de quantité est supprimé dans un passage en caisse à plusieurs adresses. Auparavant, lorsqu’un produit était supprimé d’un devis lors d’un passage en caisse à plusieurs adresses, la valeur de la liste déroulante d’adresses était remplacée par la valeur par défaut pour tous les produits.
- La requête
cart
ne renvoie plus de réponses nulles lorsqu’un produit est en rupture de stock. Un nouvel élémenterrors
contenant le message d’erreur a été ajouté à la réponse. Auparavant, lorsque vous exécutiez une requête avec un produit en rupture de stock, l’application Open Source affichait une valeur denull
sous la sectionitems
de la réponse. Voir requête de panier.
- Les méthodes d’expédition sont désormais disponibles comme prévu lorsqu’un acheteur invité crée un compte après avoir ajouté un produit à son panier avant de passer en caisse. Auparavant, lorsqu’un invité ajoutait un produit au panier avant de créer un compte, aucune méthode d’expédition n’était disponible lors du passage en caisse. Après avoir ajouté d’autres produits au panier, les méthodes d’expédition sont devenues disponibles.
- Les acheteurs peuvent désormais ajouter des produits à leur panier lorsqu’aucune option dans le champ Autoriser les pays n’a été sélectionnée.
- Le contenu du panier et le statut de connexion sont désormais rechargés comme prévu après l’expiration d’une session lorsque Activer la persistance est défini sur Oui. GitHub-35182
- Les sous-totaux de mini panier sont désormais correctement mis à jour lorsqu’un acheteur navigue de la page d’expédition à la page de panier dans le workflow de passage en caisse pour une commande avec plusieurs adresses d’expédition. Auparavant, le sous-total était doublé.
- Le mini panier affiche désormais les produits ajoutés précédemment après une temporisation de session lorsque l’option Activer la persistance est activée . GitHub-35183
- Les commerçants peuvent maintenant créer un avoir dans lequel Rembourser l'expédition (Incl. Taxe) est défini sur -0,01 et peut désormais définir ce montant sur 0. Auparavant, l'avoir ne pouvait pas être créé dans ces conditions.
Règle de prix du panier
- La portée de l’attribut
Parent Only
est désormais correctement utilisée dans la condition de règle de panier.
Catalogue
- Les clés d’URL de produit restent désormais inchangées lors de la mise à jour du nom du produit via
PUT /V1/products/
pour une vue de magasin. Auparavant, une nouvelle clé d’URL était générée en fonction du nouveau nom de produit et attribuée au produit, ce qui remplaçait la clé d’URL dans cette vue de magasin.
- L’ajout d’un produit à une catégorie à partir du widget de produit Page Builder défini sur le mode carrousel ne déclenche plus de rechargement de page.
- Les produits définis sur Non visibles individuellement n’apparaissent plus dans les résultats de la recherche avancée du catalogue.
- Les attributs de bundle dynamique sont désormais correctement mis à jour dans la page Mise à jour en masse des attributs . Auparavant, l’attribut SKU dynamique restait défini sur Oui même s’il était désactivé sur la page Mise à jour en masse.
- Les règles de catalogue sont désormais correctement appliquées à l’aide d’indexeurs incrémentiels plutôt que d’une réindexation complète.
- Vous pouvez désormais basculer entre les vues liste et grille des listes de produits à plusieurs pages. Auparavant, lorsque vous accédiez à la dernière page d’une vue de liste de produits comportant plusieurs pages avant de passer à la vue grille, l’application Ouvrir Source affichait cette erreur :
Unfortunately there are no products in this category on our website currently
.
- Les rapports du journal d’action d’administration affichent désormais les ID de produit et les informations de statut mis à jour comme prévu.
- Les Triggers sont maintenant restaurés comme prévu dans la table
catalogrule_product_price
après une réindexation complète. Auparavant, les déclencheurs étaient supprimés du tableaucatalogrule_product_price
après une réindexation complètecatalogrule_rule
oucatalogrule_product
.
- Les règles de catégorie utilisées pour affecter des produits aux catégories ne changent plus de manière aléatoire.
- Les catégories ne peuvent plus être mises à jour globalement par un administrateur dont l’accès est limité à la portée. Auparavant, lorsque plusieurs sites web utilisaient la même catégorie mais des produits différents et qu’un administrateur disposant d’une autorisation limitée à un magasin modifiait les produits de la catégorie, la sélection de produits était également modifiée pour les autres magasins.
- La page des détails du produit affiche désormais le prix correct lorsqu’une devise autre que la devise par défaut pour un paramètre régional spécifié est utilisée. Auparavant, les nombres n’étaient pas localisés comme prévu sur le storefront.
- Le même message d’erreur s’affiche désormais par l’API et sur le storefront lors de la tentative de récupération des prix de niveau d’un produit avec des enregistrements en double. Auparavant,
PUT /V1/products/tier-prices
renvoyait un message d’erreur incorrect.
- Magento Open Source fournit désormais des messages d’erreur de validation lorsque vous tentez d’ajouter une clé d’URL de produit avec un trait d’union à la fin. Un texte d’info-bulle informatif est également disponible.
- Le nouveau champ
ConfigurableWishlistItem.configured_variant
a remplacé le champConfigurableWishlistItem.child_sku
. Ce dernier champ déclenchait une erreur interne lorsqu’une liste de souhaits d’un client contenait un produit configurable non configuré.
- Les réécritures d’URL sont désormais générées uniquement pour les magasins sélectionnés lors de la mise à jour en masse des attributs afin de modifier la visibilité du produit. Auparavant, la mise à jour en masse des attributs créait une réécriture d’URL pour le mauvais magasin.
- Lorsque le paramètre
Synchronize widget products with backend storage
est activé, l’application Open Source ajoute les données de produit récemment consultées dans le tableau de la base de donnéescatalog_product_frontend_action
. Il inclut l’identifiant client ou visiteur lors de l’ajout d’enregistrements. La sectionrecently_viewed_product
de la réponse est désormais vide si l’ID de client et l’ID de visiteur sont nuls. Par conséquent, lorsque la requête Ajaxcustomer/section/load
est envoyée, l’application Open Source peut filtrer correctement les produits récemment consultés en fonction de l’ID de client ou de visiteur. Auparavant, la réponse incluait toutes les données disponibles dans la table de la base de donnéescatalog_product_frontend_action
, car il n’existait aucune vérification pour un ID de client ou de visiteur vide.
- Les administrateurs peuvent désormais modifier les options de produit configurables dans le panier d’un acheteur à partir du panneau de diapositives d’administration. Auparavant, le panneau de diapositives ne fonctionnait pas correctement.
- Le cache de page est maintenant effacé comme prévu pour le produit parent configurable lorsque des modifications apportées à un produit enfant sont enregistrées. Auparavant, comme le cache n’était pas effacé, les modifications n’étaient pas sélectionnées sur la page du produit de configuration de storefront. GitHub-34508
- Les listes de produits sont désormais correctement rendues dans l’interface d’administration. Auparavant, la liste de produits ne s’affichait pas et Magento Open Source affichait cette erreur :
Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "<ID>" already exists
. GitHub-33145
- Les prix des produits sont désormais identiques sur la page des détails du produit et dans la recherche storefront dans les déploiements multi-magasin après le changement de l’étendue du prix du catalogue de site web à global. Auparavant, la page Résultats de la recherche catalogue affichait le prix global et la page de détails du produit affichait le prix site web. GitHub-34074
- La navigation en couches affiche désormais les produits aux prix les plus élevés comme prévu lorsque Calcul de l’étape de navigation par prix est défini sur Manuel.
- Vous pouvez désormais modifier la limite de produits par page affichée dans une catégorie lorsque la fonction Mémoriser la pagination de catégorie est activée. Auparavant, la
form_key
et l’interface utilisateur des cookiesform_key
différentes et Magento Open Source affichait cette erreur :Invalid Form Key. Please refresh the page
.
- L’indexeur EAV traite désormais les ID de produit en tant que type
int
afin d’éviter d’éventuels problèmes de performances.
- Un nouveau cache de produit est maintenant généré après l’ajout d’une nouvelle image avec un nom contenant « . » à un produit, puis enregistrez le produit et nettoyez le cache d’images. GitHub-32699
-
Magento Open Source affiche désormais un message d’erreur comme prévu lorsque vous tentez de créer un attribut à partir de la page produit sans remplir le champ Admin . GitHub-33099
-
Les évaluations de produit sont désormais correctes sur toutes les listes de produits du catalogue lorsque la page d’accueil contient plusieurs listes de catalogues. GitHub-33867
Produits configurables
- Magento Open Source affiche désormais le prix correct d’un produit configurable avec une option sélectionnée après avoir modifié sa quantité sur la page des détails du produit. Auparavant, le prix était réinitialisé à sa valeur initiale après modification de la quantité.
- La requête
products
récupère désormais les prix des produits configurables qui reflètent précisément le paramètre de configuration Afficher les produits en rupture de stock. Auparavant, la requête ne renvoyait pas de prix précis.
- Les options configurables sont désormais liées aux produits configurables créés dans l’interface d’administration à l’aide de
POST /V1/configurable-products/configurable1/child
.
- Les attributs à sélection multiple sont désormais correctement enregistrés lors de la modification du produit. Auparavant, applicationOpen Source enregistrait l’option par défaut pour les attributs non sélectionnés et les attributs sélectionnés lors de l’enregistrement d’un produit.
- Magento Open Source affiche désormais les attributs configurables comme prévu lors de la création d’attributs de
select
globaux via un script de correctif. Auparavant, les attributs globaux éligibles étaient masqués.
-
La mutation
addConfigurableProductsToCart
peut désormais être utilisée pour ajouter des produits configurables avec des options personnalisées. Auparavant, le Source applicationOpen générait cette erreur :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 -
Vous pouvez désormais commander à nouveau des produits configurables avec des options personnalisées facultatives. Auparavant, les tentatives de réorganisation échouaient et le signifiant affichait cette erreur :
Some of the selected options are not currently available
. GitHub-35409
- La mutation
addConfigurableProductsToCart
fonctionne désormais comme prévu avec plusieurs produits. Auparavant, des informations incorrectes sur les produits étaient renvoyées ou un message d’erreur non valide était renvoyé. GitHub-30948
Client
- Magento Open Source affiche désormais correctement les attributs système EAV prédéfinis en fonction des paramètres du site web sur le storefront. Auparavant, les attributs du client au niveau du site web qui étaient activés pour un site web et désactivés pour un autre s’affichaient comme activés pour les deux sites web.
Téléchargeable
- Vous pouvez désormais supprimer des exemples de liens et de fichiers d’un produit téléchargeable. GitHub-31887
- Les e-mails émis par le système sont désormais envoyés avec succès aux destinataires avec ».- » dans leur adresse e-mail.
- Les clients reçoivent désormais des rappels par e-mail concernant leurs paniers abandonnés selon le bon calendrier. La nouvelle fonction SQL
TIMESTAMPDIFF(DAY, ,)
a remplacé la fonctionTO_DAYS()
et calcule la différence dans les horodatages en fonction de la date et de l’heure. Auparavant, les rappels par e-mail n’étaient pas envoyés par planning en raison du calcul incorrect de deux valeurs date et heure d’abandon de panier (tout fuseau horaire) et d’heure du serveur (UTC).
- Magento Open Source affiche désormais un message d’erreur sur la page Expédition lorsqu’un acheteur saisit un format d’e-mail non valide après avoir cliqué sur Passer une commande. Auparavant, le message d’erreur s’affichait sur la page Paiement . [GitHub-33590](https://github.com/magento/magento2/issues/33590)
Frameworks
- La commande
bin/magento setup:config:set
ne remplace plus les préfixes d’ID de cache déjà définis dansapp/etc/env.php
.
- La commande
bin/magento setup:static-content:deploy -s compact
inclut désormais les styles des thèmes enfants comme prévu. Auparavant, les fichiers CSS du thème n’étaient pas présents sur le storefront après le déploiement.
- Un nouveau reniflement a été ajouté pour vérifier si les barres obliques fermantes sont utilisées dans les éléments
void
.
- Magento Open Source ne renvoie plus d’erreur SQL après l’affectation d’une nouvelle source à un produit et la modification de sa quantité. GitHub-35262
- L’ordre de tri des attributs fonctionne désormais comme spécifié dans le fichier
di.xml
après la mise à jour.
- La fonction
updateCartCurrency
définit désormais une chaîne au lieu d’un objet dans l’objet de panier. Auparavant, le Source applicationOpen ne chargeait pas de guillemet à l’aide degetQuote
, car la fonctionupdateCartCurrency
définissait un objet au lieu d’une chaîne dans l’objet panier. GitHub-34199
- Les avis d’obsolescence ne se produisent plus dans les tests unitaires en raison de
\DateTimeFormatter::formatObject()
. Cette méthode fonctionne désormais comme prévu avec les valeurs numériques pour$format
.
- Magento Open Source n’affiche plus d’erreur de
preg_replace()
sur l’administrateur. Le troisième argument ($subject
) est désormais de typearray|string
au lieu debool
.
- La méthode
isFreeShipping
renvoie désormais un entier plutôt qu’une valeur booléenne.GitHub-35164
- Magento Open Source ne renvoie plus l’erreur suivante lorsque vous créez un module externe pour une méthode de la classe
vendor/magento/module-backend/Model/Menu.php
:Error: Call to undefined method ReflectionUnionType::getName()
. GitHub-35292
- Magento Open Source renvoie désormais une erreur 404 au lieu d’une erreur 500 lorsque vous accédez à
/checkout/sidebar/updateItemQty/?item_qty=error
dans le storefront. Auparavant, cette erreur était générée :Warning: A non-numeric value encountered in /vendor/magento/module-checkout/Controller/Sidebar/UpdateItemQty.php on line 69
. GitHub-34380
- Magento Open Source ne déclenche plus d’erreur
trim(): Passing null to parameter #1 ($string) of type string is deprecated
lorsque la connexion AMPQ est configurée sans configuration SSL.
- Correction de la définition de la base de données
longblog
enlong blob
. GitHub-35108
- Le texte K.O. contenant des guillemets simples peut désormais être traduit. GitHub-34319
- Une
TypeError
dansmagento2/app/code/Magento/Security/Model/AdminSessionsManager.php
a été corrigée deint
àstring
. GitHub-34415
.htpasswd
a été ajouté à des emplacements interdits dans le fichier de configurationnginx
. GitHub-35150
- Le temps de chargement des pages de liste de produits de catégorie a été amélioré en ajoutant
Magento_Ui/js/core/app
en tant quedeps
àapp/code/Magento/Ui/view/frontend/requirejs-config.js
. GitHub-34847
- La méthode
ProductRepository.php:get
renvoie désormais une seule fois les clés de cache. Auparavant, ils étaient renvoyés deux fois. GitHub-34958
- Ajout d’un message d’erreur à une nouvelle exception créée dans le gestionnaire d’exceptions pour les tâches cron. GitHub-34941
- Les fichiers Lisez-moi des modules
GraphQl-GroupedProductGraphQl
ont été mis à jour. GitHub-34951
- Les pages de commande d’impression, de facture ou d’avoir de storefront n’affichent plus le logo Luma par défaut au lieu du logo qui a été spécifié pour être affiché sur le site Web. GitHub-34942
Correctifs généraux
- Définir la taille de session maximale sur 0 (Admin Store > Settings > Configuration - Advanced) ne déconnecte plus l’administrateur. GitHub-35312
- Les paramètres de configuration des attributs d’adresse du client sont désormais correctement chargés en fonction du site web auquel le client est affecté lorsque vous ajoutez une nouvelle adresse de client provenant de l’administrateur qui est affectée à un site web autre que celui par défaut.
- Magento Open Source ne renvoie plus d’exception lorsque vous ajoutez un produit groupé via Page Builder.
- Vous pouvez désormais créer un compte client sur un appareil iOS en insérant l’apostrophe (’) dans le prénom, le deuxième prénom ou le nom de famille. Auparavant, seule l’apostrophe droite était autorisée, et l’utilisation de l’apostrophe inclinée par défaut iOS 11+ entraînait une erreur
Name is not valid!
.
- La requête
products
renvoie désormais des informations sur les produits qui reflètent précisément la configuration « Afficher les produits associés ». Les champsrelated_products
,upsell_products
etcrosssell_products
de l’interface produit de GraphQL sont désormais résolus conformément aux configurations Afficher les produits associés, Afficher les produits de montée en gamme et Afficher les produits de vente croisée, respectivement.
- L’attribut Définir le produit comme nouveau à partir de la date affiche désormais la date correcte à laquelle l’attribut Définir le produit comme nouveau est défini par le biais d’une mise à jour en masse du produit. Auparavant, la mention Définir le produit comme étant la nouvelle date de début s’affichait comme 1er janvier 1970.
- Les utilisateurs dotés de rôles restreints ne se voient plus automatiquement accorder l’accès aux nouveaux modules.
- Les conditions des règles de produit associé fonctionnent désormais comme prévu avec les produits contenant des attributs de
multiselect
.
- Les commerçants peuvent désormais ajouter un attribut de prix de niveau (
tier_price
) aux comparaisons de produits. Auparavant, la page de comparaisons de produits se bloquait lorsque le paramètre Comparable sur storefront de cet attribut était activé. GitHub-35244
- Magento Open Source affiche désormais un message d’erreur lorsque vous définissez un domaine de cookie non valide (Store > Configurations > Web > Default Cookie Settings Cookie Domain). Auparavant, le site web s’était bloqué. GitHub-35048
- Magento Open Source ne renvoie plus d’erreur lorsqu’un administrateur dont les rôles sont limités à un seul site web ajoute un produit aux éléments de contenu à l’aide de PageBuilder. Auparavant, le Source applicationOpen générait une erreur SQL.
- La validation a été ajoutée à la deuxième ligne de l’adresse postale sur les pages Modifier et Ajouter une adresse . Les longueurs de texte minimale et maximale spécifiées sur la seconde sont désormais appliquées.
- Magento Open Source ne renvoie plus l’erreur suivante lors de la création d’une règle de catalogue dans l’administrateur après la mise à niveau :
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 ne renvoie plus d'erreur lorsque vous activez la case à cocher Cocher ici pour lier un flux RSS à votre liste de souhaits avant de cliquer sur Partager la liste de souhaits. GitHub-34998
- Le titre de la case à cocher Afficher le mot de passe (connexion du client, enregistrement du client, modification du client (section Modifier le mot de passe) et formulaires de définition d’un nouveau mot de passe du client) peut désormais être traduit. GitHub-34857
- Mise à jour des libellés et des descriptions des commentaires dans
app/code/Magento/NewRelicReporting/etc/adminhtml/system.xml
. GitHub-31947
- Suppression des fichiers
csp_whitelist.xml
inutiles. GitHub-30607
GraphQL
- Un attribut
price_range
manquant a été ajouté au type deBundleItemOption
GraphQL. GitHub-35010
- La requête
products
ne renvoie plus d’attributs sous la forme d’une agrégation lorsque le paramètre Utiliser dans les résultats de recherche Navigation superposée est désactivé. GitHub-33318
- Un champ
price_including_tax
a été ajouté àCartItemPrices
. GitHub-29057
- Les
new_from_data
etnew_to_datefields
deProductInterface
ne sont plus obsolètes. GitHub-34783
- La requête
categories
ne renvoie plus d’exception lors de la récupération d’une liste de catégories dont l’une contient une image introuvable sur le système de fichiers. Auparavant, le Source applicationOpen générait l’exception suivante :Category image not found
. GitHub-34266
- La requête
products
renvoie désormaiscategory_uid
sous la forme d’une agrégation comme prévu. GitHub-32557
- La mutation
updateCartItems
supprime désormais les produits comme prévu lorsque le stock de produits a atteint la quantité maximale. GitHub-30220
- La requête
urlResolver
résout désormais correctement le délimiteur de chemin (/) lorsque plusieurs pages d’accueil portent le même identifiant. Auparavant, la requête ne résolvait pas le délimiteur et renvoyait la valeur null. GitHub-33615
- Les requêtes
customer
récupèrent désormais les options de sélection multiple de produits groupés comme prévu lors de l’interrogation de commandes. GitHub-34717
- Les sessions Magento Open Source ne se terminent plus après qu’une requête GraphQL a été effectuée. Auparavant, le plug-in
ClearCustomerSessionAfterRequest
déconnectait l’acheteur. GitHub-34550
- Les fourchettes de prix de produit configurables dans
products
réponses aux requêtes sont désormais correctement calculées lorsque le paramètre de configuration Afficher les produits en rupture de stock est activé. Auparavant, les options désactivées étaient prises en compte dans le calcul des prix minimum et maximum.
- La requête
products
renvoie désormais correctement filtré plusieurs catégories lors du tri par position.
setShippingAddressesOnCart
requêtes valident désormais les identifiants de zone géographique. Auparavant, le Source applicationOpen générait une erreur lorsque vous utilisiez l’ID de région au lieu du code de région.
products
requêtes renvoient désormais uniquement les catégories associées au magasin transmis dans la requête.
- La requête
categoryList
renvoie désormais des résultats qui reflètent la catégorie racine du magasin interrogé lorsque le magasin est spécifié dans l’en-tête. Auparavant, les catégories de la catégorie racine par défaut étaient incluses dans les résultats même si un autre magasin était spécifié dans l’en-tête.
- La requête
products
ne renvoie plus d’attributs sous forme d’agrégation lorsque le paramètre Utiliser dans la navigation par couches des résultats de recherche est désactivé. GitHub-33318
- La requête
cart
renvoie désormais un seul mode de paiement pour les commandes gratuites. Auparavant, tous les modes de paiement actifs étaient renvoyés dans la réponse de la requête. GitHub-34036
products
requêtes ne renvoie plus de valeursprice_range
pour les produits configurables affectés par des variantes désactivées. GitHub-33629
- Ajout d’un module externe avant l’appel
collectQuoteTotals
pour s’assurer que les crédits de magasin ne sont pas appliqués plusieurs fois.
- La mutation
generateCustomerTokenAsAdmin
récupère désormais les jetons client comme prévu. Auparavant, les jetons n’étaient pas renvoyés et cette erreur était renvoyée :Customer email provided does not exist
.
- Le schéma GraphQL est désormais valide lorsqu’un attribut de produit
type
personnalisé est défini. Auparavant, le schéma n’était pas valide, car l’attributtype
sur les types de produits était remplacé par l’attributtype
personnalisé. GitHub-34929
- Les clients ajoutés ou mis à jour avec la mutation
createCustomer
,createCustomerV2
,updateCustomer
ouupdateCustomerV2
sont désormais ajoutés avec des abonnements à des newsletters actifs. Auparavant, les clients étaient désabonnés des newsletters même lorsque la requête contenait des paramètres d’entrée appropriés. GitHub-33599
- La requête
products
pour une vue de magasin spécifique renvoie désormais uniquement les catégories qui se trouvent dans la catégorie racine du site web spécifique dans un déploiement multisite. Auparavant, la requête renvoyait des catégories des catégories racines d’autres sites web. GitHub-34570
- La requête
products
renvoie désormais uniquement la sous-catégorie de l’ID de catégorie fourni. Auparavant, toutes les catégories étaient renvoyées. GitHub-35220
- La requête
customerOrders
répond désormais comme prévu lorsque l’objetgift_message
est spécifié dans la réponse, mais qu’il n’existe aucun message cadeau. Auparavant, la requête renvoyait le message suivant :Can't load gift message for order is returned
. GitHub-28957
- Correction d’un bug avec l’indexeur de
catalog_category_product
en raison duquel la requêteproducts
renvoyait des catégories d’un autre magasin. GitHub-31253
- La mutation
generateCustomerToken
crée désormais une entrée dans lecustomer_log
comme prévu après la génération d’un jeton client. GitHub-33378
Google Analytics
- Le module Google Tag a été ajouté à la base de code, qui prend en charge la transition vers Google Analytics 4 en juillet 2023. Vous pouvez actuellement utiliser et collecter de nouvelles données dans vos propriétés Google Universal Analytics, mais Google Universal atteindra sa fin de vie en juillet 2023. GitHub-35204, GitHub-35376
Image
- Les images des pages de détails du produit ne scintillent plus et les images restent centrées comme prévu. Auparavant, une fois qu’une page de détails du produit avait terminé le chargement d’une image, l’image s’était visiblement déplacée vers le bas.
Importer/exporter
- La position du produit lié, de montée en gamme et de vente croisée dans le fichier CSV d’exportation est désormais correcte après la suppression d’un produit de vente croisée de l’administrateur avant la régénération du fichier CSV. Auparavant, les positions sur les produits de vente croisée n’étaient pas recalculées après la suppression d’un produit de vente croisée, et l’ordre de position du produit était incorrect.
- Magento Open Source recherche désormais une vue personnalisée avant de filtrer les colonnes lors de l’exportation des rapports. Auparavant, les rapports exportés ne prenaient pas en compte les vues personnalisées et les colonnes exportées étaient incorrectes.
- Magento Open Source importe désormais avec succès les images dont les noms de fichier sont longs. Auparavant, applicationOpen Source n’importait pas l’image et générait l’erreur suivante :
Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):
.
- Les attributs d’ID de catégorie sont désormais disponibles dans les filtres d’exportation planifiés.
- Regrouper les produits qui contiennent un point d’interrogation (?) dans l’option , le titre peut maintenant être importé grâce aux améliorations apportées à query builder dans
populateExistingOptions
méthode . Le titre de l’option s’affiche également correctement. Auparavant, après l’importation initiale, les importations successives provoquaient un comportement corrompu et doublaient les options. Les acheteurs n’ont pas pu ajouter le produit au panier non plus.
- Ajout de la validation des noms de catégorie lors de l’importation. Auparavant, le Source applicationOpen ne validait pas les noms de catégorie, ce qui entraînait des erreurs lorsque les noms de catégorie dépassaient 255 caractères.
- Les enregistrements existants de la table
catalog_url_rewrite_product_category
sont maintenant supprimés avant d'en insérer de nouveaux. Auparavant, l’erreur suivante se produisait lors de l’importation de produits multi-magasin :SQLSTATE[23000]: Integrity constraint violation
. GitHub-34210
Infrastructure
- Un plug-in de menu contextuel obsolète a été supprimé de la liste des plug-ins.
- La logique liée à la barre d’outils de l’éditeur TinyMCE dans le module Page Builder a été mise à jour suite à l’introduction de la logique
delayedRender
pour la barre d’outils dans TinyMCE.
- Les conditions de concurrence n’interrompent plus la création de l’écouteur d’événement
contentUpdated
. GitHub-32068
- La fonction
getTypeID
renvoie désormais l’ID du type de produit, et non l’ID du produit. GitHub-35458
-
Le curseur de l’interface utilisateur jQuery et le mappage
SelectMenu
ont été corrigés dansvendor/magento/module-theme/view/base/requirejs-config.js
. -
Les observateurs placés sur
sales_order_state_change_before
prennent désormais en charge la récupération des données de l’objet order. L’argumentsales_order_state_change_before
event
a été mis à jour. GitHub-26789
indexer:reset
a été refactorisé pour appeler$indexer->invalidate()
. GitHub-34988
- Vous pouvez désormais utiliser le signe des deux-points dans une valeur d’attribut
htmlClass
, qui prend en charge l’utilisation de composants supplémentaires tels que l’interface utilisateur de Tailwind. GitHub-34430
Journalisation
- Les actions Client, Adresse du client et Commande sont désormais correctement consignées dans le rapport Action de l’administrateur. Auparavant, applicationOpen Source ne consignait pas les actions si le gestionnaire
postDispatch
n’avait pas été spécifié dans les paramètres de configuration.
MFTF
Groupes d'actions
Les actions répétitives ont été remplacées par des groupes d’actions dans ces tests :
AdminConfigurableProductChildrenOutOfStockTest
GitHub-32378AdminCreateStoreViewTest
GitHub-34631
Nouveaux tests
AdminUnlockAdminUserEntityTest
GitHub-34836
StorefrontNewsletterSubscriptionWithEnabledNeedToConfirmConfigTest
GitHub-33344
Tests refactorisés
AdminCancelTheCreatedOrderWithCashOnDeliveryPaymentMethodTest
GitHub-33692
Newsletter
- Les clients connectés ne sont plus marqués comme invités dans Admin > Marketing > Abonnés à la newsletter.
- L’e-mail de confirmation d’inscription à la newsletter comporte désormais l’adresse e-mail correcte, spécifique au magasin, dans le champ De si le client est affecté à une boutique autre que celle par défaut et s’il s’est abonné ou désabonné de l’administrateur. Auparavant, le client ou la cliente recevait un e-mail avec l’e-mail par défaut dans l’en-tête De. GitHub-34963
- L’URL de désabonnement dans le modèle d’e-mail de newsletter fonctionne désormais comme prévu. GitHub-33310
Ordre
- Les détails des clients invités sont désormais enregistrés après la modification d’une commande. Auparavant, certains détails du client étaient perdus, notamment
customer_firstname
etcustomer_lastname, x_forwarded_for
.
- Les commerçants ne peuvent plus créer d'avoir avec une quantité totale décimale lorsque la quantité décimale est désactivée au niveau d'un produit ou d'un paramètre global. Auparavant, les commerçants pouvaient créer un avoir pour la quantité totale décimale lorsqu'elle n'était pas applicable.
- Le filtrage par date fonctionne désormais correctement pour les factures, les expéditions, les avoirs, les pages CMS et les grilles de blocs CMS lorsque le fuseau horaire défini dans les préférences diffère du fuseau horaire défini sur un ordinateur local. Auparavant, l’analyse de la date était incorrecte et les résultats filtrés incluaient des données en dehors de la période définie.
- Magento Open Source ne modifie plus les adresses e-mail personnalisées affectées aux commandes lorsque vous modifiez l’adresse e-mail principale affectée au client sur la page de modification du compte d’administrateur. Auparavant, lorsque vous modifiiez l’adresse e-mail principale d’un client, la nouvelle adresse e-mail était affectée à chaque commande créée pour ce client. GitHub-34397
- Magento Open Source affiche désormais les enregistrements du magasin demandé sur la page de grille des avoirs dans les déploiements exécutant PHP 7.4. Auparavant, le Source applicationOpen générait l’erreur suivante après la création d’un avoir et la tentative d’affichage :
The store that was requested wasn't found. Verify the store and try again
.
- Magento Open Source affiche désormais les avoirs sur la page grille d'avoirs pour les commandes créées à partir des vues de magasin dont le nom est précédé de chiffres. Auparavant, le Source applicationOpen affichait l’erreur :
The store that was requested wasn't found. Verify the store and try again. Exception in /var/www/html/vendor/magento/module-store/Model/StoreRepository.php:75
. GitHub-35122
- Magento Open Source affiche désormais les frais de livraison gratuits (0) sur les totaux des pages de facture Admin et Storefront. Auparavant, lorsque l'expédition était égale à zéro pour une commande, l'application Open Source n'affichait pas le montant total d'expédition sur le total d'expédition de la page facture.
- La colonne
increment_id
du tableausales_order
a été augmentée. Auparavant, les modules tiers qui supposaient quesales_order.increment_id
avait une longueur de 50 caractères n’enregistraient que les 32 premiers caractères d’uneincrement_id
. GitHub-34521
Modes de paiement
- Les administrateurs peuvent désormais passer une commande auprès de l'administrateur à l'aide du mode de paiement PayPal PayflowPro. Auparavant, le Source applicationOpen affichait cette erreur :
No such entity with cartId = 0
.
- La page de vérification des paiements du workflow de passage en caisse affiche désormais le nom correct du mode de paiement lorsque le paiement est effectué avec Venmo, PayPal Later ou PayPal.
- La requête
cart
ne renvoie plus tous les modes de paiement actifs pour les commandes gratuites. GitHub-34036
Braintree
- Les commerçants peuvent désormais soumettre un remboursement partiel pour les commandes payées avec Apple Pay via Braintree. Il s’agissait d’un problème connu dans Magento Open Source 2.4.4.
PayPal
- Magento Open Source affiche désormais le nom correct du client dans une commande d’invité payée avec PayPal. Auparavant, le nom du client s’affichait en tant qu’invité.
- Le résolveur de la mutation createPaypalExpressToken a été mis à jour afin d’utiliser correctement la valeur spécifiée dans le champ d’entrée use_paypal_credit. Auparavant, il tentait d’utiliser un champ de
paypal_credit
non valide. GitHub-35180
Performances
- La gestion du cache Redis a été améliorée grâce à l'ajout d'une durée de vie (date d'expiration) pour les caches de données de produits associés aux produits configurables. Auparavant, ces caches n’étaient pas évincés en raison de valeurs de durée de vie manquantes si la politique d’éviction de clé Redis était configurée sur une politique d’éviction volatile.
- Le nouvel attribut d’adresse client/client
Grid Filter Condition Type
contrôle la manière dont un filtre d’attribut est mis en correspondance avec les valeurs d’attribut dans la base de données. Les options incluentPartial Match
,Prefix Match
etFull Match
.
- L’indexeur de texte intégral de la recherche catalogue a été déplacé en dehors de la boucle des magasins, ce qui simplifie la réindexation. GitHub-33984
- Correction d’un problème lié aux
array_merge
dans les boucles. GitHub-33929
Tarification
- Les attributs de prix qui n’ont aucune valeur dans la portée par défaut (mais qui sont définis au niveau de la vue du magasin) sont désormais indexés correctement. Auparavant, les expressions SQL qui récupéraient les valeurs des attributs de prix dans la table EAV ne prenaient pas en compte le scénario dans lequel la valeur n’était pas définie dans la portée par défaut.
- Le prix indiqué sur la page des détails du produit est désormais identique au prix indiqué dans le workflow de passage en caisse pour les prix de niveau qui diffèrent selon la quantité sélectionnée (par exemple, un produit dont le prix est différent en fonction de l’achat de 2 articles au lieu de 5 articles). Auparavant, le prix de passage en caisse reflétait le prix de la quantité de produit la plus faible.
ReCAPTCHA
- Le bouton Envoyer sur les pages Connexion et Créer un compte est désormais inactif jusqu’à ce que ReCaptcha soit complètement chargé.
Rôles
- La page Store > Configuration > Services affiche désormais les informations d’API Web Magento Open Source attendues lorsque l’accès à la ressource est défini sur Personnalisé dans l’onglet Ressources de rôle. GitHub-35506
Rechercher search-heading
- Le filtrage des produits par échantillon de couleur sur la navigation superposée affiche l’image correcte des produits après la correction.
- Les requêtes Elasticsearch fonctionnent désormais comme prévu lorsqu’
int
est configuré en tant qu’attribut detype
principal consultable. Auparavant, le Source applicationOpen générait une exceptionElasticsearch\Common\Exceptions\BadRequest400Exception
.
- Vous pouvez désormais utiliser des synonymes de recherche avec le paramètre Termes minimum à faire correspondre dans les requêtes Elasticsearch. Auparavant, si ce paramètre était spécifié dans les paramètres et que des termes de recherche étaient ajoutés pour des mots-clés spécifiques, la recherche ne renvoyait aucun résultat.
- Magento Open Source affiche désormais un nombre précis de suggestions de résultats de recherche sur le storefront dans les déploiements où les suggestions de recherche et le paramètre Afficher le nombre de résultats pour chaque suggestion sont activés. Auparavant, le nombre affiché en regard des mots-clés était nul.
- Les produits triés par attributs personnalisés sur la page Catalogue s’affichent désormais dans l’ordre prévu. Auparavant, les produits étaient triés en fonction de leur ID de valeur d’option d’attribut, qui reflète l’ordre dans lequel ils ont été ajoutés à l’attribut. GitHub-33810
- Le filtrage des produits par échantillon de couleur dans la navigation superposée affiche désormais les images correctes du produit. Auparavant, la clé de
PageCache
de navigation superposée n’incluait pas de paramètres de filtre pour les produits configurables.
- Correction des erreurs PHP sur le
catalogsearch/advanced/result
etcatalogsearch/advanced/index
pages. Auparavant, Magento Open Source affichait cette erreur lorsqu’un tableau était transmis dans une chaîne de recherche avancée :Warning: trim() expects parameter 1 to be string, array given | magento/module-catalog-search
. GitHub-33586
Expédition
- Magento Open Source ne renvoie plus d’erreur lors du chargement des taux d’expédition UPS si aucun mode d’expédition autorisé n’est sélectionné. Auparavant, lorsqu’un acheteur saisissait une adresse de livraison dans le workflow de passage en caisse dans ces conditions, aucune autre méthode de livraison n’était affichée et Magento Open Source affichait une erreur sur le storefront. GitHub-34411
- Les prix des produits virtuels sont désormais exclus dans le tableau de calcul du montant d'expédition des taux. Auparavant, les frais d’expédition de ces produits n’étaient pas calculés correctement.GitHub-35185
- Les taux d’expédition de table à prix nul s’affichent désormais correctement dans le bloc Résumé de la commande du workflow de passage en caisse pour les commandes auxquelles un coupon de remise a été appliqué. Auparavant, la méthode d’expédition n’était pas affichée.
Taxe
- La taxe sur les produits fixe (FPT) s’affiche désormais correctement pour les produits du panier. Auparavant, si plusieurs produits du panier avaient les options Taxe fixe sur les produits (FPT) et Appliquer la taxe à FPT activées, tous les FPT étaient affectés au dernier produit du panier et réinitialisés pour d’autres produits.
- Le total de la taxe sur les produits fixe (FPT) pour la section de résumé de la commande du workflow de passage en caisse est désormais calculé correctement.
- Magento Open Source met désormais à jour le prix du niveau Hors taxe pour un produit simple sur la page produit comme prévu une fois que la quantité du produit simple a changé.
- La validation a été ajoutée à la page de configuration du magasin pour vérifier si le pays sélectionné dans la liste déroulante figure sur la liste des pays de l’UE. Le bouton Valider le numéro de TVA est désormais visible uniquement pour les pays de l’UE. Auparavant, le bouton était visible pour tous les pays, y compris le Royaume-Uni.
- Les prix de niveau sont désormais calculés correctement lorsque Afficher les prix des produits dans le catalogue est défini sur Hors taxe ou Inclure et exclure la taxe. Auparavant, la page des détails du produit affichait les prix de niveau avec les taxes en dépit du paramètre .
- Les taxes sont désormais appliquées correctement pour les commandes à toute adresse valide dans les vitrines en utilisant le paramètre régional portugais. GitHub-34271
- La requête
cart
n’inclut plus la taxe lors du renvoi dessubtotal_with_discount_excluding_tax
. GitHub-33905
- Les requêtes API Web pour les données de commande (
GET /V1/orders/
) ne renvoient plus de valeurs négatives pour les totaux des lignes.
Test
- Correction des erreurs avec
Magento.GraphQl.CatalogGraphQl.ProductSearchTest.testSearchSuggestions
lors de l’exécution avec la configuration AWS Elasticsearch.
-
Le test d’intégration
testCreateProductOnStoreLevel
n’entraîne plus de transaction imbriquée sur la base de données. -
L'exception suivante ne se produit plus lors de l'exécution de tests WebAPI pour la fonction Envoyer un ami lorsque l'image du produit n'est pas définie sur PHP 8.1 :
exception main.ERROR: /var/www/html/lib/internal/Magento/Framework/DataObject.php:131 strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated
. GitHub-34864
Traductions et paramètres régionaux
- Vous pouvez désormais utiliser l’outil Traduire en ligne pour modifier le même élément plusieurs fois. Auparavant, seule la première modification apportée à l’aide de cet outil était incluse.
- Le sélecteur de vue de magasin ne bloque plus le volet de traduction lorsque vous modifiez le texte ou les libellés de l’administrateur. Vous pouvez désormais modifier ces fonctionnalités à partir du volet de traduction et l’interface affiche ces modifications lorsque vous cliquez sur Envoyer.
- Le format de date et d’heure d’administration pour les paramètres régionaux portugais brésilien et français est désormais valide.
- Ajout d’un accent grave (`) au programme de validation des noms afin que le compte client puisse être créé pour les prénoms ou les noms qui incluent cet accent.
- Le texte du bouton Ajouter au panier de la page Détails du produit reste désormais traduit dans la langue spécifiée dans les paramètres régionaux associés. Les fichiers de traduction sont désormais convertis en fichiers JavaScript correspondants en fonction des zones, des thèmes et des paramètres régionaux lors de la
translate_strategy=embedded
. Auparavant, le texte était rétabli à l’anglais après l’ajout du produit au panier.
- Les synonymes de recherche respectent désormais la portée de magasin qui leur est attribuée. Auparavant, un synonyme attribué à un magasin spécifique pouvait faire l’objet de recherches dans n’importe quel autre magasin.
- Les problèmes liés à la langue philippine (Philippines) ont été résolus. GitHub-33996
Interface utilisateur
- Les noms de produits longs de la grille Catalogue > Produits sont désormais entourés de mots au lieu d’être affichés sur une seule ligne.
- La plage de date de naissance minimale et maximale est désormais enregistrée en tant qu’horodatage correct, puis convertie d’un horodatage valide en un format de date valide.
- L’indisponibilité de
magento.com
n’entraîne plus de problèmes de performances lors de la connexion de l’administrateur. Un délai d’expiration a été ajouté à la demande de récupération de notification de publication.
- Les résultats des filtres Commande administrateur, Client et Grille de produits persistent désormais comme prévu lorsqu’ils s’affichent dans le navigateur Chrome.
- Vous pouvez désormais créer un client à partir de l’Administration lorsque
Magento_LoginAsCustomerAdminUi
est activé et que Store View To Login To est défini sur manual selection (Sélection manuelle). Auparavant, le Source applicationOpen générait cette erreur :(Magento\Framework\Exception\LocalizedException): Unable to get Customer ID
. GitHub-33096
- La flèche Suivant est désormais désactivée comme prévu lorsqu’un acheteur atteint la dernière image miniature de la galerie d’images du produit.
- Le champ de saisie Recherche par mot-clé comporte désormais un élément
aria-label
au lieu d’un espace réservé sur la page Catalogue > Produit.
- Le lien Politique de confidentialité dans le pied de page d’administration renvoie désormais à la nouvelle politique de confidentialité d’Adobe.
- Les administrateurs peuvent désormais accéder aux options du menu Administration lorsque le regroupement JavaScript est activé en mode production. GitHub-35325
- Les administrateurs peuvent désormais définir la date d’expiration de l’utilisateur actuel au-delà de 2038 et enregistrer l’utilisateur. Auparavant, l’utilisateur dont la date d’expiration avait été modifiée ne pouvait pas se reconnecter après s’être déconnecté.
- Magento Open Source affiche désormais un message d’erreur informatif lorsqu’un administrateur tente d’enregistrer une adresse avec des lignes de rue excessives dans Admin Store > Attributes > Customer Address. L’administrateur peut maintenant supprimer les informations d’adresse supplémentaires et enregistrer l’adresse. Auparavant, applicationOpen Source validait les lignes supplémentaires mais n’enregistrait pas les données.
- La configuration de la vue Liste des produits dans la base de données et le stockage local a été mise à jour. Les vues de grille personnalisées sont désormais enregistrées lors du rechargement de la page et des modifications d’affichage.
- Vous pouvez désormais basculer entre les vues de magasin lorsque les restrictions de site web sont activées. Auparavant, le sélecteur d’affichage des magasins rencontrait des problèmes qui empêchaient le changement d’affichage des magasins.
- Le formulaire de chargement de l’icône favicon prend désormais en charge les types de fichiers
.ico
. Auparavant, lorsque vous tentiez de télécharger un fichier favicon avec ce type d’extension dans l’Administration, l’application Open Source affichait cette erreur :Warning: imagecreatefromstring(): one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully in /var/www/html/vendor/magento/module-media-storage/Model/File/Validator/Image.php on line 64
. GitHub-34858
- Correction des problèmes d’affichage du menu déroulant Sélectionner dans la grille d’administration. GitHub-35386
Réécritures d’URL
- Les URL d’un produit dans une vue de magasin spécifique uniquement sont désormais supprimées du tableau
url_rewrite
et d’Admin après le changement du statut de visibilité du code d’attribut pour la vue de magasin spécifique en Non visible individuellement. Auparavant, toutes les URL étaient supprimées pour le produit dans le tableauurl_rewrite
. GitHub-34937
Vidéo
- Vous pouvez désormais utiliser les paramètres d’URL YouTube à l’aide de Page Builder pour ajouter une nouvelle vidéo. Auparavant, ces paramètres étaient automatiquement supprimés de l’URL.
- Vous pouvez désormais définir une vidéo Vimeo pour qu’elle s’exécute en arrière-plan dans un élément
banner
lorsque la CSP est définie surrestrict mode
. Auparavant, le Source applicationOpen générait une erreur JavaScript.
Framework d’API web
- Mutex a été implémenté pour les commandes afin d’empêcher les conditions de concurrence lors de la mise à jour par des requêtes simultanées. Auparavant, les conditions de concurrence lors d’appels simultanés de l’API REST entraînaient un remplacement des informations de statut d’expédition dans la table Admin Items Ordered .
- L’héritage du rôle d’image du produit est désormais conservé, sauf s’il est explicitement défini dans la payload lors de la mise à jour d’un produit dans une vue de magasin spécifique via l’API REST.
- Le schéma Swagger (
/rest/schema
) utilise désormais des identifiants d’opération uniques.
- Les règles de prix de panier créées via le point d’entrée
POST /V1/salesRules/
conservent désormais les valeurs de code de coupon existantes après avoir modifié le statut de désactivé en activé. GitHub-35298
- Les règles de prix de panier créées via le point d’entrée
POST /V1/salesRules/
contiennent désormais des valeurs defrom_date
et deto_date
valides. GitHub-35265
CartItemInterface
inclut désormaiscustomizable_options
. GitHub-31180
- Les requêtes PUT et DELETE en bloc de l’API REST fonctionnent désormais comme prévu lorsque le module
Magento_ReCaptchaWebapiRest
est activé. GitHub-35348
- L’API Bulk Rest fonctionne désormais avec l’option
bySku
pour les produits configurables. Auparavant, il renvoyait une erreur 500.
- La création d’un barème de prix spécial avec le point d’entrée
POST /V1/products/special-price
fonctionne désormais comme prévu. Auparavant, le point d’entrée renvoyait cette erreur :Future Update already exists in this time range. Set a different range and try again
.
- Le point d’entrée
/V1/products/base-prices
fonctionne désormais comme prévu avec Mode Prix de catalogue - Site web. GitHub-30132
Liste de souhaits
- La mise à jour d'une quantité d'article à partir de la page de liste de souhaits met désormais à jour la quantité sur la page des détails du produit comme prévu. L’application Open Source récupère désormais la valeur mise à jour de l’URL du produit et renseigne le champ
qty
de la page des détails du produit à partir de la liste de souhaits elle-même.
Problème connu
Problème : les utilisateurs administrateurs ne peuvent pas commander ni commander à nouveau des clients auprès de l’administrateur lorsque Braintree est activé. Lorsque l’utilisateur administrateur clique sur Commander ou Réorganiser, Adobe Commerce n’envoie pas la commande et le system.log
affiche le message d’erreur suivant : report.CRITICAL: Error: Call to a member function getMethodInstance() on null in /app/vendor/paypal/module-braintree-core/Block/Form.php:174
. Solution : BUNDLE-3137-composer.patch
est désormais disponible. Pour une discussion sur ce problème et l’accès au correctif consultez l’article de la base de connaissancesL’administrateur ne peut pas créer de commande/réorganiser un paiement Braintree activé. Un correctif sera également inclus dans Adobe Commerce 2.4.5-p1.
Contributions de la Communauté
Nous sommes reconnaissants envers l’ensemble de la communauté Magento Open Source et souhaitons saluer leurs contributions à cette version.
L’équipe d’ingénierie de communauté Magento Contributors tient à jour une liste des principaux contributeurs individuels et partenaires par mois, trimestre et année. Depuis cette page Contributeurs, vous pouvez suivre les liens vers leurs relations publiques fusionnées sur GitHub.
Contributions des partenaires
Le tableau suivant présente les contributions des partenaires. Ce tableau répertorie le partenaire qui a contribué à la demande d’extraction, le numéro de la demande d’extraction externe et le numéro de problème GitHub qui lui est associé (le cas échéant).
Contributions des contributeurs individuels
Le tableau suivant identifie les contributions des membres de notre communauté. Ce tableau répertorie le membre de la communauté qui a contribué à la demande d’extraction, le numéro de demande d’extraction externe et le numéro de problème GitHub qui lui est associé (le cas échéant).
Configuration requise
Notre pile technologique est construite sur PHP et MySQL. Pour plus d'informations, voir Configuration requise.
Instructions d’installation et de mise à niveau
Vous pouvez installer Magento Open Source 2.4.5 à l’aide du compositeur.