[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 d’Adobe Commerce 2.4.3

Adobe Commerce 2.4.3 apporte des améliorations aux performances et à la sécurité, ainsi que des améliorations significatives de la plateforme. Les améliorations de sécurité comprennent l’extension de la couverture reCAPTCHA et l’inclusion de la limitation de débit intégrée. Les dépendances du compositeur principal et les bibliothèques tierces ont été mises à niveau vers les dernières versions compatibles avec PHP 8.x.

Cette version comprend plus de 370 nouveaux correctifs du code principal et 33 améliorations de la sécurité. Tous les problèmes connus identifiés dans les notes de mise à jour de la version 2.4.2 d’Adobe Commerce ont été corrigés dans cette version.

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.

Voir les notes de mise à jour d’Adobe Commerce 2.4.2-p2 pour plus d’informations sur Adobe Commerce 2.4.2-p2.

Autres informations de mise à jour

Bien que le code de ces fonctionnalités soit fourni avec des versions trimestrielles , plusieurs de ces projets (par exemple, B2B, Page Builder et Progressive Web Applications (PWA) Studio) 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.

Appliquez MC-43048__set_rate_limit__2.4.3.patch pour résoudre le problème de limitation de débit de l’API

Ce correctif fournit une solution au problème en raison duquel les API Web ne peuvent pas traiter les requêtes contenant plus de 20 éléments dans un tableau. Ce problème affecte les déploiements exécutant Magento Open Source 2.4.3, Adobe Commerce 2.4.3 ou 2.3.7-p1. Une limitation de débit intégrée a été ajoutée à ces versions pour empêcher les attaques par déni de service (DoS). Le nombre maximal par défaut a été défini sur 20. Ce correctif rétablit la limite par défaut à une valeur plus élevée. Si vous pensez que votre boutique fait l’objet d’une attaque par déni de service, Adobe recommande de réduire les limites d’entrée par défaut à une valeur inférieure afin de limiter le nombre de ressources pouvant être demandées. Consultez l’article de la base de connaissances L’API Web ne peut pas traiter les requêtes comportant plus de 20 éléments.

Appliquez AC-384__Fix_Incompatible_PHP_Method__2.4.3_ce.patch pour corriger l'erreur fatale PHP lors de la mise à niveau

L’erreur fatale suivante peut se produire lors de la mise à niveau vers Adobe Commerce 2.4.3 :

PHP Fatal error: Uncaught Error: Call to undefined function Magento\Framework\Filesystem\Directory\str_contains() in [...]/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74

Cette erreur résulte de l'utilisation de la fonction str_contains, qui est une fonction PHP 8.x. Adobe Commerce 2.4.3 ne prend pas en charge PHP 8.x. Ce correctif remplace cette fonction par une fonction PHP 7.x prise en charge. Consultez l’article Mise à niveau d’Adobe Commerce 2.4.3, 2.3.7-p1 PHP Correctif d’erreur fatalede la base de connaissances .

Appliquez AC-3022.patch pour continuer à proposer DHL comme transporteur

DHL a introduit la version 6.2 du schéma et abandonnera la version 6.0 dans un avenir proche. Adobe Commerce 2.4.4 et les versions antérieures qui prennent en charge l’intégration DHL ne prennent en charge que la version 6.0. Les commerçants qui déploient ces mainlevées devraient appliquer AC-3022.patch dès que possible pour continuer à offrir DHL en tant que transporteur. Pour plus d’informations sur le téléchargement et l’installation du correctif, consultez l’article de la base de connaissances Appliquer un correctif pour continuer à proposer DHL en tant que transporteur.

Faits saillants

Recherchez les points forts suivants dans cette version.

Améliorations substantielles de la sécurité

Cette version comprend 33 correctifs de sécurité et améliorations de la sécurité de la plateforme. La plupart de ces correctifs de sécurité ont été rétroportés en 2.4.2-p2 et 2.3.7-p1.

Trente-trois améliorations de la sécurité qui permettent de corriger les vulnérabilités RCE (Remote Code Execution) et XSS (Cross-site scripting)

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. Placer sur la liste autorisée 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, ces efforts : la limitation des adresses IP, l'authentification à deux facteurs, l'utilisation d'un VPN, l'utilisation d'un emplacement unique plutôt que d'un /admin, et une bonne hygiène des mots de passe. Consultez le Bulletin de sécurité Adobe pour une 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 :

  • Un nouveau plug-in Composer permet d’éviter toute confusion de dépendance et identifie les packages malveillants portant le même nom que les packages internes dans le référentiel public de packages. Consultez l’article de blog Plug-in du nouveau compositeur d’Adobe avec la version 2.4.3 .

  • La limitation de débit est désormais intégrée aux API pour empêcher les attaques par déni de service (DoS). Les API Web imposent désormais des restrictions sur la taille ou le nombre de ressources (la valeur maximale par défaut est définie sur 20 et peut être configurée sur une valeur différente en fonction des besoins de l’entreprise) qui peuvent être demandées par un client. Voir Limitation de débit pour plus d’informations sur la configuration de ces restrictions.

  • La couverture de ReCAPTCHA a été étendue pour inclure :

    • Les API web avec les pages HTML correspondantes sont couvertes via ReCAPTCHA. (Cela exclut les API Web accessibles par le biais d’intégrations.) La couverture ReCAPTCHA protège les points d’entrée des attaques de spam. Lorsque l’accès aux API web est réalisé par un service d’intégration tiers qui utilise OAuth, ReCAPTCHA est désactivé.

    • Page de storefront Passer une commande et API web liées au paiement. La protection ReCAPTCHA pour ces pages est désactivée par défaut et peut être activée à partir de l’Administration. Cette couverture ajoute un mécanisme anti-force brute pour protéger les magasins des attaques par cartes.

NOTE
À compter de la version 2.3.2, nous attribuerons et publierons des numéros CVE (Common Vulnerabilities and Expositions) indexés avec chaque bogue de sécurité qui nous est signalé par des tiers externes. Cela permet aux utilisateurs et utilisatrices d’identifier plus facilement les vulnérabilités non corrigées dans leur déploiement. Pour en savoir plus sur les identifiants CVE, voir CVE.

Améliorations de l’infrastructure

Cette version comprend des améliorations qui améliorent la qualité du framework et les domaines fonctionnels suivants :

  • Compte client

  • Catalogue

  • CMS

  • OMS

  • Import/Export

  • Promotions et ciblage

  • Panier et passer en caisse

  • B2B

  • Évaluation et prévisualisation

PayPal Pay Later est désormais pris en charge dans les déploiements qui incluent PayPal. Cette fonctionnalité permet aux acheteurs de payer une commande par versements bimensuels au lieu de payer le montant total au moment de l’achat.

Nouveau mode d’indexation use_application_lock. Le mode use_application_lock vous permet d’activer la réindexation soit en utilisant des variables d’environnement, soit en configurant le fichier app/etc/env.php. Vous n’avez plus besoin de réinitialiser manuellement l’indexeur après un échec lorsque ce mode est activé. Voir Utilisation du mode de verrouillage de l’application pour les processus de réindexation.

Améliorations de Platform

La version 2.4.3 n'est pas encore compatible avec PHP 8.x, mais les mises à niveau suivantes de la plateforme nous rapprochent de la compatibilité future avec PHP 8.x.

  • Les dépendances du compositeur principal et les bibliothèques tierces ont été mises à niveau vers les dernières versions compatibles avec PHP 8.x.

  • La bibliothèque KnockoutJS a été mise à niveau vers la version 3.5.1 (la dernière version).

  • La bibliothèque TinyMCE v3 obsolète a été supprimée. Le module Magento_Tinymce3Banner et les tests MFTF relatifs à TinyMCE v3.x ont été supprimés d’Adobe Commerce.

  • La compatibilité de la version 2.4.3 avec Redis 6.0.12 a été testée et confirmée. (la version 2.4.x reste compatible avec Redis 5.x.)

  • Les dépendances de la bibliothèque Laminas ont été mises à niveau vers des versions compatibles avec PHP 8.x. Certaines dépendances redondantes ont été supprimées du fichier composer.json. Adobe Commerce 2.4.3 utilise Laminas 3.4.0.

Améliorations des performances

Cette version comprend des améliorations qui réduisent le temps d’indexation des indexeurs de prix de produit et de règles de catalogue. Les commerçants peuvent désormais exclure un site web d’un groupe de clients ou d’un catalogue partagé, ce qui réduit le nombre d’enregistrements à indexer et améliore les temps d’indexation.

Recherche en direct

Live Search optimisé par Adobe Sensei offre une expérience de recherche intuitive en utilisant l’intelligence artificielle et des algorithmes de machine learning pour effectuer une analyse approfondie des données agrégées du visiteur. Voir Notes de mise à jour de Live Search.

GraphQL

Cette version ajoute la prise en charge de GraphQL pour les fonctionnalités suivantes :

Consultez le Guide du développeur de GraphQL pour plus d’informations sur ces améliorations.

B2B

La version 2.4.3 introduit B2B v1.3.2. Cette version comprend plusieurs correctifs. Voir Notes De Mise À Jour B2B.

Page Builder

Page Builder est désormais disponible en tant qu’extension groupée dans Magento Open Source. Il s’agit désormais de l’outil d’édition de contenu par défaut pour Adobe Commerce 2.4.3 et Magento Open Source 2.4.3. Il peut remplacer l’éditeur WYSIWG par n’importe quel module tiers.

Page Builder remplace l’éditeur TinyMCE dans les zones d’administration suivantes :

  • Page CMS
  • Bloc CMS
  • Description de la catégorie
  • Description du produit

Tout le contenu créé dans TinyMCE a été migré dans Page Builder en tant qu’HTML.

PWA Studio

Pour plus d’informations sur les améliorations et les correctifs, voir Versions de PWA Studio. Consultez compatibilité pour obtenir la liste des versions de PWA Studio et de leurs versions compatibles.

Outil de compatibilité de mise à niveau

Le périmètre de l’outil de compatibilité de mise à niveau a été étendu en fonction des commentaires de la communauté. Rejoignez notre canal Slack #upgrade-compatibility-tool pour obtenir de l’aide de l’équipe produit d’Adobe et de la communauté, ainsi que pour vous aider à orienter la direction future de l’outil.

Mises à jour de Cloud Managed Services

Cette version comprend des améliorations de notre prise en charge d’Amazon Simple Storage Service (AWS S3) et des services gérés dans le cloud Amazon Aurora. Il fournit une prise en charge certifiée pour AWS ElastiCache, AWS Elasticsearch et les files d’attente gérées par AWS (Rabbit MQ). (Nous avons testé la fonctionnalité, les performances et l’intégration de ces services avec Adobe Commerce.)

Intégration d’Adobe Stock

Cette version comprend l’intégration d’Adobe Stock v2.1.1.

Extensions développées par le fournisseur

Consultez les rubriques suivantes pour connaître les mises à jour sur les fonctionnalités et les modifications de cette version :

Problèmes résolus

Nous avons corrigé des centaines de problèmes dans le code principal 2.4.3.

Installation, mise à niveau, déploiement

  • La commande bin/magento setup:db:status renvoie désormais un message indiquant que tout est à jour après une mise à niveau réussie. Auparavant, l’application affichait cette erreur : Declarative Schema is not up to date.
  • Les valeurs de configuration sont désormais conservées lors du rechargement du formulaire lorsque la création d’un nouveau produit configurable échoue. Auparavant, les valeurs étaient perdues lors du rechargement du formulaire et l’application affichait cette erreur : The value specified in the URL Key field would generate a URL that already exists. GitHub-32102
  • L’application ne renvoie plus d’exception lorsque vous exécutez bin/magento setup:upgrade pour effectuer une mise à niveau d’un déploiement Magento Open Source avec Redis vers Adobe Commerce.
  • Les règles de prix de panier précédemment créées sont désormais affichées sur la page Tableau de bord d’évaluation du contenu après la mise à niveau d’un déploiement de Magento Open Source vers Adobe Commerce.
  • Les déploiements exécutés sur le cluster Galera prennent désormais en charge davantage de clients. GitHub-31038
  • Les administrateurs peuvent désormais se connecter à un déploiement lorsque l’application a été installée avec l’option —use-rewrites=0 ou avec la web/seo/use_rewrites définie sur 0 dans core_config_data_table. GitHub-32100
  • Mise à jour du chargement du sortOrder pour AsyncCssPlugin. L’application se charge désormais AsyncCssPlugin avant la JsFooterPlugin. GitHub-30882
  • Magento\Config\Model\Config\PathValidator vérifie désormais le chemin d’affichage pour déterminer si un élément existe et, s’il possède un chemin de configuration, utilise le chemin d’accès config.xml à la place pour la validation. GitHub-27678
  • La compilation de fichiers Less avec Grunt ou par compilation côté serveur produit désormais les mêmes résultats. Précédemment. .abs- styles, qui étend d'autres .abs- styles dans _extends.less, n'ont pas été correctement générés lors de la compilation avec Grunt. Cela entraînait des différences entre les déploiements de production et de développement. GitHub-7231

AdminGWS

  • L’administrateur GWS utilise désormais des valeurs int pour la condition SQL website_id dans les collections d’administrateurs pour les administrateurs disposant d’autorisations personnalisées.

Intégration d’Adobe Stock

  • L’application affiche désormais un message d’information et un lien vers la page Admin Magasins > Configuration > Avancé > Système de la page Rechercher Adobe Stock lorsque Clé API (ID client) et Secret client ne sont pas définis. Auparavant, l’application affichait cette erreur : We couldn't find any records et aucun lien.

Serveur principal

  • Les administrateurs disposant d’un accès restreint (par exemple, qui se voient attribuer l’accès à un seul site web) ne peuvent plus modifier les catégories définies sur la portée globale.
  • Le rapport système généré (Système > Assistance > Rapport système) s’affiche désormais correctement. Auparavant, le contenu du rapport n’était pas aligné correctement.
  • L’application désactive désormais la validation sur le champ Price comme prévu lorsque le paramètre Prix dynamique est activé lors de la création du bundle de produits. Auparavant, l’application générait une erreur de validation lorsque vous supprimiez une valeur du champ Prix lorsque le paramètre Prix dynamique était activé. GitHub-26214
  • Les redirections infinies ne se produisent plus lorsque l’URL d’administration diffère de l’URL du site web par défaut dans les déploiements où l’application est configurée pour être accessible à partir de deux URL.

Lots de produits

  • Vous pouvez désormais utiliser la mutation addProductsToCart pour ajouter un lot de produits avec plusieurs cases à cocher à un panier.
  • L’indexation des prix des produits groupés est désormais exécutée à l’aide de tables temporaires, ce qui évite de verrouiller les tables de base de données. Auparavant, l’application utilisait des tables physiques, ce qui entraînait le verrouillage de celles-ci.
  • Le prix d'un article groupé peut maintenant être défini sur 0,00. Auparavant, lorsque vous reveniez à la page de modification après avoir défini le prix sur 0,00, le prix revenait à sa valeur par défaut. GitHub-32383
  • Les détails de commande des commandes contenant des produits groupés affichent désormais le prix correct des produits groupés si le prix a été modifié avant la commande.
  • Le statut de stock du produit groupé est désormais mis à jour en fonction du statut de stock de ses produits enfants. Auparavant, les produits groupés s’affichaient comme étant en rupture de stock lorsqu’une option était supprimée du produit et le produit groupé avait deux options avec le même SKU.
  • Un administrateur peut désormais modifier la valeur de l’attribut Shipment Type d’un produit groupé après l’avoir déplacé vers un autre groupe d’attributs. Auparavant, cet attribut était toujours enregistré avec une valeur Together s’il était déplacé vers un groupe d’attributs autre que le groupe par défaut dans le jeu d’attributs.
  • La mutation setGuestEmailOnCart de GraphQL met désormais correctement à jour les e-mails des invités. Auparavant, les tables devis et adresse de devis n'étaient pas mises à jour.
  • L’ajout, la suppression ou la mise à jour d’un produit enfant vers un produit groupé par le biais d’appels API REST déclenche désormais la réindexation prévue. Auparavant, ces actions ne déclenchaient pas de réindexation et, par conséquent, le produit groupé ne modifiait pas son statut de stock tant qu’une réindexation manuelle n’était pas effectuée.
  • L’application affiche désormais la plage de prix correcte pour les produits groupés avec des prix par niveau. GitHub-30284
  • L’application affiche désormais le même prix total que prévu sur la page du panier et à l’étape d’expédition du workflow de passage en caisse une fois que le prix d’une offre groupée a été modifié.
  • Vous pouvez désormais configurer une offre groupée avec succès en y accédant à partir du panier d’un client. Auparavant, la page Configurer le produit n’était jamais complètement chargée et vous ne pouviez pas enregistrer vos paramètres.
  • Les commerçants peuvent désormais attribuer un prix unique pour un produit groupé sur chaque vue de magasin d’un déploiement multimagasin. Les prix spécifiques au site web sont enregistrés dans le tableau catalog_product_bundle_selection_price. Auparavant, l’application ne basait pas le prix d’un produit groupé sur la portée du site web, même lorsque Magasins > Configuration > Catalogue > Catalogue > Prix > Étendue du prix du catalogue était défini sur Website. Aucun prix spécifique au site Web n'a été enregistré en catalog_product_bundle_selection_price. GitHub-12584
  • Les factures des produits groupés affichent désormais la quantité correcte pour les produits simples associés lorsque la fonction Tarification dynamique est désactivée. Auparavant, les produits simples associés au produit groupé avaient la quantité du produit parent, et non du produit groupé). GitHub-30802
  • La mutation updateProductsInWishlist met désormais à jour avec succès les éléments appartenant à un lot de produits dans une liste de souhaits. Auparavant, au lieu de mettre à jour l’élément de la liste de souhaits, cette mutation l’avait supprimé et en avait créé un nouveau, ce qui modifiait l’ID de l’élément.
  • Vous pouvez désormais définir les attributs de lot required_options et has_options comme prévu lors de la création ou de la mise à jour d’un produit groupé à l’aide du point d’entrée POST /V1/product/:sku. Auparavant, ces attributs personnalisés étaient définis sur 0 (zéro) malgré les efforts pour le définir sur 1 (un).
  • Les données de produit groupées qui étaient auparavant manquantes sont désormais incluses dans le processus d’évaluation. Cela résout les incohérences du comportement du produit lorsque les acheteurs ont acheté un produit groupé à partir de la page de liste des produits plutôt que de l’ajouter directement à partir d’une page de produit.

