[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

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é.

NOTE
Les versions d’Adobe Commerce peuvent contenir des modifications non rétrocompatibles (BIC). Pour vérifier les modifications non rétrocompatibles, voir Référence BIC. Les principaux problèmes de rétrocompatibilité sont décrits dans points forts du BIC. Toutes les versions n’introduisent pas de BIC majeurs.

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èque HtmlPurifier.

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 de http.

  • La bibliothèque Froogaloop a été remplacée par la bibliothèque Vimeo Player.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 par julien-maurel/js-storage.

  • Les outils d'analyse de code statique php-cs-fixer et phpcs 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 par js-cookie/js-cookie.

  • Les bibliothèques jarallax.js et jaralax-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ément errors 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 de null sous la section items 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 tableau catalogrule_product_price après une réindexation complète catalogrule_rule ou catalogrule_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 champ ConfigurableWishlistItem.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ées catalog_product_frontend_action. Il inclut l’identifiant client ou visiteur lors de l’ajout d’enregistrements. La section recently_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 Ajax customer/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ées catalog_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 cookies form_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

E-mail

  • 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 fonction TO_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 dans app/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 de getQuote, car la fonction updateCartCurrency 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 type array|string au lieu de bool.
  • 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 en long blob. GitHub-35108
  • Le texte K.O. contenant des guillemets simples peut désormais être traduit. GitHub-34319
  • Une TypeError dans magento2/app/code/Magento/Security/Model/AdminSessionsManager.php a été corrigée de int à string. GitHub-34415
  • .htpasswd a été ajouté à des emplacements interdits dans le fichier de configuration nginx. 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 que deps à 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 champs related_products, upsell_products et crosssell_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 de BundleItemOption 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 et new_to_datefields de ProductInterface 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ésormais category_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 valeurs price_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’attribut type sur les types de produits était remplacé par l’attribut type personnalisé. GitHub-34929
  • Les clients ajoutés ou mis à jour avec la mutation createCustomer, createCustomerV2, updateCustomer ou updateCustomerV2 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’objet gift_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ête products renvoyait des catégories d’un autre magasin. GitHub-31253
  • La mutation generateCustomerToken crée désormais une entrée dans le customer_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 dans vendor/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’argument sales_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-32378
AdminCreateStoreViewTest 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 et customer_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 tableau sales_order a été augmentée. Auparavant, les modules tiers qui supposaient que sales_order.increment_id avait une longueur de 50 caractères n’enregistraient que les 32 premiers caractères d’une increment_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 incluent Partial Match, Prefix Match et Full 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 de type principal consultable. Auparavant, le Source applicationOpen générait une exception Elasticsearch\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 et catalogsearch/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 des subtotal_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 tableau url_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 sur restrict 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 de from_date et de to_date valides. GitHub-35265
  • CartItemInterface inclut désormais customizable_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.

recommendation-more-help
1d4eef6c-fef1-4e61-85eb-b58d7b9ac29f