Cache

  • Le fichier varnish6.vcl a été mis à jour pour contourner la mise en cache de la page client.

CAPTCHA

  • CAPTCHA valide désormais correctement les données fournies par un acheteur, et les champs CAPTCHA s'affichent désormais comme prévu après les multiples tentatives infructueuses d'un acheteur de passer en caisse avec PayPal Payflow Pro.
  • La validation CAPTCHA n’échoue plus de manière aléatoire sur la page de paiement du workflow de passage en caisse.
  • L’application affiche désormais les champs CAPTCHA comme prévu une fois que vous avez dépassé le nombre de tentatives d’achèvement ayant échoué. Auparavant, bien que l’application vous invitait à relancer le test CAPTCHA, elle n’affichait pas les champs CAPTCHA.
  • CAPTCHA fonctionne désormais comme prévu sur la page de passage en caisse. Auparavant, lorsqu’un acheteur répondait correctement à un défi CAPTCHA, le chargeur sur la page de passage en caisse ne se terminait jamais et l’application affichait cette erreur : captchaData[formId] is undefined. (Cette erreur ne se produisait que lorsque l’acheteur utilisait le même navigateur à partir duquel il avait précédemment accédé à un déploiement exécutant 2.3.5-p1.)
  • _.isEmpty() archivages dans le fichier defaultCaptcha.js sont maintenant terminés. Auparavant, ces vérifications n’étaient pas terminées et, par conséquent, le chargement de la page d’extraction échouait après la mise à niveau. GitHub-31641

Panier et passer en caisse

  • L’application prend désormais en compte les localisateurs décimaux spécifiques aux paramètres régionaux lors de la conversion et de la mise à jour de la quantité de produits dans le panier.
  • Les commandes n’omettent plus un nom de client fourni avec une adresse de livraison. Auparavant, les noms étaient omis car l’indicateur same_as_billing n’était pas enregistré dans la base de données.
  • Les liens vers les registres de cadeaux persistent désormais comme prévu lorsque vous modifiez un produit dans le panier. Auparavant, ces liens disparaissaient lorsque vous cliquiez sur le bouton Mettre à jour le panier.
  • Tous les messages de file d’attente destinés aux quoteItemCleaner de consommateurs passent désormais à l’état complete comme prévu après la suppression de plusieurs produits. Auparavant, un seul message pour ce client modifiait son statut en complete, et le reste passait à in progress.
  • L’application affiche désormais le message de validation des conditions générales dans le bloc approprié uniquement lorsqu’un acheteur clique sur le bouton Passer une commande. Auparavant, l’application affichait ce message dans le bloc Appliquer le code remise chaque fois qu’un acheteur modifiait le mode de paiement dans le workflow de passage en caisse : The order wasn't placed. First, agree to the terms and conditions, then try placing your order again.
  • Vous êtes maintenant redirigé vers la page de passage en caisse comme prévu après l’ajout d’un produit groupé au panier à partir de l’aperçu de la Mise à jour de la planification et un clic sur le panier. GitHub-447
  • L’application ignore désormais les modifications apportées au formulaire d’adresse de facturation à l’étape de paiement de la commande si l’acheteur ne clique pas sur le bouton Mettre à jour et revient à l’étape d’expédition.
  • L’application affiche désormais un message d’erreur informatif et ne met pas à jour la quantité de produit lorsqu’un acheteur ajoute une quantité de produit non valide et clique sur le bouton Mettre à jour les articles et les quantités sur la page Gérer le panier. Auparavant, l’application mettait à niveau la quantité de produit et n’affichait pas de message d’erreur. GitHub-459
  • Les produits dotés d’une option personnalisable (File) désormais inclure des liens actifs comme prévu tout au long du processus de passage en caisse avec expédition multiple. Auparavant, ce lien était manquant. GitHub-31095
  • Le panier d’administration affiche désormais les prix des produits dans les devises correctes pour les magasins qui prennent en charge plusieurs devises. Auparavant, les prix étaient convertis dans la devise spécifiée plus d’une fois, d’abord lorsque les produits étaient ajoutés au panier à partir du storefront, puis de nouveau lorsque la commande était ensuite rendue sur l’administrateur.
  • L’application vide désormais le panier comme prévu une fois qu’un administrateur a terminé une commande de l’administrateur créée par un acheteur sur le storefront. Auparavant, lorsque le client se reconnectait après que l’administrateur avait terminé la commande, le panier contenait toujours le contenu de la commande. GitHub-30262
  • Les acheteurs peuvent désormais ajouter un produit à leur panier dont le prix minimum annoncé (MAP) dépasse son prix normal.
  • Les acheteurs peuvent désormais modifier leur adresse de facturation à partir du workflow de passage en caisse lors de la paiement avec plusieurs adresses.
  • Toutes les transactions de paiement créées par les invités sont maintenant enregistrées dans la base de données et visibles dans l'administrateur comme prévu. Auparavant, seul un petit sous-ensemble d’ordres simultanés était enregistré dans la base de données, et la plupart des ordres étaient perdus en raison des dépassements de délai résultant des verrous de la base de données. GitHub-25862
  • L’application affiche désormais correctement les messages de bienvenue intégrés qui contiennent des caractères spéciaux lorsqu’un invité place un produit dans le mini panier. Auparavant, l’application n’ajoutait pas le produit au mini panier ou n’affichait pas le message de bienvenue. GitHub-32250
  • La page d’expédition du workflow de passage en caisse se charge désormais correctement lorsque la diffusion en magasin est activée. Auparavant, l’application générait une erreur JavaScript et la page de passage en caisse d’expédition ne s’affichait pas complètement.
  • Ajout de l’argument itemResolvers au fichier de di.xml du catalogue. Par conséquent, l’extraction n’est plus interrompue si les modules de produit configurables et groupés sont désactivés. GitHub-30860
  • L’application affiche désormais les boutons radio dans la section Informations sur le paiement et l’expédition comme prévu lors du workflow de réorganisation de l’administrateur. GitHub-30257
  • L’application applique désormais correctement les règles de prix de panier avec une remise fixe au niveau du panier lorsque le panier contient un produit groupé avec plusieurs options. Auparavant, la règle de prix de panier n’était pas complètement appliquée à la commande. GitHub-30952
  • Le bouton Ajouter au panier dans la vue Liste des catégories fonctionne désormais comme prévu. GitHub-32232
  • Vous pouvez désormais utiliser les /V1/carts/mine/items POST pour ajouter une quantité personnalisée de produits regroupés à un panier. GitHub-26909
  • L’application ne renseigne plus la zone des adresses de facturation du workflow de passage en caisse avec l’adresse d’expédition. Auparavant, lorsque le champ État/Province de l’adresse de facturation était vide et que les adresses d’expédition et de facturation différaient, l’application renseignait le champ Adresse de facturation État/Province avec les informations provenant de l’adresse d’expédition. GitHub-31608

Catalogue

  • La mise à jour en masse des attributs Activer les incréments de quantité et Incréments de quantité fonctionne désormais comme prévu. GitHub-29544
  • Vous pouvez désormais dupliquer un catalogue partagé qui contient des SKU numériques uniquement. Auparavant, l’application générait une erreur lorsque vous tentiez de dupliquer un catalogue partagé, car la classe \Magento\Catalog\Model\ProductIdLocator ne fonctionnait pas correctement avec les SKU numériques uniquement.
  • L’application ne renvoie plus d’erreur JavaScript après l’activation de la synchronisation de produits récents avec l’administrateur. Auparavant, l’application affichait cette erreur JavaScript : Cannot read property 'status' of undefined.
  • Les mises à jour de la disposition du thème personnalisé sont désormais appliquées comme prévu. Auparavant, les mises à jour de la disposition des thèmes personnalisés étaient ignorées.
  • Le cache de catégorie de produits est maintenant effacé comme prévu par cron lors de l’exécution du indexer_update_all_views. Auparavant, les décomptes de produits sur la page Catégorie après la réindexation étaient incorrects.
  • Les valeurs d’attribut restent désormais inchangées lorsqu’un attribut n’est pas spécifié dans une requête d’API REST de mise à jour de produit pour une vue de magasin. Auparavant, si aucun attribut n’était spécifié, l’application réinitialisait la valeur de l’attribut à sa valeur d’étendue par défaut.
  • La grille de produits d’administration (Admin Catalogue > Produits) affiche désormais le nombre correct de produits lorsque les produits sont filtrés par SKU.
  • L’application affiche désormais un statut de stock précis lorsqu’un produit est ajouté à une page CMS lorsque les autorisations de catégorie sont activées et empêche l’affichage du prix pour le groupe du client spécifié. Auparavant, tous les produits s’affichaient comme en rupture de stock, quel que soit le statut du stock réel.
  • Le champ de saisie de prix de bloc de prix du groupe de clients Tarification avancée comporte désormais une largeur minimale de cinq chiffres. Auparavant, seuls deux symboles étaient visibles dans ce champ sur les affichages basse résolution.
  • L’application supprime désormais correctement une image de média de produit après la suppression d’un produit. Auparavant, l’image du média produit restait dans le dossier après la suppression réussie du produit.
  • La mise en page se met désormais à jour comme prévu lorsque vous créez ou modifiez un produit dans l’administration, puis créez une mise à jour de conception de planification. GitHub-32007
  • Un attribut de produit personnalisé avec une valeur de zéro peut désormais être enregistré en tant que vide. Auparavant, l’application ne mettait pas à jour cette valeur sur vide.
  • Les fichiers de mise à jour de la mise en page de catégorie personnalisée s’appliquent désormais aux produits comme prévu. Auparavant, le handle du fichier de mise à jour (catalog_category_view_*) ne correspondait pas au handle du produit. GitHub-27285
  • Le tri a été désactivé pour la colonne Taxe fixe sur les produits (FPT) de la liste des produits d’administration. Auparavant, la page Products ne pouvait pas être rechargée une fois la colonne FPT triée.
  • L’aperçu du widget de produits Page Builder fonctionne désormais comme prévu dans un déploiement multisite lorsque les produits correspondants ont un prix différent sur chaque site web.
  • Le tri par position dans la recherche de produits à l’aide de GET /rest/V1/products/?searchCriteria[filterGroups] fonctionne désormais comme prévu. Auparavant, la collection de produits ne comportait pas de champ position de valeur pour le tri. GitHub-31591
  • Les utilisateurs administrateurs peuvent désormais voir des espaces doubles dans les champs Nom et SKU dans la grille de produit. Auparavant, l’application réduisait plusieurs espaces en un seul espace.
  • Les produits s’affichent désormais comme étant en rupture de stock sur le storefront lorsque la quantité vendable sur l’administrateur est de 0. Auparavant, ces produits étaient répertoriés comme étant en stock sur le storefront et l’application affichait un bouton Ajouter au panier actif. GitHub-31117
  • Les administrateurs peuvent désormais ajouter des produits dotés d’options personnalisables (File) à la grille Articles commandés de la section Panier (colonne Activités du client) de la page Admin de Client. Auparavant, l’application n’ajoutait pas l’élément à la liste, car la valeur n’était pas correctement formatée avant d’être insérée dans \Magento\Catalog\Model\Product\Type\AbstractType::_prepareOptions.
  • L’application n’invite plus les acheteurs à sélectionner une option de produit pour un produit groupé qui ne comporte qu’une seule option.
  • L’application affiche désormais toutes les sous-catégories dans les mises à jour de la mise en page (catégories d’ancrage et autres) lors de la création d’un widget.
  • La requête product ne remplace plus les valeurs par défaut de toutes les vues de magasin dans un déploiement multi-magasin lorsqu’un nom de produit est mis à jour pour une seule vue de magasin uniquement. GitHub-31083
  • Adobe Commerce met à jour le nombre total de pages comme prévu lorsque vous modifiez la valeur par page de la liste de produits associés à l’administration, de ventes incitatives et de ventes croisées. GitHub-31059
  • Les administrateurs peuvent désormais ajouter des produits avec plusieurs options personnalisables (File) à une commande par SKU.
  • L’application ne renvoie plus d’erreur lorsqu’un administrateur disposant d’autorisations restreintes ajoute un widget Produit à une page CMS dans l’interface d’administration. Auparavant, l’application générait cette erreur lorsque l’administrateur cliquait sur le bouton Enregistrer : We are sorry, an error has occurred while generating the content.
  • Les pages Détails du produit s’ouvrent désormais avec l’option de personnalisation de la date renseignée avec la date de la commande précédente lorsque l’option Utiliser le calendrier JavaScript est activée. Le programme de résolution de valeur d’option de date personnalisée revient désormais à un autre format si la valeur n’est pas formatée en fonction de la configuration actuelle. Auparavant, la valeur de l’option de date personnalisée était vide.
  • L’application affiche désormais une seule erreur dans le panier lorsque le produit est en rupture de stock. Auparavant, l’application affichait des messages redondants. GitHub-27469
  • Les administrateurs peuvent désormais ajouter un produit avec une option personnalisable (File) à une commande par SKU. GitHub-30285
  • Vous pouvez désormais enregistrer un produit et un prix sans spécifier de type_id. GitHub-13639
  • Les produits du groupe sont désormais disponibles sur le storefront comme prévu lorsqu’une requête de PUT /V1/products/:sku/links REST est utilisée pour associer un nouveau produit enfant à un nouveau produit du groupe. Auparavant, les produits n’étaient pas correctement indexés après l’exécution de bin/magento cron:run.
  • Vous ne pouvez plus créer de produit avec une valeur de SKU NULL. Auparavant, vous pouviez créer un produit sans valeur de SKU par le biais d’un importateur personnalisé ou directement dans la base de données, mais lorsque vous avez tenté de le modifier à partir de l’Administration, l’application a généré une erreur. GitHub-27411, GitHub-32525
  • L’ajout d’options personnalisées requises à un produit simple ne le supprime plus des produits composites parents sans avertissement. L’application affiche désormais un avertissement informatif et n’enregistre pas le produit. Auparavant, l’application enregistrait les modifications du produit et n’affichait pas d’avertissement. GitHub-30492

Règle de catalogue

  • La requête products renvoie désormais les valeurs actuelles lorsqu’une règle de prix de catalogue s’applique à un article. GitHub-26738
  • Les tables temporaires commençant par catalogrule_product__temp sont désormais supprimées comme prévu lorsque la réindexation échoue après l’expiration, la désactivation ou la désactivation d’une règle de panier ou de catalogue. GitHub-22273
  • Les fuseaux horaires sont désormais appliqués de la même manière dans \Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexById et \Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexByIds. GitHub-29549

Contenu CMS

  • Les images volumineuses sont désormais redimensionnées comme prévu lors du chargement lorsque le paramètre de configuration Activer le redimensionnement front-end est activé.
  • Correction de la gestion des erreurs pour le contrôleur d’enregistrement de page CMS. Auparavant, lorsqu’un objet Error était généré sur l’événement cms_page_prepare_save, l’application transmettait cet objet à la fonction addExceptionMessage, rompant son contrat, car cette fonction attend un Exception. Ce problème a été résolu en ajoutant un message d’erreur à l’aide de la fonction addErrorMessage. GitHub-30149
  • Vous pouvez désormais affecter une nouvelle page à plusieurs nœuds à partir de l’onglet Hiérarchie de la page Modifier de CMS . Auparavant, une violation de contrainte unique se produisait lorsque vous tentiez d’affecter la page à un nœud. GitHub-363

Produits configurables

  • L’application ne duplique plus les miniatures de produit dans la galerie d’images d’un produit lorsque vous cliquez sur les options configurables d’un produit.
  • Le pop-up de configuration que l’application affiche lorsque vous modifiez un produit configurable d’une liste de souhaits se ferme désormais comme prévu lorsque vous cliquez sur le bouton OK.
  • L’application génère désormais correctement des factures pour les commandes qui ne contiennent qu’un seul produit configurable. GitHub-31143
  • Les acheteurs peuvent désormais ajouter des produits configurables à leur panier à partir d’une vue de magasin autre que celle par défaut. Auparavant, lorsque l’acheteur dans une vue de magasin autre que la vue par défaut tentait d’ajouter un produit configurable, l’application affichait cette erreur : Could not add item to cart. Please check required options and try again. GitHub-31660

Politique de sécurité du contenu (CSP)

  • La politique de sécurité du contenu prend désormais en charge le chargement d’images et de polices codées en base64 via data: scheme.

cron

  • Les requêtes de nettoyage du cron ont été restructurées afin de réduire ou d’éliminer les problèmes de performances suivants : cron tâches restées bloquées en attente, requêtes MySQL de plus en plus lentes et une utilisation accrue de CPU. GitHub-26507
  • Les cronjobs dont le statut est défini sur running depuis plus de 24 heures sont désormais automatiquement changées en statut error. Par conséquent, une nouvelle instance de cette tâche peut s’exécuter à nouveau et vous n’avez pas besoin de modifier manuellement le statut de la tâche lorsqu’une tâche reste incorrectement définie sur le statut running. Auparavant, si un cronjob était bloqué au statut running, l’application empêchait le démarrage de nouvelles instances du même traitement et vous deviez modifier manuellement le statut du traitement. GitHub-8933
  • cron tâches se terminent maintenant comme prévu et ne génèrent plus cette erreur de sérialisation : [Magento\Framework\DB\Adapter\DeadlockException]SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction, query was: DELETE FROM cron_schedule WHERE (status = 'missed') AND (job_code in ('indexer_reindex_all_invalid', 'indexer_update_all_views', 'indexer_clean_all_changelogs')) AND (created_at < '2018-09-28 18:32:28'). GitHub-18409
  • indexer_update_all_views tâches cron s’exécutent désormais comme prévu après un échec précédent. L’exécution ayant échoué est marquée comme un échec dans le cron_schedule schedule et l’exécution suivante n’échoue pas automatiquement. Auparavant, le tableau cron_schedule contenait des tâches en attente et indexer_update_all_views tâche cron ne s’exécutait pas. GitHub-23054
  • cron interblocages ne se produisent plus lorsque cron tentez de définir un verrou dans les déploiements volumineux où les groupes se chevauchent. GitHub-8933
  • cron interblocages ne se produisent plus sur la table cron_schedule après l’exécution de seulement quelques tâches cron. GitHub-22438

Attributs de client personnalisés

  • Le champ State du carnet d’adresses du compte client storefront est désormais chargé sous la forme et reste un élément de page de liste déroulante. Le bouton Envoyer est maintenant désactivé jusqu’à ce que tous les éléments de page aient été complètement chargés. Auparavant, l’application chargeait ce champ en tant que zone de texte avant de le rendre en tant qu’élément de liste déroulante. Les acheteurs pouvaient alors saisir et enregistrer des valeurs dans le champ de texte, ce qui provoquait par la suite une erreur lors du passage en caisse.
  • L’application affiche désormais correctement les attributs d’adresse client personnalisés sur les pages de commande de storefront et d’admin. Auparavant, l’option sélectionnée de l’attribut de liste déroulante était absente de la section Informations sur l’adresse et la valeur de l’attribut d’entrée contenait le code d’attribut. GitHub-508
  • L’application ne renvoie plus d’erreur lorsque vous enregistrez un attribut d’adresse de client avec une pièce jointe dans le champ Adresse du client administrateur lors du chargement de fichiers. Cela est dû à une instruction de retour manquante dans l'action du contrôleur. Auparavant, l’application générait cette erreur : Something went wrong while saving the file.
  • Les appels d’API de panier REST GET renvoient désormais des valeurs d’attribut personnalisé correctes pour les adresses de facturation et d’expédition. Auparavant, les attributs d’adresse personnalisés s’affichaient incorrectement dans la page des détails de la commande dans la page storefront de Mon compte et dans la page Admin.
  • L’application gère désormais correctement les fichiers contenant des attributs d’adresse du client avec le type d’entrée file (attachment). Auparavant, l’application générait cette erreur lors du chargement du fichier joint : Something went wrong while saving the file.

Client

  • L’e-mail de crédit de magasin prend désormais en compte la portée sélectionnée et est envoyé à partir de l’adresse e-mail correcte.
  • Le filtrage par date de création de compte génère désormais des résultats conformes aux paramètres de fuseau horaire configurés et qui capturent tous les comptes créés pertinents.
  • Le filtre de grille client utilise désormais une option de site web correcte pour un utilisateur restreint si les données ont été précédemment mises en cache. Auparavant, le filtre de grille client récupérait les paramètres du site web du cache et incluait des données incorrectes pour les utilisateurs restreints.
  • L’application ne renvoie plus d’exception à la page Admin Customers lorsqu’un site web est supprimé dans un déploiement multi-sites web. Auparavant, lorsqu’un administrateur tentait d’accéder à la liste complète des clients, l’application n’affichait pas tous les clients et affichait cette erreur : The website with id 2 that was requested wasn't found. Verify the website and try again.
  • Les administrateurs autorisés peuvent désormais réaffecter des clients à différents sites web à partir de l’onglet Informations du compte du client.
  • Vous pouvez désormais charger un fichier avec succès lors de la création d’un attribut d’adresse de client avec un type d’entrée (File). Auparavant, lorsque vous tentiez de charger et d’enregistrer un fichier, l’application générait l’erreur suivante : Something went wrong while saving the file.

Segment client

  • L’application affiche désormais les produits associés en fonction des segments des clients sur le storefront comme prévu. Auparavant, l’application n’affichait pas cette section lorsqu’une règle de produits associés était créée pour des segments de clients spécifiques.
  • Les blocs dynamiques s’affichent désormais pour les clients enregistrés dans leur panier lorsque le segment client correspondant est appliqué à la fois aux invités et aux clients enregistrés. Auparavant, l’application affichait le bloc uniquement pour les invités.
  • Les segments de clients sont désormais automatiquement mis à jour après qu’une commande est passée depuis l’administration. Auparavant, après la création d’une commande d’administration, l’utilisateur administrateur devait actualiser manuellement les données de segment associées en accédant aux segments de clients associés et en cliquant sur le bouton Actualiser les données de segment.
  • L’application affiche désormais des blocs dynamiques dans le panier pour tous les clients des segments de clientèle pertinents. Auparavant, les invités ne voyaient pas de blocage même lorsque le segment de clients incluait à la fois des invités et des clients enregistrés.
  • Les problèmes de performances de la base de données résultant des règles de segmentation client utilisant la condition Product was Ordered ont été résolus.
  • Ajout d’un observateur d’événement de segment client pour l’API REST/SOAP. Par conséquent, les segments clients sont désormais automatiquement mis à jour comme prévu si les critères définis dans les segments sont respectés lorsque les commandes sont passées via l’API REST/SOAP.
  • Un processeur d’événements de segment client a été ajouté pour les requêtes GraphQL. Auparavant, les remises liées aux règles de prix de panier n’étaient pas appliquées au panier lorsqu’un segment client était utilisé dans une condition de règle de prix de panier. GitHub-371

Répertoire

  • L’application ne renvoie plus d’exception lorsqu’un acheteur saisit un code postal non valide pendant la section d’expédition du workflow de passage en caisse. GitHub-23371

Téléchargeable

  • L’application affiche désormais des liens vers des produits téléchargeables dans l’e-mail Nouvelle commande lorsque la commande contient à la fois un produit téléchargeable et un produit configurable avec une option téléchargeable. Auparavant, l’application affichait le lien vers le produit téléchargeable autonome, mais pas le lien vers le produit configurable avec une option téléchargeable.

Bloc dynamique (anciennement bannière)

  • Les blocs dynamiques s’affichent désormais uniquement sur la page spécifiée. Auparavant, l’application affichait toutes les bannières affectées au widget sur toutes les pages si aucun bloc dynamique n’était spécifié.
  • Vous pouvez désormais enregistrer des blocs dynamiques avec du contenu vide.

VAE

  • Les valeurs de date d’attribut d’adresse du client sont désormais enregistrées dans un format à quatre chiffres au lieu de deux.

E-mail

  • Le lien de réinitialisation du mot de passe sur la page Mot de passe de réinitialisation administrateur fonctionne désormais comme prévu. Auparavant, lorsqu’un modèle personnalisé était utilisé pour la page Réinitialiser le mot de passe administrateur , l’application affichait ce message lorsqu’un administrateur cliquait sur le lien contenu dans l’e-mail : Your password reset link has expired. Ce problème se produisait car le modèle d’e-mail personnalisé contenait une variable incorrecte pour l’ID utilisateur.
  • L’envoi d’e-mails client à partir de l’administrateur fonctionne désormais correctement lorsqu’il est activé au niveau de la vue du magasin. Auparavant, l’application n’envoyait pas d’e-mails aux clients lorsque les paramètres de notification par e-mail étaient activés au niveau du magasin-vue, mais pas au niveau global.
  • L’application envoie désormais les e-mails comme prévu dans les déploiements multisites où tous les sites web n’ont pas activé l’envoi asynchrone de messages. Auparavant, si ce paramètre était désactivé pour au moins un site web, les e-mails n’étaient envoyés depuis aucun site web, même lorsqu’ils étaient activés. Les e-mails de facture, d’expédition et d’avoir présentaient des problèmes similaires. Toutefois, les e-mails de commentaires de commande, de commentaires de facture, de commentaires d’expédition et de commentaires d’avoir ont été envoyés avec succès. GitHub-31950
  • L’e-mail que l’application envoie lorsque vous partagez un registre des cadeaux avec l’administrateur contient désormais un lien valide vers l’emplacement du registre. Auparavant, la prise de ce lien entraînait une erreur 404. GitHub-504
  • Les factures et les fichiers PDF de factures incluent désormais les mêmes prix pour les produits groupés que prévu. Auparavant, les fichiers PDF de facture incluaient un prix incorrect pour les produits groupés. GitHub-12856
  • Un casting de chaîne a été ajouté à la méthode de filtrage des modèles d’e-mail pour s’assurer que la valeur renvoyée est une string. Auparavant, lorsqu’une exception était capturée alors qu’elle n’était pas en mode développeur, l’application renvoyait un objet phrase. Cela a déclenché une Uncaught TypeError fatale. GitHub-32671
  • Les e-mails de confirmation de commande sont désormais envoyés comme prévu lorsque l’envoi asynchrone est activé (Magasins > Configuration > Ventes > E-mails de vente > Paramètres généraux > Envoi asynchrone) sur un site web dans un déploiement multisite. GitHub-31950
  • L’application consigne désormais une erreur comme prévu lorsqu’une exception se produit lorsqu’un client tente d’envoyer un e-mail à partir du formulaire Nous contacter . GitHub-23645

Frameworks

  • Les classes parentes dans l’Admin sont désormais vérifiées pour l’annotation docblock, ainsi que la classe d’origine et les interfaces héritées. Auparavant, comme les classes parentes n’étaient pas vérifiées, l’exécution d’actions liées aux clients dans l’Administration qui déclenchait un événement entraînait une erreur. L’application a consigné cette erreur dans le journal des exceptions : report.CRITICAL: Method's return type must be specified using @return annotation..
  • L’application ne renvoie plus d’erreur fatale lorsque le serveur Redis est arrêté dans un déploiement dans lequel la mise en cache de page Redis est activée.
  • L’application respecte désormais le paramètre Exclure le dossier de médias de la sauvegarde lorsque la sauvegarde est activée avec bin/magento config:set system/backup/functionality_enabled 1. Auparavant, le dossier de médias était sauvegardé malgré ce paramètre, car le chemin d’accès à /magento était incorrectement formé avec un double //.
  • L’application traduit désormais toutes les chaînes traduisibles comme prévu pour la page Panier d’administration. Auparavant, le chargement de traduction se produisait trop tard et ignorait tous les observateurs abonnés à l'action de contrôleur avant l'envoi. GitHub-31849
  • La validation du formulaire sur la page Créer un compte client fonctionne désormais correctement lorsque le paramètre d’extension Se connecter en tant que client activer est désactivé. Auparavant, l’application générait une erreur JavaScript.
  • L'utilisation de bin/magento setup:db-schema:split-sales pour déplacer les tables de la base de données fonctionne désormais comme prévu. Les tables sont maintenant créées et renseignées correctement avec les données. Auparavant, comme la vérification de l’existence de la table était incorrecte, l’application générait des erreurs SQLSTATE lorsque vous l’bin/magento setup:db-schema:split-sales.
  • La gestion des exceptions pour les processus enfants dupliqués par ProcessManager a été améliorée. Lorsqu’une exception se produit maintenant, le processus principal se ferme et un message d’erreur s’affiche une seule fois. Auparavant, plusieurs échecs de l’indexeur étaient consignés et plusieurs messages s’affichaient. GitHub-30622
  • Les modules externes globaux d’Adobe Commerce (par exemple, webapi_rest et graphql ) ne sont plus déclenchés pour un nouveau type de zone personnalisée lorsque la di.xml de ce fichier de zone ne contient aucun module externe enregistré.
  • Les exceptions qui se produisent pendant l’initialisation ne sont plus mises en cache et déclenchent désormais un code de réponse 500.
  • Les commerçants peuvent désormais affecter ou supprimer une image d’un événement de catalogue à un événement de catalogue par vue de magasin. Auparavant, lorsque vous changiez la vue du magasin lors de la modification d’un événement de catalogue, la case à cocher Supprimer l’image n’était pas active et l’application affichait cette erreur : Uncaught ReferenceError: toggleValueElements is not defined at HTMLInputElement.onclick. GitHub-364
  • Le dernier gestionnaire fusionné dans un fichier communication.xml ne remplace plus tous les gestionnaires créés précédemment. GitHub-29528

Correctifs généraux

  • L'application affiche désormais le nombre correct d'étoiles sur la page Mes avis de produits et sur la page Mon compte des avis récents. Auparavant, l’application appliquait les étoiles de révision uniquement à la première révision et laissait les autres révisions de la page sans étoile.
  • Les liens de compte dans les en-têtes suivent désormais les normes WCAG. Auparavant, les liens de compte dans les en-têtes contenaient des identifiants dupliqués, ce qui entraînait l’échec de la validation de WCAG.
  • L’application enregistre désormais les dates des événements de catalogue dans les fuseaux horaires UTC. Auparavant, l’application enregistrait les dates des événements de catalogue dans le fuseau horaire de l’utilisateur.
  • L’application ne renvoie plus d’erreurs générées par le journal système lorsqu’un client invité utilise une adresse non valide. Auparavant, l’application affichait cette erreur par intermittence au lieu de rendre la page : No such entity with addressId. GitHub-15115
  • Le processus de redimensionnement de l’image ne s’arrête plus pour les images dans un format non pris en charge. Auparavant, lorsque catalog:images:resize rencontriez un format d’image non pris en charge, le processus s’arrêtait et l’application affichait cette erreur : bin/magento catalog:images:resize Unsupported image format.
  • La prise en charge WEBP et AVIF des images de logo a été ajoutée à l’administration. GitHub-32495
  • Vous ne pouvez plus modifier la portée de l’attribut media_gallery. Auparavant, lorsque vous repositionniez la portée de l’attribut media_gallery sur global, l’application générait une erreur.
  • Les produits associés qui ont été ajoutés dans le cadre d’une mise à jour planifiée ne s’affichent plus sur la page produit d’un storefront après la date de fin de la mise à jour. GitHub-469
  • L'application affiche désormais un message précis et informatif lorsque vous cliquez sur Gérer les articles sur la page Mon compte - Registre des cadeaux et que les produits du Registre sont en rupture de stock. Auparavant, l’application générait cette erreur : Error: Call to a member function getId() …. GitHub-490
  • Vous pouvez désormais ajouter une page CMS à partir de la page Ajouter une nouvelle page à la hiérarchie racine du site web comme prévu.
  • Le filtrage fonctionne désormais comme prévu sur la liste des exportations planifiées lorsque le type d’entité est sélectionné. Auparavant, le filtre ne fonctionnait pas et l’application générait une erreur JavaScript. GitHub-361
  • Les images de catégorie sont désormais copiées comme prévu du répertoire catalog/tmp/category vers le répertoire catalog/category lorsque des catégories sont enregistrées à l’aide de la méthode de stockage de la base de données. Désormais, la ligne d’image du tableau de media_storage_file_storage comporte également la directory_id correcte. GitHub-11995
  • Les commerçants sont désormais avertis comme prévu des caches invalidés après l’envoi de modifications à la hiérarchie CMS. Auparavant, l’application n’invalidait pas les caches lors de l’enregistrement de la hiérarchie CMS.
  • Les requêtes AJAX redondantes à la section Panier du panier ont été réduites. Auparavant, l’application ne chargeait pas correctement le sous-total du panier, ce qui déclenchait un rechargement du panier.
  • Sur les déploiements exécutant PHP 7.4, l’application renvoie désormais une erreur 404 lorsque le paramètre Générer les réécritures d’URL « catégorie/produit » est défini sur Non et qu’un acheteur tente d’accéder à un chemin de catégorie inexistant. Auparavant, l’application renvoyait une erreur 500 indiquant : Trying to access array offset on value of type bool. GitHub-31984
  • Vous pouvez désormais modifier un produit créé à l’aide d’un jeu d’attributs à partir duquel les groupes Groupe de conception et Planifier la mise à jour de conception ont été supprimés. Auparavant, lorsque vous tentiez de modifier un produit créé à partir de ce jeu d’attributs, l’application générait une erreur fatale. GitHub-44
  • nowdoc a remplacé heredoc dans le sélecteur de magasin Magento_Backend. GitHub-32262
  • Les administrateurs sont désormais directement redirigés vers la page d’administration demandée après la connexion. Auparavant, lorsqu’un administrateur se connectait, il était redirigé vers le tableau de bord d’administration (ou vers la page configurée comme page de démarrage) et devait accéder manuellement à sa destination. GitHub-31042
  • Ajout de l’Argentine, de la Bolivie, du Chili, de l’Équateur, du Guyana, du Paraguay, du Pérou, du Suriname et du Venezuela à la table directory_country_region. GitHub-31169
  • Ajout de l'Albanie, du Danemark, de la Grèce, de l'Islande, du Portugal et de la Suède au tableau directory_country_region. GitHub-31040
  • Les messages sont désormais marqués comme des erreurs dans la file d’attente de messages MysqlMQ lorsque des exceptions se produisent. GitHub-18140
  • L'application fait désormais référence à l'objet de classe correct lors du chargement des informations fiscales pour les pages Avoir et Facture de l'administrateur. GitHub-31197
  • L’intégration Royal Mail Click & Drop fonctionne désormais comme prévu. Auparavant, l’application générait cette erreur lorsque vous tentiez d’activer cette intégration : Sorry! Something went wrong. Please try again later. GitHub-28996
  • L’application affiche désormais un message d’erreur informatif lorsqu’une expédition, un avoir ou un identifiant de facture incorrect est transmis dans une URL. Auparavant, l’application générait une erreur fatale. GitHub-30424
  • La récursivité à l'emplacement des fichiers statiques a été supprimée. L’application affiche désormais une page 404 au lieu d’une erreur 500. Auparavant, un bug dans la configuration par défaut de NGINX entraînait une récursivité infinie. GitHub-31530
  • Le nom du fichier cms_index_noroute.xml a été corrigé en cms_noroute_index.xml. GitHub-31300
  • Le fichier .editorconfig a été refactorisé pour corriger la mise en forme automatique des fichiers db_schema_whitelist.json. GitHub-31171
  • Le redimensionnement d’une fenêtre de navigateur ne déclenche plus les événements de loupe de liaison en double. GitHub-30788
  • L’application ne renvoie plus d’exception SQL lors du filtrage des Magento\Users\Model\ResourceModel\Users\Collection par user_id. GitHub-31216

Cartes cadeaux

  • Les frais de paiement en attente sont maintenant supprimés d'une carte cadeau comme prévu lorsqu'une carte cadeau est annulée. Auparavant, l’application générait une erreur lorsque cron s’exécutait après la suppression de la carte cadeau.
  • Les acheteurs peuvent désormais supprimer les cartes-cadeaux d’une commande sur la page Vérifier la commande lors d’un passage en caisse avec plusieurs adresses. Auparavant, l’application ne supprimait pas la carte cadeau de la commande lorsque l’acheteur la sélectionnait, puis cliquait sur Supprimer.
  • L’application affiche désormais le nouveau prix d’une carte cadeau dans le panier lorsque vous modifiez la valeur de la carte cadeau après l’avoir ajoutée au panier.
  • La logique de validation de la plage de prix a été ajoutée à la page de création de la carte cadeau. Auparavant, un administrateur pouvait créer une carte dont la valeur minimale dépassait la valeur maximale. GitHub-493
  • La requête addRequisitionListItemsToCart renvoie désormais le montant d’une carte cadeau personnalisée comme prévu lorsque la requête ne contient pas de valeur pour allow_open_amount.

Message de cadeau

  • La mutation setGiftOptionsOnCart crée désormais correctement des messages cadeaux. GitHub-388

Registre des cadeaux

  • Date de l’événement les valeurs sont désormais identiques sur le storefront et l’administrateur lors de la création ou de la modification du registre des cadeaux. Auparavant, chaque fois que vous modifiiez et enregistriez le registre des cadeaux, l’application ajustait la date de l’événement un jour en arrière sur le storefront et l’administrateur. GitHub-466
  • L'application n'affiche plus les produits désactivés dans les registres cadeaux. Auparavant, si un produit était désactivé après avoir été ajouté à un registre des cadeaux, l’application affichait ce message lorsqu’un acheteur accédait au registre : Error: Call to a member function getId() …. GitHub-510

Emballage cadeau

  • La traduction des étiquettes d'emballage-cadeau pour les vues de magasin fonctionne désormais comme prévu.
  • L’emballage du cadeau est désormais appliqué comme prévu aux commandes expédiées à plusieurs adresses.
  • L’application supprime désormais les frais d’emballage des cadeaux du panier une fois tous les produits supprimés.
  • Les totaux des avoirs sont désormais corrects lorsque l'avoir contient un emballage cadeau et des frais de produit configurables. Auparavant, le montant de taxe sur les emballages-cadeaux n'était pas toujours inclus dans le total de l'avoir. GitHub-34

Google Analytics

  • L’application ne renvoie plus d’erreur lorsqu’un administrateur tente de charger une page sur le storefront lorsque Google Analytics est activé. Une entrée CSP pour connect-src a été ajoutée pour autoriser les requêtes AJAX à www.google-analytics.com. GitHub-30880

Google Tag Manager

  • Le composant d’interface utilisateur de l’adresse de facturation sur la page de paiement du workflow de passage en caisse utilise désormais correctement l’adresse de devis lorsque le gestionnaire de balises Google est activé. Auparavant, une erreur JavaScript s’était produite sur la page de paiement.

GraphQL

  • La requête products GraphQL renvoie désormais des options d’attribut triées dans le même ordre de tri que celui utilisé sur la page de modification des attributs.
  • La réponse à la requête { category(id: 2){ children { name children { name } } } } GraphQL comprend désormais une arborescence de catégories correctement triée.
  • L’objet CartItemPrices contient désormais la nouvelle fixed_product_taxes de champ GraphQL, qui renvoie un tableau des taxes sur les produits fixes appliquées à un article du panier. Auparavant, les taxes fixes sur les produits appliquées à un article de panier n’étaient pas incluses dans la requête de panier.
  • Les requêtes vides envoyées à GraphQL renvoient désormais le code de réponse 200 au lieu de 500. Auparavant, l’analyseur GraphQL renvoyait une exception avant la génération du résultat de la requête.
  • La mutation applyRewardPointsToCart met désormais à jour le total général d’un panier pour refléter précisément la valeur des points de récompense déduits. GitHub-486
  • Les produits désactivés ne sont plus inclus dans la réponse GraphQL lorsque GraphQL est utilisé pour lier des produits de montée en gamme.
  • Les commerçants peuvent désormais utiliser la méthode de setShippingAddressesOnCart GraphQL pour définir les adresses de facturation et d’expédition d’un panier d’achat lorsque le passage en caisse du client est désactivé.
  • La requête categoryList ne renvoie plus d’exception lorsqu’elle contient plusieurs fragments sur l’objet CategoryTree. GitHub-31086
  • La requête product GraphQL renvoie désormais les prix corrects du groupe de clients.
  • La réponse à la requête products de GraphQL trie désormais les agrégations en fonction de la position des attributs de produit.
  • L’application ne renvoie plus d’erreurs de type lors des requêtes GraphQL lorsque les suffixes d’URL de produit et de catégorie contiennent des valeurs nulles. GitHub-30909
  • L’objet CustomizableDateValue contient désormais l’attribut type . Sa valeur est une énumération qui peut être définie sur DATE, DATE_TIME ou TIME.
  • La demande de V1/products/special-price-delete POST supprime désormais uniquement le prix avec un store_id spécifié comme prévu. Auparavant, l’appel supprimait tous les prix spéciaux pour le SKU spécifié de tous les magasins. GitHub-25907
  • Correction d’une erreur avec l’attribut country_code dans la mutation createGiftRegistry.
  • Correction de problèmes liés à l’attribut giftRegistryUid de la mutation updateGiftRegistryItems.
  • Ajout d'une vérification supplémentaire pour empêcher que la mutation updateGiftRegistryRegistrants ne soit utilisée pour ajouter des personnes aléatoires en tant qu'inscrits à un registre de cadeaux.
  • La mutation addConfigurableProductsToCart renvoie désormais la miniature correcte du produit spécifié. Auparavant, elle renvoyait la miniature du produit parent.
  • La requête products n'expose plus le prix spécial d'un produit lorsque la période de prix spécial est définie pour une date ultérieure. GitHub-30210, GitHub-29631
  • La réponse à la requête customer inclut désormais l’attribut total_giftcard dans le cadre de l’objet OrderTotal.
  • Correction d'un problème en raison duquel la requête products renvoyait des informations erronées sur les niveaux de prix des articles pour lesquels aucun niveau de prix n'était défini. GitHub-32279

Image

  • Vous pouvez désormais définir les attributs de bundle required_options et has_options comme prévu lors de la création ou de la mise à jour d’un produit groupé à l’aide du point d’entrée de /V1/product/:sku POST. Auparavant, ces attributs personnalisés étaient définis sur 0 (zéro) malgré les efforts pour le définir sur 1 (un).

Importer/exporter

  • Le filtre ID de catégorie pour les entités de produit dans la grille Exporter les attributs d’entité de la page fonctionne désormais comme prévu.
  • Le statut du stock de produits groupés est désormais mis à jour comme prévu vers Rupture de stock lorsque tous les produits enfants sont en Rupture de stock. GitHub-32647
  • Le statut du stock de produits configurable est désormais automatiquement mis à jour comme prévu lorsque le statut du stock de produits enfants est mis à jour par l’importation. Auparavant, le statut du stock de produits n’était pas automatiquement mis à jour lorsque le statut du stock de produits enfants était mis à jour par l’importation.
  • Vous pouvez désormais enregistrer des valeurs vides dans une exportation planifiée. Auparavant, l’application mettait à jour les valeurs de filtre vides après la création ou l’enregistrement de l’exportation. Les valeurs no et not specified étaient représentées par zéro dans la base de données et une valeur de not selected était remplacée par no.
  • Le processus d’exportation prend désormais en compte la portée du rôle utilisateur lors de l’exportation de produits, de sources de stock et d’entités client. Auparavant, le processus d’exportation ignorait la portée du rôle d’utilisateur, ce qui permettait d’exporter des entités d’exportation de rôle d’utilisateur privé.
  • L'application définit désormais la classe de taxe du produit sur None si un produit est importé avec des valeurs tax_class_name None ou 0. Auparavant, si product tax_class_name était None dans le fichier CSV, l’application créait une classe de taxe None, qui dupliquait la classe de taxe existante. Si product tax_class_name était 0 dans le fichier CSV, l’application ignorait cette valeur et la classe de taxe du produit ne changeait pas après l’importation.
  • Les administrateurs peuvent désormais modifier le name du bundle_values d’un bundle de produits à partir de l’administrateur. Auparavant, l’application affichait le produit comme étant en rupture de stock sur le storefront après que vous ayez modifié le nom à partir de Admin. Les produits ont également été fusionnés avec le même SKU dans une seule section d’option de lot.
  • L’application prend désormais en compte la portée de l’utilisateur lors de l’exportation des données client. Auparavant, lorsque vous tentiez d’exporter des clients, l’application exportait les données client de tous les sites web.
  • L’application supprime désormais les relations de produit entre la vente incitative, la vente croisée et les produits associés lors de l’importation d’un fichier CSV, comme prévu lorsque la __EMPTY__VALUE__ est spécifiée dans le fichier CSV.
  • L’exportation de données d’adresses personnalisées pour de nombreux clients (Admin System > Export) n’entraîne plus d’erreur de mémoire systématique. Auparavant, lors de l’exportation de données d’adresse personnalisées, l’application tentait de charger toutes les données client, ce qui entraînait une déplétion de la mémoire, et l’application générait une erreur d’échec d’allocation de la mémoire.
  • Les prix de niveau en double ne sont plus importés pendant le processus d’importation CSV par défaut. Auparavant, la validation était manquante pour empêcher l'importation de prix de niveau en double, et lorsque des prix de niveau en double se produisaient, les commerçants ne pouvaient pas enregistrer les produits. Les commerçants ont également vu cette erreur lorsqu’ils ont tenté de planifier un changement de produit : SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry….
  • Toutes les images des produits sont désormais validées lors de l’importation. Auparavant, l’application ne validait que la première image lorsqu’un produit avait plusieurs images. GitHub-28236
  • Vous pouvez désormais supprimer une région d’une adresse de client comme prévu lors de l’importation. Auparavant, la région affectée ne changeait pas lorsqu’une adresse de client était importée avec une région vide.
  • Les produits avec du contenu JSON ou HTML en tant qu’attributs de produit supplémentaires sont désormais correctement exportés vers un fichier CSV. Auparavant, le fichier CSV contenait des chaînes de données chevauchées dans des champs incorrects.

Index

  • Process Manager se ferme désormais avec une erreur lorsqu’un processus enfant échoue. Auparavant, Process Manager se quittait toujours avec succès si le nombre de fonctions qui lui étaient transmises (par exemple, les dimensions de l’indexeur) était inférieur à la valeur de la variable d’environnement MAGE_INDEXER_THREADS_COUNT. GitHub-30964
  • Les produits sont désormais disponibles comme prévu dans les résultats de recherche de storefront lors de la liaison de produits à l’aide d’une demande de /V1/products/:sku/links REST PUT lorsque le mode indexeur est défini sur Mise à jour lors de l’enregistrement.
  • L’indexeur de règles de prix de catalogue fonctionne désormais comme prévu lorsque le mode d’indexeur est défini sur Mise à jour lors de l’enregistrement. GitHub-370
  • La suppression d’une catégorie désactivée qui n’inclut pas de produit n’a désormais aucun effet sur la recherche catalogue et les tables d’index plat de catégories. Auparavant, la suppression d’une catégorie inactive déclenchait une réindexation complète. GitHub-23297
  • Les indexeurs personnalisés peuvent désormais utiliser différents noms de colonne d’entité pour les abonnements. Auparavant, le déclencheur de base de données utilisait le nom de colonne du dernier indexeur défini sur Mettre à jour selon le calendrier plutôt que l’indexeur désigné. GitHub-21853
  • L’application n’envoie plus de requêtes AJAX pour recharger les sections de données client (Magento_Customer/js/section-config) qui ne sont pas affectées par la requête. GitHub-31948
  • Les indexeurs suivants ne sont plus invalidés après l’ajout, la suppression ou la réorganisation de produits dans une catégorie : catalog_category_product et catalogsearch_fulltext (et leurs personnes à charge). Auparavant, ces suppressions accidentelles déclenchaient une réindexation complète des sites. Une réindexation complète est désormais impossible dans ces conditions lorsque le catalogue plat n’est pas activé.

Infrastructure

  • Le pelago/emogrifier de dépendance a été mis à jour de la version 3.1.0 à la version 5.0.0. Cette mise à jour a entraîné l’introduction de modifications non rétrocompatibles dans la classe Magento\Email\Model\Template\Filter. Le code modifié est exécuté lors du rendu des modèles d’e-mail. Voir Référence BIC.
  • Correction d’un problème lié à \Magento\CatalogInventory\Model\Indexer\Stock\CacheCleaner::getCategoryIdsByProductIds qui empêchait l’enregistrement d’un nouveau produit.
  • La bibliothèque TinyMCE v3 obsolète a été supprimée. Le module Magento_Tinymce3Banner et les tests MFTF relatifs à TinyMCE v3.x ont été supprimés d’Adobe Commerce.
  • L’application ne renvoie plus d’erreur Invalid header value detected dans le formulaire Nous contacter lorsqu’un acheteur saisit une adresse e-mail qui contient des signes diacritiques français (par exemple « é », « è »). L’application convertit désormais les lettres UTF-8 du nom d’utilisateur en codage ASCII. Auparavant, les lettres UTF-8 n’étaient pas converties en codage ASCII dans la section unique de l’adresse e-mail.
  • L’application ne renvoie plus d’erreur fatale PHP lorsqu’un module externe est ajouté à une classe parente. GitHub-31291
  • Mise à jour des fichiers README.md pour ces modules : Magento_Msrp, Magento_MsrpConfigurableProduct, Magento_MsrpGroupedProduct, Magento_Multishipping, Magento_MysqlMq. GitHub-32577
  • phpcpd a été mis à jour vers la version 6.0.3 pour la compatibilité avec PHP 8.
  • colinmollenhour/php-redis-session-abstract a été mis à jour vers la version 1.4.4 pour la compatibilité avec PHP 8. GitHub-32709
  • Correction d’une combinaison non valide d’onglets et d’espaces dans le fichier phpstan.neon. GitHub-31239
  • Suppression de l’utilisation de $_isScopePrivate de propriété obsolètes dans toute la base de code. GitHub-30506
  • Les mises en page ne sont plus codées en dur dans Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser\Container. Par conséquent, la fonction getPageLayouts() renvoie désormais la liste réelle des mises en page déclarées par les différents modules comme prévu. Auparavant, elle renvoyait uniquement des dispositions codées en dur. GitHub-31168
  • Le fichier composer.lock a été mis à jour vers la dernière version de la norme de codage. GitHub-31152
  • Ajout d’une dépendance manquante sur le package web-token/jwt-framework à la magento/module-jwt-framework-adapter. GitHub-32578
  • Des écouteurs passifs ont été ajoutés à la bibliothèque fotorama.js pour améliorer le score des mesures lighthouse. GitHub-31140
  • Le fichier README.md du module Google Analytics a été mis à jour. GitHub-32616
  • Process Manager gère désormais correctement les exceptions dans les processus dupliqués. Le processus principal se ferme et l’application n’affiche désormais qu’un seul message d’erreur. En outre, les exceptions des processus dupliqués sont désormais gérées lorsqu’elles sont levées dans le processus principal. Auparavant, l’application consignait plusieurs échecs d’indexeur et affichait plusieurs messages d’erreur. GitHub-30622
  • L’application ne renvoie plus d’erreur lorsqu’un module externe est ajouté à une classe parente. (Le paramètre optionsProvider est désormais déclaré après getContentIdentities dans Assest.php.) Auparavant, l’application générait cette erreur : Error: Cannot instantiate interface Magento\Framework\Data\OptionSourceInterface. GitHub-31291
  • L’exécution de Magento\Framework\Filesystem\Io\Ftp::ls() sur un dossier vide renvoie désormais un tableau vide comme prévu. Auparavant, l’application générait cette exception : Invalid argument supplied for foreach() in vendor/magento/framework/Filesystem/Io/Ftp.php…. GitHub-31288
  • La méthode update pour Rôle et Règles a été marquée comme obsolète dans app/code/Magento/Authorization/Model/Role.php. GitHub-30756
  • La concaténation des paramètres de cookie SameSite a été corrigée. Auparavant, une concaténation incorrecte ajoutait le suffixe lex à value, domain et d’autres paramètres. GitHub-26377, GitHub-32440
  • allure-framework/allure-phpunit a été mis à niveau vers la version 1.3.1 dans toute la base de code. Auparavant, l’application affichait cette erreur : Warning: Use of undefined constant GLOB_BRACE - assumed 'GLOB_BRACE' (this will throw an Error in a future version of PHP) in /var/www/html/src/vendor/allure-framework/allure-phpunit/src/Yandex/Allure/Adapter/AllureAdapter.php:74. GitHub-24635
  • L’application affiche désormais plus d’erreurs informatives lorsque des erreurs se produisent lors de l’exécution de commandes bin/magento en mode production. Auparavant, l’application n’affichait aucun message d’erreur ou affichait des messages ne contenant pas d’informations. GitHub-32786
  • L'objet PHP ArrayIterator a été mis à jour pour fonctionner comme prévu avec PHP 7.4. GitHub-32088
  • L’application ne renvoie plus d’erreur lorsqu’un client tente de terminer une commande alors qu’aucun transporteur n’est disponible. Au lieu de cela, elle affiche la page de passage en caisse et ce message : Sorry, no quotes are available for this order at this time. Auparavant, l’application affichait une page de passage en caisse vierge et enregistrait ce message dans le journal des exceptions : array_keys() expects parameter 1 to be array, null given. GitHub-30830
  • L’application ne consigne plus chaque cookie en tant que contexte distinct. Le tableau $_COOKIE a également été converti en chaîne. Auparavant, comme chaque cookie était enregistré en tant que contexte distinct, lorsque le nombre de cookies dépassait 50, l’application enregistrait le message suivant : Unable to send the cookie. Maximum number of cookies would be exceeded. GitHub-31334

Facture

  • Lors de la création de factures dans Admin, la case Copie d’e-mail de fonctionne désormais comme prévu. Auparavant, la case à cocher était ignorée si le paramètre global d’envoi des e-mails de facture était activé dans E-mails de vente. Il est désormais cohérent et fonctionne de la même manière que les pages de création d'expédition et d'avoir. GitHub-28511

Galerie de médias

  • bin/magento media-gallery:sync échoue désormais comme prévu lors du traitement des images PNG dépourvues d’informations XMP.
  • Les entrées de la table catalog_product_entity_media_gallery sont supprimées comme prévu lorsque des produits associés sont supprimés. GitHub-17727
  • Les détails des images peuvent désormais être mis à jour dans la Galerie de médias lorsque la minimisation de JavaScript est activée. Auparavant, les détails de l’image n’étaient pas enregistrés et l’application affichait cette erreur : TypeError: Cannot read property 'call' of undefined in jquery.validate. GitHub-31633

MFTF

Les nouvelles fonctionnalités et les correctifs de bogues principaux MFTF sont décrits dans le Journal des modifications du framework de tests fonctionnels.

  • Les commandes magento indexer:reindex et cache:flush, ainsi que le groupe d’actions AdminReindexAndFlushCache, ont été supprimés des tests afin d’améliorer l’exécution des modules suivants : Bundle, Catalog, CatalogRule, CatalogRuleConfigurable, CatalogUrlRewrite, Downloadable, Indexer, Paypal et Sales. GitHub-31031
  • AdminSubmitCategoriesPopupActionGroup a été ajouté aux tests pour éviter l’échec du test. GitHub-31251
  • Les tests ont été refactorisés avec StorefrontCheckQuickSearchStringActionGroup et StorefrontAssertProductNameOnProductMainPageActionGroup (groupes d’action existants). GitHub-31251

Tests refactorisés

Les tests suivants ont été restructurés pour améliorer le temps d’exécution :

AddOutOfStockProductToCompareListTest

AdminApplyTierPriceToProductWithPercentageDiscountTest

AdminCheckingCreditMemoTotalsTest

AdminCheckDashboardWithChartsTest

AdminConfigDefaultProductLayoutFromConfigurationSettingTest

AdminCreateInvoiceTest

AdminCreateOrderAddProductCheckboxTest

AdminMassOrdersCancelCompleteAndClosedTest

AdminMassOrdersCancelProcessingAndClosedTest

AdminMassOrdersHoldOnCompleteTest

AdminMassOrdersHoldOnPendingAndProcessingTest (remplacement des AdminMassOrdersHoldOnPendingAndProcessingTest obsolètes)

AdminMassOrdersUpdateCancelPendingOrderTest

AdminMassProductPriceUpdateTest

AdminMassUpdateProductAttributesMissingRequiredFieldTest

AdminOrdersReleaseInUnholdStatusTest

AdminPanelIsFrozenIfStorefrontIsOpenedViaCustomerViewTest

AdminSortingByWebsitesTest

AdminUpdateSimpleProduct

AdminUpdateSimpleProductWithRegularPriceInStockEnabledFlatTest

AdminValidateShippingTrackingNumberTest

CancelOrdersInOrderSalesReportTest

ProductsQtyReturnAfterOrderCancelTest

StorefrontConfigurableProductBasicInfoTest

Groupes d'actions

Les actions répétitives ont été remplacées par des groupes d’actions dans ces tests :

AdminCheckConfigurableProductPriceWithDisabledChildProductTest

AdminConfigurableProductCreateTest

AdminConfigurableProductRemoveAnOptionTest

AdminCreateProductDuplicateUrlkeyTest

AdminCreateSimpleProductNegativePriceTest

AdminCreateSimpleProductZeroPriceTest

AdminCreateVirtualProductFillingRequiredFieldsOnlyTest

AdminUpdateSimpleProductWithRegularPriceInStockDisabledProductTest

AdminUpdateSimpleProductWithRegularPriceInStockNotVisibleIndividuallyTest

AdminUpdateSimpleProductWithRegularPriceInStockVisibleInCatalogOnlyTest

Nouveaux groupes d’action

AdminClearFiltersOnGridActionGroup

AdminClickAddNewPageOnPagesGridActionGroup

AdminClickInsertWidgetActionGroup

AdminClickRefundOfflineOnNewMemoPageActionGroup

AdminFillAccountInformationOnCreateOrderPageActionGroup

AdminGoToOrderStatusPageActionGroup

AdminOpenCMSPagesGridActionGroup

AdminSelectAttributeSetOnEditProductPageActionGroup

AssertAdminProductIsAssignedToCategoryActionGroup (remplace le filtrage Grille de produits par SKU et le clic sur la première ligne (afin de réduire le temps d’exécution du test)

AssertLinkActionGroup

AssertStorefrontCartDiscountActionGroup

ClickPlaceOrderActionGroup

SaveCmsPageActionGroup

StorefrontAssertProductNameIsNotOnProductMainPageActionGroup

StorefrontGuestCheckoutProceedToPaymentStepActionGroup

StorefrontHoverProductOnCategoryPageActionGroup

StorefrontSelectCustomizeAndAddToTheCartButtonActionGroup

Groupes d’actions supprimés

  • Suppression de la CliIndexerReindexActionGroup (ou modification de la valeur) des tests afin d’améliorer le temps d’exécution pour les modules Backend, Bundle, BundleImportExport, Catalog, CatalogRule, CatalogSearch, Checkout, Downloadable, Elasticsearch, Elasticsearch6, Indexer, LayeredNavigation, LoginAsCustomer, Newsletter, Sales, SalesRule, Search, Store, Swatches, UrlRewrite, Weee et Wishlist.
  • Suppression de CliCacheFlushActionGroup des modules Catalog, CatalogUrlRewrite, Checkout, Config, ConfigurableProduct, Contact, Cookie, CurrencySymbol, Customer, Downloadable, Elasticsearch, Elasticsearch6, Fedex, Indexer, LayeredNavigation, LoginAsCustomer, Msrp, Multishipping, Sales, Swatches, Translation, UrlRewrite, Vault, Weee, Wishlist, et.

Newsletter

  • L’application n’envoie plus d’e-mail de newsletter à un client qui a été désabonné de la newsletter entre la création de la file d’attente de la newsletter et l’envoi de la newsletter. GitHub-32116
  • L’application respecte désormais les paramètres d’activation de la newsletter (Magasins > Paramètres > Configuration > Clients > Newsletter > Options générales). Auparavant, ces paramètres étaient toujours récupérés à partir de la portée par défaut dans les déploiements multi-magasin. GitHub-31188
  • L’appel REST GET /V1/customers/search renvoie désormais des informations correctes pour les clients abonnés à plusieurs newsletters. GitHub-31168
  • Le statut d’abonnement à la mise en cache a été supprimé du plug-in de newsletter. GitHub-19345

Ordre

  • L'application calcule désormais correctement un solde client facturé lors du retour d'un crédit de magasin à un compte client pour une commande partiellement facturée.
  • L’application enregistre désormais une commande modifiée comme prévu lorsqu’elle enregistre un solde client remboursé. GitHub-393

Modes de paiement

  • L’application effectue désormais le rendu des blocs de paiement sur frontend, quelle que soit la zone à partir de laquelle l’e-mail a été envoyé. (La zone actuelle est maintenant émulée comme frontend avant que le bloc de paiement ne soit rendu.) Auparavant, les blocs de paiement étaient rendus dans la zone à partir de laquelle l’e-mail était envoyé. Par conséquent, que l’e-mail de vente ait été déclenché par l’administrateur ou par l’API REST, les URL des ressources ont tenté de les charger à partir d’une zone incorrecte (webapi_rest ou adminhtml).
  • L’application envoie désormais le lien d’un produit téléchargeable à l’adresse e-mail spécifiée lors du passage en caisse. Auparavant, lorsqu’un client invité utilisait PayPal Express Checkout et saisissait différentes adresses e-mail pour envoyer la commande et passer en caisse, l’application envoyait le lien de produit téléchargeable à la première adresse.
  • L’application affiche désormais une valeur précise pour le crédit de magasin disponible sur la page Mode de paiement dans les déploiements qui prennent en charge plusieurs devises.
  • La liste des modes de paiement est désormais mise à jour comme prévu lorsqu’un client invité modifie l’adresse de livraison d’une commande dans un autre pays au cours du passage en caisse. Auparavant, la modification de l’adresse de facturation ne déclenchait pas de mise à jour des modes de paiement possibles.

PayPal

  • Les acheteurs peuvent désormais passer en caisse une commande PayPal Payflow Pro avec une adresse de livraison contenant des caractères spéciaux. Auparavant, l’application refusait le paiement de ces commandes.
  • Les acheteurs sont maintenant redirigés vers la page de succès de la commande après un paiement réussi à l'aide de PayPal. Auparavant, les acheteurs étaient redirigés vers une page vierge en raison d’une perte de données de session.

Performances

  • Les performances de la recherche de SKU d’administration sur les catalogues volumineux ont été améliorées. Les indications de Query Optimizer forcent désormais l’utilisation de l’index lors de l’exécution de la requête.
  • Les performances du processus catalog_product_alert cron lors de l'exécution sur des tables volumineuses (plusieurs millions de lignes) ont été améliorées. Auparavant, catalog_product_alert chargeait toutes les alertes de produit, ce qui provoquait une exception de mémoire insuffisante.
  • L’application ne charge plus toutes les pages CMS lorsqu’il ne faut qu’une seule page de modification pour générer un formulaire d’administration. Ces pages se chargent désormais plus rapidement. GitHub-30936
  • Les valeurs numériques dans les expressions WHERE IN sont désormais converties en nombre, et non en chaîne, ce qui améliore les performances des requêtes dans certaines versions de MariaDB. GitHub-31135

  • Le mode use_application_lock vous permet d’activer la réindexation soit en utilisant des variables d’environnement, soit en configurant le fichier app/etc/env.php. Vous n’avez plus besoin de réinitialiser manuellement l’indexeur après un échec lorsque ce mode est activé. Lorsque ce mode n’est pas activé, vous devez réinitialiser manuellement l’indexeur après l’échec. Voir Utilisation du mode de verrouillage de l’application pour les processus de réindexation.

Tarification

  • L’application met désormais correctement à jour le prix d’un produit avec des prix groupés lorsqu’un acheteur met à jour la quantité du produit sur le storefront. GitHub-32669
  • Les produits groupés peuvent désormais être enregistrés lorsque des produits ont été dotés d’un prix de niveau et que Magento\Framework\Api\ExtensibleDataObjectConverter est utilisé pour convertir les données des produits. Auparavant, lorsque Magento\Framework\Api\ExtensibleDataObjectConverter était utilisé pour convertir les données de produit en tableau lorsqu’un produit était enregistré, l’application n’enregistrait pas le produit et affichait cette erreur : Notice: Undefined index: price in app/code/Magento/Catalog/Model/Product/Type/Price.php on line 382.
  • Les mises à jour de prix planifiées sont désormais appliquées aux produits figurant déjà dans le panier d’un acheteur. GitHub-356
  • Le prix de niveau est désormais appliqué à un produit comme prévu lorsque des incréments de quantité sont activés et que le stock décimal est inférieur à 1. Auparavant, la quantité de prix de niveau minimal était définie sur 1.

Vidéo du produit

  • Vous pouvez désormais utiliser le bouton Ajouter une vidéo (Admin Catalogue > Produits) pour ajouter plusieurs vidéos de manière consécutive. Auparavant, les champs vidéo conservaient les détails de la vidéo précédente.
  • Le passage en mode plein écran pour une vidéo de produit sur une page de produit fonctionne désormais comme prévu sur les appareils mobiles. Auparavant, l’activation du mode Plein écran entraînait une pause de la vidéo avant sa désactivation.
  • Les boutons fléchés de navigation (Suivant et Précédent) sont désormais visibles comme prévu sur les vidéos des produits storefront.
  • Les commerçants peuvent désormais ajouter des vidéos Vimeo à l’aide du bouton Insérer une vidéo sur la page du produit comme prévu. Auparavant, l’application affichait une erreur 404. GitHub-31753

Citation

  • L’appel /V1/guest-carts/examplecartid/items renvoie désormais la vue de magasin demandée. Auparavant, il renvoyait la première vue de magasin dans le magasin, et non celle demandée.
  • L’envoi de factures peut désormais être configuré. Auparavant, l'envoi de factures n'était pas configurable et l'application envoyait toujours une facture après sa création. Les courriels de facture et de commande ont tous deux été envoyés par un observateur. Des observateurs distincts régissent désormais l’envoi des e-mails de commande et de facture. GitHub-27656

Rapports

  • Tous les rapports système peuvent désormais être affichés et téléchargés à partir du projet d’infrastructure cloud d’Adobe Commerce. Auparavant, vous ne pouviez pas télécharger les rapports système pour les journaux, les données, la conception ou les magasins.
  • La date de dernière révision dans Admin Reports > Reviews > By Products affiche désormais la date de révision correcte. Auparavant, l’application affichait la date de création du produit au lieu de la date de révision.

Autorisations de retour de marchandises (RMA)

  • L'attribut resolution RMA n'est plus affiché comme requis lorsque la valeur du champ d'attribut required est définie sur non.
  • Vous pouvez désormais sélectionner plusieurs commandes à renvoyer à partir de l’administrateur. Auparavant, l’application générait une erreur lorsque vous cliquiez sur Envoyer après avoir sélectionné plusieurs retours et avoir cliqué sur Fermer dans le menu déroulant Actions.
  • L’application envoie désormais une notification par e-mail aux clients comme prévu après que vous avez modifié le statut d’un retour à l’aide de l’API REST.
  • L’application filtre désormais les enregistrements en fonction des valeurs de filtre dans la grille de retours client Admin . Auparavant, l’application vous redirigeait vers la page Admin - Tous les clients et le fait de cliquer sur le bouton Réinitialiser le filtre était également redirigé vers cette page. GitHub-436

Examens

  • Les étoiles d’évaluation de révision de produit sont désormais correctement calculées dans la section Détails de la révision de la page Mon compte .
  • Les sections Note de produit moyenne et Note de produit de la page de détails de la révision du produit s’affichent désormais correctement. Auparavant, l’ID de révision n’était pas défini lorsque l’application calculait la note de storefront et le modèle de révision du produit n’était pas correctement rendu.
  • Le lien Soyez le premier à examiner ce produit est désormais remplacé comme prévu par un nombre d’examens après l’approbation d’un examen par un administrateur.
  • Les administrateurs peuvent désormais trier les avis de produits dans la section Avis des produits de la page d’édition du produit comme prévu. GitHub-30270
  • Les révisions sont désormais enregistrées avec l’ID de magasin correct une fois qu’un administrateur a approuvé et enregistre la révision à partir d’un domaine différent de celui du magasin. GitHub-17510

Récompenses

  • Les commerçants peuvent désormais annuler une commande passée en tout ou partie à l'aide de points de récompense une fois que le client qui a passé la commande a été retiré du système.
  • Les commerçants peuvent désormais supprimer les points de récompense des règles de prix du panier. Auparavant, lorsqu’un commerçant tentait de définir Points de récompense sur 0 lors de la création d’une règle de prix de panier, la valeur précédente pour la quantité de point de récompense était conservée.
  • Les points de récompense pour les évaluations de produit sont désormais associés au site web approprié lorsque plusieurs évaluations sont approuvées à partir de la grille Admin Marketing > Évaluations en attente. Auparavant, les points de récompense n’étaient pas affichés sur le storefront et n’étaient pas liés au site web approprié dans l’administrateur.
  • L’application met désormais à jour la liste des méthodes de paiement lorsqu’un acheteur qui effectue une commande avec plusieurs adresses coche ou décoche l’option Crédit de la boutique (points de récompense).

Ventes

  • Les utilisateurs administrateurs peuvent désormais passer des commandes pour des articles en rupture de stock lorsque le paramètre Les reliquats sont autorisés est activé (Magasins > Configuration > Catalogue > Inventaire > Options de stock de produit). Auparavant, l’application générait une erreur.
  • Les acheteurs peuvent désormais trouver une commande sur la page Commandes et retours lorsque le nom de famille se termine par un espace.
  • Les factures sont désormais créées avec le total général correct lorsqu'une règle de prix de panier attribuant une remise de 100 % est appliquée à une commande qui est également soumise aux taxes sur les produits du catalogue et les remises et qui est admissible pour une livraison gratuite. Auparavant, le prix de la commande était correct, mais pas celui de la facture. GitHub-30853
  • Le filtrage des commandes par date renvoie désormais des résultats précis. Auparavant, l’application ne renvoyait pas une commande passée après 00 :00 UTC lorsque vous filtriez les commandes par date de commande.
  • La grille d'avoir affiche désormais le symbole de devise correct lorsque la portée Website est utilisée pour un attribut Price dans un déploiement multi-magasin.
  • Les boutons radio Modes de paiement ne disparaissent plus dans la section Informations sur le paiement et l’expédition du workflow de passage en caisse une fois la page Admin Créer une nouvelle commande rechargée. GitHub-32106
  • Le texte arabe s’affiche désormais correctement dans les factures.
  • L'application calcule désormais correctement les totaux de taxe des avoirs partiels pour les avoirs basés sur une commande ou une facture dans les magasins qui déploient PayPal Payment Pro comme passerelle de paiement. Auparavant, pour les commandes comportant plusieurs factures, l'application appliquait la taxe totale de cette commande pour l'annulation partielle de la facture dans l'avoir.
  • L’application ne crée plus d’interblocages aléatoires de base de données lors de l’envoi de nouveaux e-mails de commande aux clients. Auparavant, les interblocages se produisaient car l’application enregistrait l’objet entier et ses objets associés au lieu des colonnes SQL mises à jour. L'application affichait le type d'erreur suivant : SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction. GitHub-31090
  • La page Détails de la commande du storefront affiche désormais la quantité de produit expédiée correcte. Auparavant, les quantités de produit étaient incorrectes, car le modèle de la page Expédition de commande affichait Qté expédiée sous forme de int. Ce champ a été remplacé par float.
  • L’application n’envoie plus de courrier électronique aux copies d’une facture de commande lorsque le bouton Envoyer une copie de facture par courrier électronique n’est pas coché. Auparavant, l’application envoyait un e-mail à Client et Envoyer la copie de l’e-mail de facture à. GitHub-28511
  • L’application ne crée plus d’entrées d’adresse en double pour un compte client lors de la création d’une commande à partir de l’administrateur pour un client existant. La case à cocher Enregistrer dans le carnet d’adresses a été renommée Ajouter au carnet d’adresses et n’est désormais pas cochée dans l’administration par défaut.
  • L’application utilise désormais le logo qui a été chargé dans les paramètres Logo pour l’affichage d’impression HTML lorsque les acheteurs impriment une commande à partir de leur compte. Auparavant, l’application affichait le logo LUMA au lieu du logo chargé.
  • Le pager des articles de commande sur le storefront fonctionne désormais comme prévu lorsque le nombre d’articles dépasse 20. Auparavant, le pager prenait en compte les produits enfants, et le nombre total était incorrect.
  • L'application affiche désormais les symboles de devise corrects pour le sous-total et les valeurs d'expédition et de gestion sur la page Commande et les grilles de page Avoir. GitHub-22662
  • Les administrateurs qui utilisent Safari peuvent désormais ajouter un produit à une commande à partir de l’administrateur. Auparavant, lorsque l’administrateur cliquait sur le bouton Ajouter les produits sélectionnés à la commande, l’application affichait l’icône de charge tournante et la page était suspendue. GitHub-30265

Règle de vente

  • L’application applique désormais correctement les règles de prix de panier avec les conditions La remise de quantité maximale est appliquée à ou Étape de quantité de remise (Acheter X) lorsque plusieurs règles de prix de panier sont appliquées au panier. Auparavant, si une règle de prix de panier avec Remise Qté maximale est appliquée à ou Étape Qté remise (Acheter X) était appliquée après une autre règle de prix de panier, la remise totale était réduite à la valeur configurée pour Remise Qté maximale est appliquée à ou Étape Qté remise (Acheter X) multiplié par le prix du produit.
  • Le rapport Coupon reflète désormais précisément l’activité des coupons dans les déploiements où une base de données fractionnée est implémentée.
  • Les règles de prix de panier qui contiennent la condition Catégorie N’EST PAS sont désormais appliquées comme prévu aux produits enfants/simples configurables qui ne sont pas affectés à une catégorie, mais dont les produits parents sont affectés.
  • La requête cart GraphQL renvoie désormais le total général correct pour l’étape de facturation d’un panier lorsqu’un coupon est appliqué à la commande.

Rechercher search-heading

  • La page de catégorie ne contient plus ces identifiants d’élément HTML en double : modes-label, mode-list, toolbar-amount, sorter, limiter.
  • Les résultats de recherche par mots partiels n’incluent plus de correspondances inattendues ou non pertinentes et les recherches produisent des résultats cohérents sur le storefront et l’administrateur. L’application utilise désormais un analyseur différent sans système d’arrêt pour les recherches de mots partielles. Auparavant, les résultats de recherche affichaient des produits qui n’incluaient pas de mots-clés de recherche. (L’analyseur par défaut incluait auparavant un horodateur, et comme le même analyseur était utilisé au moment de la recherche pour la recherche de mots partielle, le résultat de la recherche pouvait produire des correspondances inattendues ou non pertinentes.)
  • La recherche rapide renvoie désormais des résultats si la requête de recherche comporte plusieurs mots et que le nom du produit est configuré comme ne pouvant pas faire l’objet de recherches. Auparavant, si le nom du produit était configuré comme ne pouvant pas faire l’objet de recherches, l’application générait une exception de requête sur les requêtes comportant plusieurs mots.
  • Les résultats de recherche incluent désormais l’attribut weight comme prévu lorsqu’il est configuré comme pouvant faire l’objet d’une recherche.
  • L’application ne renvoie plus d’erreur lorsque vous affichez une page de catégorie vide avec Elasticsearch activé. Au lieu de cela, il effectue le rendu de la page comme prévu et affiche un message informatif. Auparavant, un index de texte intégral vide déclenchait une exception sur une page de catégorie.
  • La fonction de saisie automatique des champs de recherche fonctionne désormais comme prévu si un acheteur clique en dehors du champ de recherche après avoir commencé sa recherche. Les suggestions de saisie semi-automatique réapparaissent désormais lorsque l’acheteur reprend la saisie. Auparavant, l’application n’affichait pas de suggestions de saisie semi-automatique et le fait de cliquer dans la zone de recherche ne rendait pas les suggestions de recherche visibles à nouveau (bien que la saisie de lettres supplémentaires le fût).
  • La recherche d’un produit en fonction de son SKU complet ou partiel dans la recherche avancée renvoie désormais le produit attendu.
  • Les filtres de navigation superposés affichent désormais un nombre précis de produits. Auparavant, les valeurs de nombre de produits d’Elasticsearch n’étaient pas filtrées par les autorisations de catalogue.
  • Elasticsearch ne renvoie plus d’erreur lorsque le paramètre de page de l’URL de catégorie dépasse la pagination. GitHub-23843
  • Vous pouvez désormais ajouter un mappeur de champs Elasticsearch personnalisé à Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\Resolver\CompositeResolver. GitHub-24350
  • Les développeurs peuvent désormais modifier les mappages Elasticsearch. Auparavant, les modèles dynamiques envoyés au serveur Elasticsearch dans les mappages par défaut étaient codés en dur, ce qui empêchait les développeurs et développeuses d’indexer dans Elasticsearch toute donnée supplémentaire associée à un module personnalisé. GitHub-24363
  • Les champs de recherche (mini-recherche de formulaire) fonctionnent désormais comme prévu lorsque les suggestions de recherche sont désactivées. GitHub-30584

Expédition

  • L’application met désormais à jour le prix d’expédition comme prévu lorsqu’un acheteur revient à la page du panier après avoir supprimé un produit lors du passage en caisse avec plusieurs adresses.
  • L’application affiche désormais le prix d’expédition ajusté correct lorsque certains articles du panier sont qualifiés pour une livraison gratuite. Auparavant, lorsqu’un sous-ensemble d’articles du panier était admissible pour la livraison gratuite, l’application n’ajustait pas le prix d’expédition et affichait le prix d’expédition complet à l’acheteur.
  • Les administrateurs limités à un site web spécifique peuvent désormais créer une expédition pour une commande passée sur le même site web. Auparavant, l’application générait cette exception lorsqu’un administrateur qui n’avait pas l’autorisation d’accéder à l’affichage de magasin par défaut tentait d’envoyer une commande placée dans un affichage de magasin auquel l’administrateur avait accès : Notice: Undefined offset: 1 in /app/code/Magento/Catalog/Model/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php on line 293.
  • L'application prend désormais en compte les remises de règle de prix de panier pertinentes pour déterminer si une commande remplit les conditions pour une livraison gratuite de DHL.
  • Les étiquettes d’expédition utilisent désormais la devise de base comme prévu au lieu de la devise de commande pour les magasins qui prennent en charge plusieurs devises lorsqu’une commande est passée dans une devise autre que la devise de base. GitHub-31891
  • L’application affiche désormais le sous-total de commande correct lorsqu’un acheteur revient sur la page du panier lors du passage en caisse après avoir quitté la page d’expédition multiple. GitHub-31889
  • La modification des informations de facturation lors de la création de la commande administrateur ne modifie plus les informations d’expédition pour les clients ayant des adresses d’expédition et de facturation par défaut différentes. GitHub-31786
  • L’application ne décoche plus la case Ajouter des commentaires lorsqu’un acheteur clique sur Obtenir les méthodes et les tarifs d’expédition et sélectionne une méthode d’expédition lors de la création d’une commande auprès de l’administrateur. GitHub-30256
  • Les acheteurs peuvent désormais utiliser le bouton Précédent du navigateur pour revenir à la page Sélectionner le mode d’expédition lors de la vérification d’une commande avec plusieurs adresses. Auparavant, l’application affichait une page Sélectionner le mode d’expédition corrompue. GitHub-30268
  • La quantité de produits reste désormais inchangée comme prévu après qu’un acheteur a modifié la quantité sur la page Adresse d’expédition multiple et cliqué sur le bouton Précédent du navigateur. GitHub-31956
  • Les frais de méthode d’expédition à taux forfaitaire ne deviennent plus nuls lorsqu’une règle de prix de panier est appliquée lors du passage en caisse. GitHub-21832
  • L’application ne renvoie plus d’erreur lorsqu’un commerçant tente d’expédier une commande à l’aide de DHL lorsque la case Créer une étiquette d’expédition est cochée et que le nom du produit contient des caractères Unicode. Auparavant, l’application affichait cette erreur lors de la demande de création de libellé : The response is in wrong format. GitHub-31032
  • Vous pouvez passer une commande auprès de l’administrateur dans un déploiement multisite dans lequel United States est activé sur un site web et Disable all countries est activé par défaut sur l’autre site web. Auparavant, l’application ne passait pas de commande et affichait cette erreur : Please check the shipping address information. "regionId" is required. Enter and try again. GitHub-30577

Évaluation

  • La fonction Planifier la mise à jour des blocs fonctionne désormais comme prévu dans les déploiements implémentant Fastly. Auparavant, l’application ne mettait pas à jour le contenu du bloc, car les balises du cache Fastly n’étaient pas invalidées et Fastly continuait à diffuser du contenu obsolète.
  • L’aperçu d’évaluation des règles de prix du panier est désormais chargé dans le site web approprié lorsqu’il est affecté à plusieurs vues de magasin de sites web. Auparavant, l’aperçu d’évaluation des règles de prix du panier était chargé dans l’affichage par défaut du magasin, quels que soient les sites web affectés.
  • Les prix spéciaux des produits dans la vue de magasin autre que celle par défaut sont désormais définis sur la valeur par défaut comme prévu après la fin d’une mise à jour planifiée.
  • Les commerçants peuvent désormais enregistrer un produit téléchargeable avec un exemple lié à partir de la page produit téléchargeable après avoir créé une mise à jour d’évaluation ultérieure avec une date de fin. Auparavant, l’application n’enregistrait pas le produit et affichait le message suivant : The downloadable sample isn't related to the product. Verify the link and try again. GitHub-488
  • L’application n’exécute plus de requêtes de base de données volumineuses qui incluent tous les identifiants de produit lors de la prévisualisation d’une mise à jour de planning d’une catégorie. Au lieu de cela, le filtre de catégorie est appliqué à la collection de produits afin de créer un tableau temporaire pour les aperçus intermédiaires de la catégorie. Auparavant, l’application insérait tous les produits dans une table temporaire pour l’aperçu de l’évaluation, ce qui dégradait les performances.
  • Le module Magento_SalesRuleStaging ne déclenche plus d’erreurs lors de la mise à niveau à partir de la version 2.3.x.
  • L’application affiche désormais les conditions des règles de catalogue avec les données correctes lorsque vous affichez une mise à jour de planification. Auparavant, si vous affichiez une mise à jour de planification créée avec des conditions, l’application n’affichait pas de conditions ou affichait des conditions avec des données incorrectes.
  • La case Utiliser la valeur par défaut d’un produit reste cochée lorsqu’une mise à jour planifiée est décochée avant la mise à jour.
  • Les règles de prix de catalogue s’appliquent désormais comme prévu aux produits avec des valeurs d’attribut non définies. Auparavant, les remises créées par le biais d'une règle de prix de catalogue n'étaient pas appliquées aux produits dotés d'attributs non définis. GitHub-461
  • Les règles de catalogue fonctionnent désormais comme prévu dans les déploiements multi-sites web avec des magasins situés dans différents fuseaux horaires. Auparavant, l’application appliquait ou désactivait les règles de catalogue sur tous les sites web en même temps.
  • Les prix de niveau ne sont plus supprimés lorsqu’une mise à jour de planification est créée pour un site web spécifique.
  • Vous pouvez désormais enregistrer un produit à partir de la page Produit téléchargeable après avoir créé une mise à jour d’évaluation ultérieure avec une date de fin. Auparavant, l’application n’enregistrait pas le produit et affichait le message suivant : The downloadable link isn't related to the product. Verify the link and try again. GitHub-474

Stocker

  • L’application ne traite plus une chaîne de 0 comme une valeur vide lors de l’affichage de la page d’accueil d’un magasin. Auparavant, l’application traitait une valeur entière au début d’un chemin de requête en tant qu’ID de magasin, ce qui avait des effets inattendus sur l’optimisation pour les moteurs de recherche.
  • Les modules externes pour les \Magento\Framework\App\ActionInterface sous lib/internal/Magento/Framework/App/Action/Plugin ont été supprimés afin de respecter la directive selon laquelle les modules externes doivent être utilisés pour personnaliser le comportement d’un module à partir d’un autre module. GitHub-28050
  • L’application affiche désormais ce message lorsque vous essayez de sélectionner Website par défaut lorsque Store View est désactivé lors de la création du site web : Please enable your Store View before using this Web Site as Default. Auparavant, le site web s’était bloqué et l’application n’avait pas affiché d’alerte.

Taxe

  • L'application prend désormais en compte la taxe cachée lors de la validation du montant minimum de la commande.
  • L’application affiche désormais les Taxes fixes sur les produits (FPT) comme prévu lorsqu’un acheteur revient à son panier et passe en caisse après l’ajout de produits groupés au panier. GitHub-30250
  • L'application préremplit désormais les champs d'entrée Numéro de TVA pour les adresses de facturation et d'expédition de la section Informations sur l'adresse de la page Admin - Nouvelle commande avec des numéros de TVA enregistrés lorsqu'un administrateur crée une commande pour un client existant. GitHub-31846
  • L'application affiche désormais un champ Numéro de TVA sur la page d'enregistrement des clients lorsque l'customer/create_account/vat_frontend_visibility est activée. GitHub-31326

Test

  • Les environnements de test ont été mis à niveau vers Redis 6.0.12.
  • Suppression de CacheCleaner::cleanAll(); des tests d’intégration. GitHub-31074
  • Ajout d’un test pour ce scénario : les utilisateurs administrateurs peuvent modifier un compte client lorsque le client est abonné à une newsletter mise en file d’attente. GitHub-30645
  • Suppression de la commande cache:flush des tests afin d’améliorer le temps d’exécution pour les modules Catalog, CatalogUrlRewrite et LoginAsCustomer. GitHub-31056
  • Les paramètres redondants ont été supprimés et l’instruction POST a été remplacée par GET si nécessaire dans \Magento\Logging\Model\ProcessorTest::testLoggingProcessorLogsActionShipping.

Thème

  • La page de connexion du client n’affiche plus ce message lorsque le paramètre Déplacer le code JS au bas de la page (Store > Configurations > Advance > Developer > Paramètres JavaScript) et les cookies sont tous deux activés : The store will not work correctly in the case when cookies are disabled.
  • Les liens de compte dans les en-têtes suivent désormais les normes WCAG. Auparavant, les liens de compte dans les en-têtes contenaient des identifiants dupliqués, ce qui entraînait l’échec de la validation de WCAG.
  • L’application donne désormais la priorité à la configuration du magasin pour une image de logo de magasin sur la configuration de la disposition. Auparavant, la taille des images de logo était fixe et ne variait pas selon le magasin.
  • L’application affiche désormais de manière cohérente les éléments de page sur les pages de storefront qui utilisent des thèmes Adobe Commerce standard. Auparavant, tous les styles n’étaient pas appliqués dans le thème Vide . Par conséquent, tous les éléments de page n’étaient pas affichés dans les pages utilisant ce thème. (Par exemple, aucune icône de loupe n’était présente dans le champ de recherche de la page Mes commandes .)

Traduction et paramètres régionaux

  • Les crochets ajoutés aux chaînes ne sont plus placés dans un échappement lorsque la traduction en ligne est configurée. Auparavant, la méthode escapeHtmlAttr convertissait les crochets en codes d’entité HTML. GitHub-32000
  • Les phrases non traduisibles dans l’interface d’administration peuvent désormais être traduites. (Cette demande d’extraction contribue aux efforts en cours pour rendre toutes les chaînes d’administration localisables.) GitHub-11175
  • Les chaînes de texte du modèle utilisées pour gérer les modes de paiement stockés (Mon compte > Modes de paiement stockés ) peuvent désormais être traduites. GitHub-31211
  • Les e-mails de commande envoyés à partir de l’administrateur utilisent désormais les paramètres régionaux du magasin et non pas les paramètres régionaux associés au compte de l’administrateur. GitHub-26521

Interface utilisateur

  • Le pied de page Administrateur affiche désormais la version correcte du produit.
  • La pagination des sources est désormais présente comme prévu lors de la création de l’expédition Admin.
  • Le filtre de grille de produits fonctionne désormais correctement lorsque vous utilisez des attributs de date personnalisés pour filtrer les produits et que les paramètres régionaux de l’utilisateur administrateur sont en_GB.
  • Les mouvements de pincement pour zoomer fonctionnent désormais comme prévu dans le agrandisseur de la galerie d’images de la page produit sur les appareils iOS.
  • La pagination des résultats de recherche de la grille de produits d’administration commence désormais à la page un pour chaque recherche comme prévu.
  • Les anomalies avec l’affichage du panier en cas de zoom ont été résolues. Auparavant, les éléments d’affichage se chevauchaient lors du zoom de cette page.
  • Les problèmes d’alignement avec les onglets de la page d’invitation de l’administrateur (Admin Marketing > Ventes privées > Invitations) ont été résolus. Auparavant, l’affichage de l’onglet pour les invitations acceptées par un client n’était pas aligné correctement. GitHub-333
  • La page de révision de commande affichée lors du passage en caisse avec PayPal Express Checkout se charge désormais correctement. Auparavant, le modèle contenait le bouton inutilisé Mettre à jour la méthode de diffusion, qui n’était que partiellement masqué par le script lors du rendu de la page. GitHub-32006
  • Les étoiles d’évaluation et le texte d’évaluation dans la section Avis des clients de la page produit sont désormais correctement espacés lorsque de longs noms d’évaluation sont présents. GitHub-31890
  • Les options s'affichent désormais comme prévu dans la liste déroulante Actions des pages Archiver les factures, les livraisons et les avoirs.
  • L’application affiche désormais une valeur temporelle correcte lorsque l’option datetime du composant timeOnly est définie sur oui. GitHub-23157
  • Vous pouvez désormais supprimer une mise à jour de disposition après la création d’un widget dans Admin Content > Widgets. GitHub-29936
  • Le bouton Supprimer la mise à jour de la disposition fonctionne désormais comme prévu sur toute disposition que vous avez ajoutée à partir de Admin Contenu > Widgets. Auparavant, ce bouton ne fonctionnait sur aucune mise en page autre que la première sélectionnée lors de l’ajout de plusieurs mises en page. GitHub-30286
  • L’application utilise désormais le titre de page défini dans le fichier de mise en page comme titre de page du navigateur pour le fichier de modification du compte client. Auparavant, l’action du contrôleur de Magento\Customer\Controller\Account\Edit appliquait la valeur du titre de la page à Account Information. GitHub-30724
  • Des cases à cocher qui permettent aux commerçants d’afficher ou de masquer les mots de passe ont été ajoutées à ces pages :

    • Connexion client
    • Enregistrement des clients
    • Modification du client (section Modifier le mot de passe)
    • Mot de passe défini par le client GitHub-31557
  • Suppression d’un en-tête redondant dans les cellules de la grille qui s’affichait lorsqu’un administrateur ajoutait un produit à un ensemble de produits groupés après avoir modifié l’ensemble d’attributs. GitHub-30911
  • L’application affiche désormais un filtre DateRange dans la zone Connecté de la page Client > Connexion. Auparavant, l’application affichait un filtre Text. GitHub-30328
  • JavaScript a été supprimé des fichiers de modèle et déplacé dans des fichiers distincts afin de réduire les problèmes de rendu sur les pages d’administration. Auparavant, les pages d’administration ne s’affichaient pas correctement dans les déploiements dans lesquels la minimisation d’HTML avait été activée. L’application affichait cette erreur : An error has happened during application run. See exception log for details. GitHub-32454
  • Le widget dropdownDialog charge désormais uniquement les blocs de jquery-ui glissables et redimensionnables dont il a besoin. Auparavant, il chargeait de grandes quantités de code inutile, ce qui gonflait le temps de chargement et réduisait les performances. GitHub-32810

Réécritures d’URL

  • Les réécritures d’URL de produit pour un site web spécifique dans un déploiement multisite sont désormais générées comme prévu une fois que les produits ont été affectés à un site web par une mise à jour en bloc.
  • L’application génère désormais correctement le chemin d’URL pour les catégories enfants lorsque la case Utiliser la valeur par défaut de la clé d’URL est activée pour la catégorie parent. Auparavant, le déplacement d’une catégorie dans la hiérarchie entraînait une valeur de url_path incorrecte lors de l’utilisation de différentes clés d’URL dans un déploiement d’affichage multi-magasin. GitHub-16202
  • L’application met désormais à jour la url_path de la catégorie affectée à l’ensemble de la portée du magasin lorsque vous déplacez une catégorie dans la hiérarchie de catégories. Auparavant, le déplacement d’une catégorie dans la hiérarchie entraînait une url_path incorrecte.
  • Les redirections d’URL créées à partir de l’administration à l’aide d’une URL personnalisée fonctionnent désormais correctement. Auparavant, GraphQL mettait en cache la réponse d’une requête de urlResolver GraphQL et renvoyait l’ancienne valeur après la mise à jour de la réécriture de l’URL.
  • Les réécritures d’URL de produit sont désormais supprimées comme prévu lorsqu’un produit est supprimé d’un site web. GitHub-24184
  • Ajout d'une référence main_table à la store_id dans la fonction addStoreFilter de la collection app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php. Auparavant, les problèmes survenaient chaque fois qu’un join était ajouté à la collection sur un tableau qui contient également une colonne store_id. GitHub-31853
  • Le point d’entrée REST PUT /V1/products/:sku génère désormais à nouveau les réécritures d’URL de produit comme prévu. Auparavant, le point d’entrée regénérait les valeurs de url_key de produit, mais pas les réécritures d’URL. GitHub-30316

Utilisateur

  • Vous pouvez désormais enregistrer un nouveau rôle d’utilisateur effectif (Admin System > Permissions > User Roles) avec l’arborescence de Catalog entière sélectionnée, à l’exclusion de Edit Product Design ( Catalog > Inventory > Products > Edit Product Design). Auparavant, l’application n’enregistrait pas les modifications de produit effectuées par un utilisateur ayant ce rôle et affichait cette erreur : Not allowed to edit the product's design attributes. GitHub-31973
  • L’application utilise désormais le modèle d’e-mail personnalisé correct lors de la génération d’e-mails pour les nouveaux administrateurs. Auparavant, l’application utilisait l’ancien modèle par défaut, qui omettait les nom et prénom de l’administrateur.
  • L’application utilise désormais le modèle d’e-mail correct lors de l’envoi d’e-mails aux nouveaux utilisateurs. Auparavant, l’application utilisait le modèle par défaut même lorsqu’un modèle personnalisé était sélectionné.

VersionCMS

  • L’application applique désormais le thème correct à une page CMS après avoir modifié sa disposition. Auparavant, l’application modifiait le thème affecté à Luma après l’enregistrement des modifications de disposition, quel que soit le thème affecté à la page.
  • Les administrateurs disposant de rôles restreints peuvent désormais ajouter, mettre à jour ou dupliquer les pages auxquelles ils ont accès et qui sont affectées à un nœud de hiérarchie. Auparavant, l’application générait une erreur fatale dans ces conditions.

Vidéo

  • Les vidéos sont désormais disponibles dans la galerie de produits comme prévu lorsque le regroupement JavaScript avancé est activé et utilisé. GitHub-32501
  • Les vidéos YouTube pour les produits simples qui appartiennent à un produit configurable fonctionnent désormais comme prévu. Auparavant, les images étaient classées par identifiant plutôt que par position. Par conséquent, certaines vidéos ont été traitées comme des images. GitHub-29690

Marchandiseur visuel

  • Les performances du chargement des pages de catégories d’administration avec Visual Merchandiser ont été améliorées. Le chargement des pages de catégorie Admin ne génère plus de requêtes de base de données volumineuses.

Framework d’API web

  • L’API Catalog met désormais correctement à jour les valeurs d’option personnalisées d’un produit en ajoutant de nouvelles valeurs et en supprimant les anciennes. Auparavant, l’API ne supprimait pas les anciennes valeurs.
  • La /V1/guest-carts/:cartId/billing-address POST renvoie désormais l’ID d’adresse sous la forme d’un entier, et non d’une chaîne.

Restriction de site web

  • Les acheteurs sont maintenant redirigés vers la page à laquelle ils tentaient d’accéder avant qu’on ne leur demande de se connecter. Auparavant, dans les déploiements où les restrictions de site web étaient activées et le mode de restriction défini sur Ventes privées : connexion uniquement, les acheteurs étaient redirigés vers la page d’accueil du magasin.

Widget

  • Un administrateur peut désormais supprimer toutes les mises à jour de disposition d’un widget. Auparavant, lorsqu’un widget disposait de plusieurs mises à jour de disposition, un administrateur ne pouvait supprimer que la première.
  • Cliquer sur le bouton Ajouter au panier sur le widget de produit n’entraîne plus le rechargement de la page. Auparavant, le fait de cliquer sur le bouton Ajouter au panier sur un widget de produit rechargeait une page active avant l’ajout du produit au panier.
  • Le widget de lien du nœud de hiérarchie CMS dans TinyMCE effectue désormais le rendu des liens de hiérarchie comme prévu lorsque le champ Ancrer le texte personnalisé est vide.

Liste de souhaits

  • L’application ne réinitialise plus les paramètres de configuration d’un produit configurable lorsque vous cliquez sur le bouton Modifier l’élément pour le produit d’une liste de souhaits. GitHub-32119
  • L’application affiche désormais le prix correct du produit lorsque vous mettez à jour un produit avec une option de fichier personnalisable dans la liste de souhaits. Auparavant, l’application affichait le mauvais prix de produit et n’affichait pas de lien vers le fichier chargé.
  • Le nombre total de produits d’une liste de souhaits pour un client avec plusieurs listes de souhaits correspond désormais au nombre d’éléments de la liste de souhaits. Auparavant, les produits en rupture de stock étaient inclus dans le nombre total de produits.
  • L’application supprime désormais un produit d’une liste de souhaits après l’avoir ajouté à une commande. GitHub-30260
  • Les acheteurs peuvent désormais ajouter des produits associés à leur panier à partir d’une liste de souhaits. Auparavant, l’application ajoutait uniquement le produit configurable, et non le produit configurable et ses produits associés lorsqu’un acheteur cliquait sur le lien Tout sélectionner de la section Produits associés. GitHub-32274

Problèmes connus

Problème : erreur JavaScript lorsque reCAPTCHA est désactivé. Si reCAPTCHA est désactivé pour l’extraction, l’extraction se poursuit, mais l’application affiche une erreur Uncaught TypeError dans le journal de la console. Ce problème sera corrigé dans une version ultérieure.

Problème : Erreur de politique de sécurité du contenu. Le storefront affiche l’erreur suivante dans le journal de la console : The Content-Security-Policy directive frame-ancestors does not support the source expression unsafe-inline. Les performances du storefront ne sont pas affectées.

Problème : Anomalies de l’affichage des montants des cartes-cadeaux avec le crédit PayPal. Lorsque le crédit PayPal est activé et que plusieurs montants de carte cadeau sont configurés, si un acheteur modifie le montant de la valeur d'une carte cadeau, le storefront ne met pas à jour le montant des paiements échelonnés. Un correctif sera inclus dans Adobe Commerce 2.4.4 et Magento Open Source 2.4.4.

Problème : Le bouton Ajouter à la commande ​ne fonctionne pas pour les produits ajoutés au panier par SKU. l’application affiche ce message d’erreur lorsque vous cliquez sur le bouton Ajouter à la commande après avoir ajouté des produits à la commande par SKU : An error has happened during application run. Les produits ne sont pas ajoutés au panier. Solution : utilisez la fonction Ajouter des produits .

Problème : les requêtes category et categoryList de GraphQL ignorent les autorisations de catégorie qui déterminent si les catégories d’un catalogue partagé sont masquées ou exposées. Le storefront affiche actuellement toutes les catégories qui ont été affectées ou non affectées au catalogue partagé. Cela affecte les déploiements d’Adobe Commerce 2.4.3 qui implémentent un storefront PWA pour lequel les catalogues partagés B2B ont été activés.

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, la demande d’extraction externe et le numéro de problème GitHub qui lui est associé (le cas échéant).

Partenaire
Demandes d’extraction
Problèmes GitHub associés
Atwix
magento/magento2#31228, magento/magento2#31025, magento/magento2#30996, magento/magento2#31128, magento/magento2#31053, magento/magento2#30837, magento/magento2#31433, magento/magento2#31079, magento/magento2#31013, magento/magento2#31261 magento/magento2#31016, magento/magento2#30986, magento/magento2#31241, magento/magento2#31243, magento/magento2#31221, magento/magento2#31123, magento/magento2#31147, magento/magento2#31097, magento/magento2#31287 magento/magento2#31099, magento/magento2#31420, magento/magento2#31320, magento/magento2#30776, magento/magento2#31564, magento/magento2#31827, magento/magento2#31592, magento/magento2#31634 magento/magento2#31436, magento/magento2#31371, magento/magento2#31323, magento/magento2#31057, magento/magento2#31009, magento/magento2#31595, magento/magento2#31452, magento/magento2#31458, magento/magento2#31487 magento/magento2#31418, magento/partners-magento2ee#28031240, magento/magento2#31603, magento/magento2#31601, magento/magento2#31394, magento/magento2#31247, magento/magento2#31508, magento/magento2#31449, magento/magento2#31776 magento/magento2#31788, magento/magento2#29047, magento/magento2#, magento/magento2#32071, magento/magento2#31936, magento/magento2#31924, magento/magento2#31918, magento/magento2#31859 magento/magento2#31864, magento/magento2#31604, magento/magento2#31510, magento/magento2#31512, magento/magento2#31502, magento/magento2#31488, magento/magento2#31454, magento/magento2#31507, magento/magento2#31164 magento/magento2#31568, magento/magento2#31569, magento/magento2#31851, magento/magento2#32078, magento/magento2#31953, magento/magento2#31961, magento/magento2#30850, magento/partners-magento2ee#53931395, magento/partners-magento2ee#54031390 31451 32467 32477 32524 32517 32463 32498 32288 32353 32539 32465 32295 32759 31938 32356 30623 🔗 🔗
magento/magento2#31233, magento/magento2#31031, magento/magento2#31056, magento/magento2#31130, magento/magento2#31074, magento/magento2#30858, magento/magento2#31438, magento/magento2#31160, magento/magento2#31034, magento/magento2#31168 magento/magento2#31033, magento/magento2#31039, magento/magento2#31250, magento/magento2#31249, magento/magento2#31234, magento/magento2#31129, magento/magento2#31153, magento/magento2#31132, magento/magento2#31290 magento/magento2#31131, magento/magento2#31440, magento/magento2#31327, magento/magento2#30784, magento/magento2#31575, magento/magento2#31844, magento/magento2#31628, magento/magento2#31647 magento/magento2#31437, magento/magento2#31442, magento/magento2#31325, magento/magento2#31073, magento/magento2#31036, magento/magento2#31627, magento/magento2#31632, magento/magento2#31522, magento/magento2#31521 magento/partners-magento2ee#31441, magento/partners-magento2ee#31251, magento/partners-magento2ee#31624, magento/partners-magento2ee#31626, magento/magento2#31403, magento/magento2#31248, magento/magento2#31516, magento/magento2#31524, magento/magento2#31801 magento/magento2#28522, magento/magento2#28586, magento/magento2#31435, magento/magento2#31560, magento/magento2#31561, magento/magento2#32072, magento/magento2#31937, magento/magento2#31902, magento/magento2#31860 magento/magento2#31865, magento/magento2#31623, magento/magento2#31515, magento/magento2#31514, magento/magento2#31519, magento/magento2#31520, magento/magento2#31517, magento/magento2#31075 magento/magento2#31574, magento/magento2#31573, magento/magento2#31852, magento/magento2#32079, magento/magento2#31954, magento/magento2#31962, magento/magento2#30855, magento/magento2#30645, magento/partners-magento2ee#31523, magento/partners-magento2ee#32505 32504 32583 32518 32507 32569 32502 32379 32279 32568 32506 32377 🔗 32577 29631 30210 32574 32928
Acorn iCi bleu
magento/magento2#31022, magento/magento2#28926, magento/magento2#30992, magento/magento2#30881, magento/magento2#30938, magento/magento2#31621
magento/magento2#30265, magento/magento2#29528, magento/magento2#30286, magento/magento2#30880, magento/magento2#29690, magento/magento2#27678
Cedcommerce
magento/magento2#30410, magento/partners-magento2ee#444, magento/magento2#31736, magento/magento2#31584, magento/partners-magento2ee#449
magento/magento2#30424, magento/partners-magento2ee#31111, magento/magento2#31660, magento/partners-magento2ee#31331
TechnoLabs irlandais
magento/magento2#31142, magento/magento2#29991, magento/magento2#31208, magento/magento2#29804
magento/magento2#30911, magento/magento2#29936, magento/magento2#31188, magento/magento2#29365, magento/magento2#29805
EY
magento/magento2#31369, magento/magento2#30615, magento/magento2#31490, magento/partners-magento2ee#445
magento/magento2#4451, magento/magento2#29302, magento/partners-magento2ee#31196
TechDivision
magento/magento2#30943
magento/magento2#30936
AYKO
magento/magento2#32389
magento/magento2#32088
Chat Blanc Rapide
magento/magento2#31157, magento/magento2#31886
magento/magento2#30724, magento/magento2#30471
Oeil De Poisson
magento/magento2#30695
magento/magento2#30788
Vaimo
magento/magento2#30626
magento/magento2#30622
Ziffity
magento/partners-magento2ee#451, magento/magento2#31482
magento/magento2#31557
COMMERCE MRM
magento/magento2#32612, magento/magento2#32610
magento/magento2#32578, magento/magento2#32658
Conseils sur Aligent
magento/magento2#30910
magento/magento2#30909

Contributions des contributeurs individuels

Le tableau suivant identifie les contributions des membres de notre communauté. Ce tableau répertorie les demandes d’extraction externes, le numéro de problème GitHub qui lui est associé (le cas échéant) et le membre de la communauté qui a contribué à la demande d’extraction.

Membre contributeur de la communauté
Demandes d’extraction
Problèmes GitHub associés
dhaecker
#31045
sagar1dahiwala
#31101
501
zaximus84
#31022
30265
ihor-sviziev
#31151
31152
AnnaAPak
#31079
31160
AnnaAPak
#31013
31034
aligent-lturner
#30910
30909
thomas-kl1
#30822
30830
gwharton
#30868
28511
sky-hub
#30953
30952
pawel-siejba
#30626
30622
Chandresh22
#30477
30270
matiashidalgo
#28926
29528
shawnabramson
#27845
26909
engcom-Golf
#31189
31090
engcom-Echo
#31066
31095
vovayatsyuk
#31275
31291
sergiy-v
#31228
31233
korovitskyi
#31261
31168
zaximus84
#30881
30880
sergiy-v
#30996
31056
AnnaAPak
#31016
31033
AnnaAPak
#30986
31039
sergiy-v
#31025
31031
zaximus84
#30992
30286
ilnytskyi
#31098
31135
saphaljha
#31142
30911
saphaljha
#29991
29936
AnnaAPak
#31147
31153
sergiy-v
#31128
31130
DmitryFurs
#31165
31239
AnnaAPak
#31221
31234
AnnaAPak
#31241
31250
AnnaAPak
#31243
31249
AnnaAPak
#31123
31129
Usik2203
#30837
30858
AnnaAPak
#31097
31132
Usik2203
#31053
31074
vpsnak
#31021
31032
mrtuvn
#30634
30584
driskell
#28007
8933, 18409, 22438, 23054, 25634, 26507, 26809
AnnaAPak
#31287
31290
AnnaAPak
#31099
31131
GovindaSharma
#30410
30424
kate-kyzyma
#31433
31438
AnnaAPak
#31420
31440
DmitryFurs
#31166
31171
Bartlomiejsz
#31157
30724
elisei
#31212
31211
nikolalardev
#30959
31040
kandy
#30990
31038
viniciusbordinhao-blueacorn
#30938
29690
engcom-Golf
#31368
30964
SmVladyslav
#31352
30284
SmVladyslav
#31422
30256
mrtuvn
#31330
31445
sergiy-v
#31320
31327
AnnaAPak
#31436
31437
AnnaAPak
#31371
31442
aleksinoleg
#31334
31471
vovayatsyuk
#31162
31170
srenon
#31198
31197
AnnaAPak
#31323
31325
AnnaAPak
#31057
31073
Usik2203
#30776
30784
Nazar65
#31308
31288
AnnaAPak
#31009
31036
engcom-Golf
#31563
30250
engcom-Golf
#31594
23843
AnnaAPak
#31452
31632
sergiy-v
#31564
31575
AnnaAPak
#31595
31627
ihor-sviziev
#31542
engcom-Kilo
#31629
31591
engcom-Echo
#31501
26214
engcom-Echo
#31553
22662
AnnaAPak
#31240
31251
chiranjeevi-cj
#31369
AnnaAPak
#31418
31441
AnnaAPak
#31458
31522
AnnaAPak
#31487
31521
AnnaAPak
#31601
31626
AnnaAPak
#31603
31624
AnnaAPak
#31394
31403
vovayatsyuk
#31321
31326
AnnaAPak
#31247
31248
saphaljha
#31208
31188
aapokiiso
#30950
31042
nikunjkotecha
#21857
21853
engcom-Kilo
#31646
11995
mrtuvn
#31793
7231 🔗
navarr
#31621
27678
kate-kyzyma
#31827
31844
sergiy-v
#31592
31628
sergiy-v
#31634
31647
mrtuvn
#31754
30506
AnnaAPak
#31508
31516
AnnaAPak
#31449
31524
nikolalardev
#31158
31169
AnnaAPak
#31488
31520
AnnaAPak
#31454
AnnaAPak
#31510
31515
AnnaAPak
#31502
31519
AnnaAPak
#31512
31514
engcom-Charlie
#31485
25907
AnnaAPak
#31604
31623
MellenIO
#31636
31641
AnnaAPak
#31507
31517
sergiy-v
#31788
31801
sergiy-v
#31776
mrtuvn
#30871
30882
QuaiW
#31299
31300
larsroettig
#30943
30936
edspc
#30883
31530
ravi-chandra3197
#29804
29365, 29805
dineshvb
#30615
29302
victorpetryk
#31892
31890
engcom-Echo
#31957
31891
shikhamis11
#31736
31660
SmVladyslav
#32120
32119
victorpetryk
#32107
32106
sergiy-v
#31859
31860
sergiy-v
#31864
31865
engcom-Charlie
#31875
26521
achatpc
#31815
31853
sergiy-v
#31936
31937
sergiy-v
#31924
31902
kate-kyzyma
#31918
engcom-Charlie
#32095
28996
sergiy-v
#32071
32072
AnnaAPak
#31569
31573
AnnaAPak
#31568
31574
maksymz
#31804
11175, 31873
engcom-Hotel
#31750
30802
dorupétrique
#31205
31216
rain2o
#27315
12584
engcom-Kilo
#32217
27285
engcom-Kilo
#32239
31950
mastiuhin-olexandr
#32002
32000
engcom-Charlie
#32009
30316
sergiy-v
#32078
32079
engcom-Charlie
#32082
23297
Den4ik
#32187
31608
ihor-sviziev
#32299
32313
fnogatz
#32249
32262
Bartlomiejsz
#31886
30471
sergiy-v
#31953
31954
ihor-sviziev
#31933
31948
sergiy-v
#31851
31852
AnnaAPak
#31451
31523
AnnaAPak
#31390
30645
AnnaAPak
#31395
engcom-Charlie
#31645
30492
AnnaAPak
#30850
30855
ajithkumar-maragathavel
#31482
31557
edenduong
#30329
30328
SmVladyslav
#32275
32274
engcom-Kilo
#32301
32232
engcom-Kilo
#32326
31849
engcom-Kilo
#32363
30149
ihor-sviziev
#32462
26377, 32440
gixid192
#32393
30257
gixid192
#32398
31633
engcom-Charlie
#32212
30756
engcom-Charlie
#32186
32116
sergiy-v
#31961
31962
engcom-Charlie
#32273
17727
mamsincl
#32389
32088
bogutskyy
#30755
30577
AntonEvers
#28973
29549
zakdma
#32580
27656
engcom-Kilo
#32650
31956
mastiuhin-olexandr
#32194
32102
quisse
#27012
22273
sivaschenko
#32710
32709
hostep
#32639
32644
engcom-Foxtrot
#32646
32647
engcom-Charlie
#32254
19345
Éternuement crânien
#32298
32671
kate-kyzyma
#32288
32379
en session
#32400
32495
mrtuvn
#32434
32454
ihor-sviziev
#32532
27411, 32525
kate-kyzyma
#32498
32502
kate-kyzyma
#32463
32507, 32569
sergiy-v
#32517
32518
kate-kyzyma
#32524
32583
kate-kyzyma
#32477
32504
kate-kyzyma
#32467
32505
charles-tychons
#32448
32616
bgorski
#32612
32578
bgorski
#32610
32658
ProkopovVitaliy
#31938
32577 4451 🔗
mrtuvn
#31080
31140
fredden
#30695
30788
thomas-kl1
#30823
30860
engcom-Kilo
#32730
23645
kate-kyzyma
#32465
32506
ihor-sviziev
#32499
32501
kate-kyzyma
#32539
32568
Usik2203
#32353
32279
vlmed
#32356
martasiewierska
#32802
32810
DmitryTsymbal
#32759
hostep
#32145
32786
engcom-Foxtrot
#32099
32100
erfanimani
#31985
31984
kate-kyzyma
#32295
32377
vidyli
#31296
24635
engcom-Kilo
#32755
24363
ihor-sviziev
#32614
31777 826 🔗
rogyar
#30623
29631, 30210

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 Adobe Commerce 2.4.3 à l’aide du compositeur.

Kits d’outils de migration

L’outil de migration de données permet de transférer les données de stockage Magento 1.x vers Magento 2.x. Cette interface de ligne de commande comprend des fonctions de vérification, de suivi de la progression, de journalisation et de test. Pour obtenir des instructions d’installation, voir Installation de l’outil de migration des données. Envisagez d’explorer le référentiel de migration de données ou d’y contribuer.

Le kit de migration du code permet de transférer les extensions et personnalisations de magasin Magento 1.x existantes vers Magento 2.x. L’interface de ligne de commande comprend des scripts permettant de convertir des modules et des mises en page Magento 1.x.

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