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

Notes de mise à jour de 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 plate-forme. 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 bogues pour ces projets sont documentés dans les informations de version distinctes spécifiques au projet qui sont disponibles dans la documentation de chaque projet.

Appliquez MC-43048__set_rate_limits__2.4.3.patch pour résoudre le problème lié à la limitation du débit API.

Ce correctif fournit une solution au problème où les API Web ne peuvent pas traiter les demandes qui contiennent plus de 20 éléments dans un tableau.Ce problème affecte les déploiements exécutant Magento Open Source versions 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), et le maximum par défaut a été défini sur 20. Ce correctif rétablit la limite par défaut à une valeur supérieure. Si vous pensez que votre magasin subit une attaque DoS, Adobe vous recommande d’abaisser les limites d’entrée par défaut à une valeur inférieure afin de limiter le nombre de ressources pouvant être demandées. Voir l’API Web impossible de traiter les demandes avec plus de 20 éléments dans l’article de la base de connaissances de la matrice .

Appliquez AC-384__Fix_Incompatible_PHP_Method__2.4.3_ce.patch pour résoudre l’erreur irrécupérable de 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 str_contains fonction, 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. Voir l’article de la base Adobe de connaissances PHP Upgrade 2.4.3, 2.3.7-p1 PHP Fatal error Hotfix .

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

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

Faits saillants

Look pour les éléments suivants de 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 Adobe Bulletin de sécurité pour une discussion sur ces problèmes résolus.

Autres améliorations de la sécurité

Les améliorations apportées à la sécurité dans cette version améliorent la conformité aux dernières meilleures pratiques de sécurité, notamment :

  • Un nouveau plug-in Composer permet d’éviter toute confusion de dépendance et identifie les packages malveillants portant les mêmes noms que les packages internes sur le référentiel de packages public. Voir le billet de blog sur les versions Adobe Nouveau compositeur 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 (le maximum par défaut est défini sur 20 et peut être configuré à 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 d’apprentissage automatique pour effectuer une analyse approfondie des données agrégées des visiteurs. Voir Notes de mise à jour de Live Search.

GrapheQL

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

La portée de l’outil🔗 de compatibilité de mise à niveau a été élargie en fonction des commentaires de la communauté. Rejoignez notre #upgrade-compatibilité-outil Slack pour obtenir l’assistance de l’équipe produit Adobe et de la communauté, ainsi que pour aider à orienter l’orientation future de l’outil.

Mises à jour des services gérés dans le cloud

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 Adobe Stock

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

Extensions développées par les fournisseurs

Consultez les rubriques suivantes pour connaître 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 bin/magento setup:db:status commande renvoie maintenant 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 pendant le 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 AsyncCssPlugin désormais avant le JsFooterPlugin. GitHub-30882
  • Magento\Config\Model\Config\PathValidator vérifie maintenant le chemin d’affichage pour déterminer si un élément existe et, s’il a un chemin de configuration, utilise le chemin à la place pour la config.xml validation. GitHub-27678
  • La compilation de fichiers Less avec Grunt ou par compilation côté serveur donne maintenant les mêmes résultats. Auparavant. .abs- styles, qui s’étend à d’autres .abs- styles dans _extends.less, n’étaient pas sortis correctement lorsqu’ils étaient compilés avec Grunt. Cela entraînait des différences entre les déploiements de production et de développement. GitHub-7231

AdminGWS

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

Intégration Adobe Stock

  • L’application affiche désormais un message informatif et un lien vers la page Magasins d’administration > Configuration > système > avancé​ sur la page Search pour Adobe Stock lorsque la clé d’API (ID client) et le 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, l’accès à un seul site Web) ne peuvent plus modifier les catégories définies sur l’étendue 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 pour le consommateur quoteItemCleaner changent maintenant de statut comme complete 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 rejette désormais les modifications apportées au formulaire d’adresse de facturation à l’étape de paiement 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. Ce lien était auparavant manquant. GitHub-31095
  • Le panier Admin affiche désormais les prix des produits dans les devises correctes pour les boutiques 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 de la vitrine, puis à nouveau lorsque la commande était ensuite passée sur l’administrateur.
  • L’application vide désormais le panier comme prévu après qu’un administrateur a terminé une commande de l’administrateur créée par un acheteur sur la vitrine. Auparavant, lorsque le client se reconnectait après que l’administrateur ait terminé la commande, le panier de la vitrine contenait toujours le contenu de la commande. GitHub-30262
  • Les acheteurs peuvent maintenant ajouter à leur panier un produit dont le prix minimum annoncé (PMA) dépasse le prix habituel du produit.
  • 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 \Magento\Catalog\Model\ProductIdLocator classe ne fonctionnait pas correctement avec les références SKU numériques uniquement.
  • L’application ne renvoie plus d’erreur JavaScript une fois que vous avez activé la synchronisation des 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 un attribut n’était pas spécifié, l’application réinitialisait la valeur d’attribut à sa valeur d’étendue par défaut.
  • La grille Produits d’administration (Catalogue d’administration> Produits) affiche désormais le nombre correct de produits lorsque les produits sont filtrés par UGS.
  • L’application affiche désormais l’état précis du stock 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 de clients spécifié. Auparavant, tous les produits étaient affichés comme étant en rupture de stock, quel que soit l’état réel du stock.
  • Le champ de saisie Prix du bloc de prix du groupe de clients Tarification avancée a désormais une largeur minimale de cinq chiffres. Auparavant, seuls deux symboles étaient visibles dans ce champ sur les écrans basse résolution.
  • L’application supprime désormais avec succès l’image multimédia d’un 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 Web lorsque les produits correspondants ont un prix différent sur chaque site Web.
  • Le tri par position sur la GET /rest/V1/products/?searchCriteria[filterGroups] de recherche de produits fonctionne maintenant 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 les espaces doubles dans les champs Nom et SKU de la grille de produits. Auparavant, l’application réduisait plusieurs espaces en un seul.
  • Les produits sont maintenant affichés comme en rupture de stock sur la vitrine lorsque la quantité vendable sur l’administrateur est de 0. Auparavant, ces produits étaient répertoriés comme étant en stock sur la vitrine et l’application affichait un bouton Ajouter au panier actif. GitHub-31117
  • Les administrateurs peuvent désormais ajouter des produits avec des options (File) personnalisables à la grille Articles commandés à partir de la section Panier (colonne Activités du client) de la page Client administrateur. 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 deux options personnalisables (File) ou plus à une commande par UGS.
  • L’application ne renvoie plus d’erreur lorsqu’un administrateur disposant d’autorisations restreintes ajoute un widget de produit à une page CMS dans l’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 de détails du produit s’ouvrent désormais avec l’option de date personnalisable remplie avec la date de la commande précédente lorsque l’utilisation JavaScript calendrier est activée. Le résolveur de valeur d’option de date personnalisée revient désormais à un format alternatif 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 (File) personnalisable à une commande par UGS. GitHub-30285
  • Vous pouvez maintenant enregistrer un produit et un prix sans spécifier type_id. GitHub-13639
  • Les produits de groupe sont désormais disponibles sur la vitrine comme prévu lorsqu’une requête REST PUT /V1/products/:sku/links est utilisée pour associer un nouveau produit enfant à un nouveau produit de groupe. Auparavant, les produits n’étaient pas correctement indexés après l’exécution bin/magento cron:runde la balise .
  • 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 products requête renvoie désormais les valeurs actuelles lorsqu’une règle de prix catalogue s’applique à un article. GitHub-26738
  • Les tables temporaires qui commencent par catalogrule_product__temp sont maintenant supprimées comme prévu lorsque la réindexation échoue après l’expiration, la désactivation ou l’inactivité 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 grandes images sont maintenant redimensionnées comme prévu lors du téléchargement lorsque le paramètre de configuration Activer le redimensionnement frontal est activé.
  • Correction de la gestion des erreurs pour le contrôleur de sauvegarde des pages CMS. Auparavant, lorsqu’un Error objet était généré sur l’événement cms_page_prepare_save , l’application transmettait cet objet à la addExceptionMessage fonction, rompant ainsi son contrat car cette fonction attend un Exceptionobjet . Ce problème a été résolu en ajoutant un message d’erreur à l’aide de la addErrorMessage fonction. GitHub-30149
  • Vous pouvez maintenant affecter une nouvelle page à plusieurs nœuds à partir de l’onglet Hiérarchie de la page Modifier 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 vignettes de produit dans la galerie d’images d’un produit lorsque vous cliquez sur les options configurables d’un produit.
  • La fenêtre contextuelle de configuration que l’application affiche lorsque vous modifiez un produit configurable à partir 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 sur une vue de magasin autre que celle 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

Stratégie de sécurité du contenu CSP)

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

cron

  • Les requêtes de nettoyage Cron ont été refactorisées pour réduire ou éliminer les problèmes de performances suivants : cron tâches restées bloquées dans un état en attente, requêtes MySQL de plus en plus lentes et augmentation de l’utilisation du processeur. GitHub-26507
  • cronjobs qui ont été dans le statut running pendant plus de 24 heures sont maintenant automatiquement changés 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 l’état de la tâche lorsqu’une tâche reste incorrectement définie sur l’état running. Auparavant, si un cronjob était bloqué dans l’état running, l’application empêchait de nouvelles instances de la même tâche de démarrer et vous deviez modifier manuellement l’état de la tâche. GitHub-8933
  • cron Les 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, la table se remplissait de tâches en attente et indexer_update_all_views la cron_schedule tâche cron ne s’exécutait pas. GitHub-23054
  • cron Les blocages ne se produisent plus suite à la tentative de définition d’un cron verrou dans les déploiements volumineux où les groupes se chevauchent. GitHub-8933
  • cron Les blocages ne se produisent plus sur la cron_schedule table après l’exécution de quelques cron tâches seulement. GitHub-22438

Attributs 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 sont désormais affichés pour les clients enregistrés dans leurs paniers lorsque le segment de clientèle 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 une fois qu’une commande est passée par l’administrateur. 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 client sont désormais enregistrées au format à quatre chiffres au lieu de deux chiffres.

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 enregistre maintenant une erreur comme prévu lorsqu’une exception se produit lorsqu’un client tente d’envoyer un e-mail à partir du formulaire Contactez-nous. GitHub-23645

Cadres

  • Les classes parentes dans l’administrateur sont maintenant vérifiées pour l’annotation docblock avec la classe d’origine et les interfaces héritées. Auparavant, comme les classes parentes n’étaient pas cochées, l’exécution d’actions liées au client dans l’administrateur qui déclenchaient un événement entraînait une erreur. L’application a enregistré 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 la page Redis est activée.
  • L’application honore désormais le paramètre Exclure le dossier multimédia 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 maintenant toutes les chaînes traduisibles comme prévu pour la page du panier d’administration. Auparavant, le chargement de traduction arrivait trop tard et ignorait tous les observateurs abonnés à l’action du contrôleur avant l’expédition. GitHub-31849
  • La validation de formulaire sur la page Créer un nouveau compte client fonctionne désormais correctement lorsque le paramètre Se connecter en tant que client activer l’extension est désactivé. Auparavant, l’application générait une erreur JavaScript.
  • L’utilisation bin/magento setup:db-schema:split-sales pour déplacer des tables de base de données fonctionne maintenant 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 marchands peuvent désormais attribuer ou supprimer une image vers et à partir d’un événement de catalogue par magasin. Auparavant, lorsque vous modifiiez l’affichage 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 communication.xml fichier 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 des étoiles de révision uniquement à la première révision et laissait les autres critiques sur la page sans étoile.
  • Les liens de compte dans les en-têtes respectent désormais les normes WCAG. Auparavant, les liens de compte dans les en-têtes contenaient des ID dupliqués, ce qui entraînait l’échec de la validation WCAG.
  • L’application enregistre désormais les dates d’événements du catalogue dans les fuseaux horaires UTC. Auparavant, l’événement de catalogue applicationsaved datait dans le fuseau horaire de l’utilisateur.
  • L’application ne renvoie plus les 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 restituer 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 maintenant copiées comme prévu du répertoire vers le répertoire lorsque les catalog/category catégories sont enregistrées à l’aide de la méthode de stockage de base de catalog/tmp/category données. La ligne d’image media_storage_file_storage du tableau présente désormais également la valeur .directory_id GitHub-11995
  • Les marchands sont désormais informés des caches invalidés comme prévu après avoir soumis des modifications à la hiérarchie CMS. Auparavant, l’application n’invalidait pas les caches lors de l’enregistrement de la hiérarchie CMS.
  • Les demandes de AJAX redondantes dans 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 à nouveau le 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 erreurs dans la file d’attente des messages MysqlMQ lorsque des exceptions se produisent. GitHub-18140
  • L’application référence désormais l’objet de classe correct lors du chargement des informations fiscales pour les pages Note de crédit et Facture Admin. 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 irrécupérable. 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 bogue dans la configuration NGINX par défaut entraînait une récursivité infinie. GitHub-31530
  • Le nom de 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 de cadeaux. Auparavant, si un produit était désactivé après avoir été ajouté à un registre de 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 en magasin fonctionne maintenant 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 la vitrine lorsqu’Google Analytics est activée. Une entrée CSP pour a été ajoutée pour connect-src permettre aux demandes de AJAX de 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 processus de paiement utilise désormais correctement l’adresse de devis lorsque Google Tag Manager est activé. Auparavant, une erreur JavaScript se produisait sur la page de paiement.

GrapheQL

  • 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 vignette du produit parent.
  • La products requête 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 customer réponse à la requête inclut désormais l’attribut total_giftcard dans l’objet OrderTotal .
  • Correction d’un problème en raison duquel la requête renvoyait des informations erronées sur les niveaux de prix sur les articles pour lesquels le products niveau de prix n’est pas 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 déployés pour le définir sur 1 (un).

Importer/exporter

  • Le filtre Identifiants de catégorie pour les entités de produits dans la grille Attributs d’entité de la page Exportation fonctionne maintenant comme prévu.
  • L’état des stocks de produits groupés est désormais mis à jour, comme prévu, en 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 avec succès les name rapports d’un produit groupé à partir de l’administrateur bundle_values . Auparavant, l’application affichait le produit comme étant en rupture de stock sur la vitrine après que vous ayez modifié le nom de l’administrateur. Les produits ont également été fusionnés avec le même SKU dans une seule section d’options groupées.
  • L’application prend désormais en compte le périmètre utilisateur lors de l’exportation des données client. Auparavant, lorsque vous essayiez 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 les ventes incitatives, les ventes croisées et les produits associés lors de l’importation du fichier CSV, comme prévu lorsque __EMPTY__VALUE__ cela est spécifié 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 par planification plutôt que l’indexeur désigné. GitHub-21853
  • L’application n’envoie plus AJAX demandes de rechargement des sections de données client (Magento_Customer/js/section-config) qui ne sont pas affectées par la demande. GitHub-31948
  • Les indexeurs suivants ne sont plus invalidés une fois que vous avez ajouté, supprimé ou réorganisé des produits dans une catégorie : catalog_category_product et catalogsearch_fulltext (et leurs dépendances). Auparavant, ces suppressions accidentelles déclenchaient la réindexation complète des sites. Un réindexation complète est désormais empêché 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é 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 dispositions de pages ne sont plus codées en dur dans Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser\Container. Par conséquent, la getPageLayouts() fonction retourne maintenant la liste réelle des mises en page déclarées par les différents modules comme prévu. Auparavant, elle ne renvoyait que les mises en page 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 pour améliorer le fotorama.js score des mesures phare. 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 Magento\Framework\Filesystem\Io\Ftp::ls() sur un dossier vide renvoie maintenant 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 update méthode pour le rôle et les règles a été marquée comme obsolète dans app/code/Magento/Authorization/Model/Role.php. GitHub-30756
  • La concaténation pour les paramètres de cookie SameSite a été corrigée. Auparavant, une concaténation incorrecte ajoutait le lex suffixe à value, domainet à d’autres paramètres. GitHub-26377, GitHub-32440
  • allure-framework/allure-phpunita é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 des erreurs plus informatives lorsque des erreurs se produisent lors de l’exécution bin/magento des commandes en mode production. Auparavant, l’application n’affichait aucun message d’erreur ou affichait des messages dépourvus d’informations. GitHub-32786
  • L’objet ArrayIterator PHP 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 compléter une commande alors qu’aucun transporteur n’est disponible. À la place, il affiche la page de passage en caisse et le message suivant : Sorry, no quotes are available for this order at this time. Auparavant, l’application affichait une page de paiement vide et enregistrait ce message dans le journal des exceptions : array_keys() expects parameter 1 to be array, null given. GitHub-30830
  • L’application n’enregistre plus chaque cookie comme un contexte distinct. Le $_COOKIE tableau 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 comme prévu lors du traitement d’images PNG dépourvues d’informations XMP.
  • Les entrées du tableau sont supprimées comme prévu lorsque les catalog_product_entity_media_gallery produits associés sont supprimés. GitHub-17727
  • Les détails de l’image peuvent désormais être mis à jour dans la galerie multimédia lorsque la minification 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 conseils de l’optimiseur de requêtes imposent désormais l’utilisation de l’index lors de l’exécution de la requête.
  • Les performances du processus lors de l’exécution catalog_product_alert cron sur des tables volumineuses (plusieurs millions de lignes) ont été améliorées. Auparavant, toutes catalog_product_alert les alertes de produit étaient chargées, ce qui entraînait une exception de mémoire insuffisante.
  • L’application ne charge plus toutes les pages CMS lorsqu’elle n’a besoin que d’une seule page d’édition pour rendre 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

Citer

  • L’appel /V1/guest-carts/examplecartid/items renvoie maintenant l’affichage de magasin demandé. Auparavant, elle 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 de 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 sélectionné Fermeture dans le menu déroulant Actions.
  • L’application envoie maintenant une notification par e-mail aux clients comme prévu après que vous ayez modifié l’état 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 dirigeait vers la page Admin Tous les clients, et en cliquant sur le bouton Réinitialiser le filtre redirigeait également vers cette page. GitHub-436

Critiques

  • 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 qui a été passée totalement ou partiellement en utilisant des points de récompense après que le client qui a passé la commande a été retiré du système.
  • Les marchands peuvent désormais supprimer les points de récompense des règles de prix des paniers. Auparavant, lorsqu’un marchand essayait de définir les points de récompense sur 0 lors de la création d’une règle de prix de panier, la valeur précédente de la quantité de points de récompense persistait.
  • 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 la vitrine et n’étaient pas liés au site Web concerné dans l’administration.
  • 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, la commande avait le prix correct, mais pas 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 00h00 UTC lorsque vous filtiez les commandes par date de commande.
  • La grille de note de crédit affiche désormais le symbole de devise correct lorsque l’étendue du site Web est utilisée pour un attribut Price dans un déploiement multi-magasins.
  • Les boutons radio des modes de paiement ne disparaissent plus dans la section Informations sur le paiement et l’expédition du processus de paiement après le rechargement de la page Admin Créer une nouvelle commande. GitHub-32106
  • Le texte arabe s’affiche désormais correctement sur les factures.
  • L’application calcule désormais correctement les totaux d’impôt partiels des mémos de crédit pour les mémos de crédit 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 avec plusieurs factures, l’application appliquait la totalité de la taxe de cette commande pour l’annulation partielle de la facture dans la note de crédit.
  • L’application ne crée plus de blocages de base de données aléatoires lors de l’envoi d’e-mails de nouvelle commande aux clients. Auparavant, les blocages se produisaient car l’application enregistrait l’objet entier et ses objets associés au lieu des colonnes SQL mises à jour. L’application a affiché ce type d’erreur : SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction. GitHub-31090
  • La page de détail de la commande affiche désormais la quantité de produit expédiée correcte. Auparavant, les quantités de produits étaient incorrectes car le modèle de la page Expédition de commande affichait Qté expédié en tant que intfichier . Cela a été remplacé par float.
  • L’application n’envoie plus de copies par courrier électronique d’une facture de commande lorsque le bouton Copie par courrier électronique de la facture n’est pas coché. Auparavant, l’application s’envoyait par courrier électronique au client et envoyait une copie de l’e-mail de facturation à​ . 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 est maintenant désactivée dans l’administrateur 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 des modes et des tarifs d’expédition et sélectionne un mode d’expédition lors de la création d’une commande à partir 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 du paiement d’une commande comportant 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 marchand tente d’expédier une commande à l’aide de DHL lorsque la case à cocher Créer une étiquette d’expédition est activé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 etDisable all countries est activé comme étendue par défaut sur l’autre site Web. Auparavant, l’application n’avait pas passé la 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 ce message : 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 simultanément les règles de catalogue sur tous les sites Web.
  • 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 maintenant 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 se bloquait et l’application n’affichait pas d’alerte.

Taxe

  • L’application prend désormais en compte la taxe cachée lors de la validation du montant minimum de commande.
  • L’application affiche désormais les taxes sur les produits fixes (FPT) comme prévu lorsqu’un acheteur retourne à son panier et passe à la caisse après avoir ajouté des produits groupés au panier. GitHub-30250
  • L’application pré-remplit désormais les champs de saisie du numéro de TVA pour les adresses de facturation et d’expédition de la section Informations d’adresse de la page de nouvelle commande Admin 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 du client lorsqu’elle 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.
  • Supprimé 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 en file d’attente. GitHub-30645
  • Suppression de la commande des tests afin d’améliorer le cache:flush Catalogtemps d’exécution des modules , CatalogUrlRewriteet LoginAsCustomer . GitHub-31056
  • Les paramètres redondants ont été supprimés et POST remplacés 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 vers le bas de la page (Store > Configurations > Advance > Developer > JavaScript Settings) 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 respectent désormais les normes WCAG. Auparavant, les liens de compte dans les en-têtes contenaient des ID dupliqués, ce qui entraînait l’échec de la validation WCAG.
  • L’application donne désormais la priorité à la configuration de magasin pour une image de logo de magasin par rapport à la configuration de la mise en page. Auparavant, la taille des images de logo était fixe et ne variait pas selon le magasin.
  • L’application affiche désormais les éléments de page de manière cohérente sur les pages de vitrine qui utilisent des thèmes Adobe Commerce standard. Auparavant, tous les styles n’étaient pas appliqués dans le thème Blank, de sorte que 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 des produits et que les paramètres régionaux de l’utilisateur administrateur sont en_GB.
  • Les gestes de pincement pour zoomer fonctionnent désormais comme prévu dans la loupe de galerie d’images de la page produit sur les appareils iOS.
  • La pagination des résultats de recherche de la grille de produits Admin commence maintenant à la page un pour chaque recherche, comme prévu.
  • Les anomalies de l’affichage du panier lors d’un 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 était mal aligné. GitHub-333
  • La page de révision des commandes affichée lors du paiement avec PayPal Paiement express se charge désormais correctement. Auparavant, le modèle contenait le bouton de mise à jour de la méthode de livraison inutilisé, qui n’était que partiellement masqué par le script pendant le rendu de la page. GitHub-32006
  • Les étoiles d’évaluation et le texte des avis dans la section Avis des clients de la page du produit sont désormais correctement espacés lorsque de longs noms d’évaluation sont présents. GitHub-31890
  • Les options sont maintenant affichées comme prévu dans la liste déroulante Actions sur les pages Archiver les factures, les expéditions et les mémos de crédit.
  • L’application affiche désormais une valeur temporelle correcte lorsque l’option timeOnly du composant datetime 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 Magento\Customer\Controller\Account\Edit contrôleur appliquait la valeur du titre de la page à Account Information. GitHub-30724
  • Les cases à cocher qui permettent aux marchands de basculer entre l’affichage et le masquage des mots de passe ont été ajoutées aux pages suivantes :

    • Accès client
    • Enregistrement des clients
    • Modification du client (section Modifier le mot de passe)
    • Le client définit le nouveau mot de passe GitHub-31557
  • Suppression d’un en-tête redondant dans les cellules de grille qui s’affichait lorsqu’un administrateur ajoutait un produit à un ensemble de produits groupé après avoir modifié le jeu d’attributs. GitHub-30911
  • L’application affiche maintenant un DateRange filtre dans la zone Connecté de la page Connexion du > client. Auparavant, l’application affichait un Text filtre. GitHub-30328
  • JavaScript a été supprimé des fichiers de modèle et déplacé dans des fichiers distincts pour 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 minification du code HTML avait été activée. L’application a affiché cette erreur : An error has happened during application run. See exception log for details. GitHub-32454
  • Le dropdownDialog widget ne charge plus que les blocs déplaçables et redimensionnables jquery-ui 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’accès URL pour les catégories enfants lorsque la case à cocher Utiliser la valeur par défaut pour la clé URL est activée pour la catégorie parente. Auparavant, le déplacement d’une catégorie dans la hiérarchie entraînait une valeur incorrecte url_path lors de l’utilisation de clés d’URL différentes dans un déploiement d’affichage multi-magasin. GitHub-16202
  • L’application met désormais à jour le url_path de la catégorie affectée à toutes les étendues de 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 erreur url_path.
  • Les redirections d’URL créées à partir de l’administrateur à l’aide d’une URL personnalisée fonctionnent maintenant correctement. Auparavant, GraphQL mettait en cache la réponse d’une requête GraphQL urlResolver et renvoyait l’ancienne valeur après la mise à jour de la réécriture d’URL.
  • Les réécritures d’URL de produit sont maintenant supprimées comme prévu lorsqu’un produit est supprimé d’un site Web. GitHub-24184
  • Ajout d’une main_table référence à la store_id dans la addStoreFilter fonction de la app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php collection. Auparavant, des problèmes se produisaient chaque fois qu’un join était ajouté à la collection sur une table qui contient également une store_id colonne. GitHub-31853
  • Le PUT /V1/products/:sku point de terminaison REST régénère maintenant les réécritures d’URL du produit comme prévu. Auparavant, le point de terminaison régénérait les valeurs du produit url_key , mais pas les réécritures d’URL. GitHub-30316

Utilisateur

  • Vous pouvez désormais enregistrer un nouveau rôle utilisateur effectif (Système d’administration > autorisations > rôles utilisateur) avec l’ensemble de l’arborescence sélectionnée à l’exclusion (Edit Product DesignCatalogue > Inventaire > Produits > Modifier la Catalog conception du produit). Auparavant, l’application n’enregistrait pas les modifications apportées au produit par un utilisateur dans ce rôle et affichait cette erreur : Not allowed to edit the product's design attributes. GitHub-31973
  • L’application utilise maintenant le modèle d’e-mail personnalisé approprié 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 maintenant le modèle de courrier électronique approprié lors de l’envoi de courrier électronique 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.
  • Cliquez sur le bouton Ajouter au panier dans le widget du produit n’entraîne plus le rechargement de la page. Auparavant, le fait de cliquer sur le bouton Ajouter au panier d’un widget de produit entraînait le rechargement d’une page actuelle avant que le produit ne soit ajouté 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 fonctionnalité Ajouter des produits.

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

Contributions communautaires

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
Requêtes de tirage
Problèmes GitHub connexes
Atwix
magento/magento2#31228, magento/magento2#31025, magento/magento2#30996, magento/magento2#31128,} magento/magento2#31053, magento/magento2#30837, magento/magento2#31433, magento/magento2#33 079, magento/magento2#31013, magento/magento2#31261, magento/magento2#31016, 22}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/magento to2#31320, magento/magento2#30776, magento/magento2#31564, 🔗magento/magento2#31827 49}, magento/magento2#31592, magento/magento2#31634, magento/magento2#31436, } /magento2#31371, magento/magento2#31323, magento/magento2#31057, magento/magento2#3100 9, magento/magento2#31595, magento/magento2#31452, magento/magento2#31458, magento/magento2#31487, magento/magento2#31418, magento/magento2#31240, magento/magento2#31 603, magento/magento2#31601, magento/magento2#31394, magento/magento2#31247, 4}magento/magento2#31508, magento/magento2#31449, magento/magento2#31776, magento/magento2 11788, magento/magento2#29047, magento/Partners-magento2ee#280, magento/magento2#32071, 🔗magento/magento2#31936🔗, magento/magento2#31924, magento/magento2#31918, 4}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, ento/magento2#31164, magento/magento2#31568, magento/magento2#31569, to/magento2#31851, magento/magento2#32078, magento/magento2#31953, /magento2#31961, magento/magento2#30850, magento/magento2#31395, magento/magento magento2#31390, magento/magento2#31451, magento/magento2#32467, magento/magento ento2#32477, magento/magento2#32524, magento/magento2#32517, magento/magento to2#32463, magento/magento2#32498, magento/magento2#32288, magento/magento2#32353, magento/magento2#32539, magento/magento2#32465, magento/magento2#32295, magento/magento2#32759, magento/magento2#31938, magento/magento2 32356, magento/magento2#30623, magento/Partners-magento2ee#539, magento/Partners-magento#540 🔗 🔗 🔗
magento/magento2#31233, magento/magento2#31031, magento/magento2#31056, magento/magento2#31130,}, magento/magento2#31074, magento/magento2#30858, magento/magento2#31438, magento/magento2#33 1160, magento/magento2#31034, magento/magento2#31168, magento/magento2#31033, 22}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/magento to2#31327, magento/magento2#30784, magento/magento2#31575, 🔗magento/magento2#31844 49}, magento/magento2#31628, magento/magento2#31647, magento/magento2#31437, /magento2#31442, magento/magento2#31325, magento/magento2#31073, magento/magento2#3103 6, magento/magento2#31627, magento/magento2#31632, magento/magento2#31522, magento/magento2#31521, magento/magento2#31441, magento/magento2#31251, magento/magento2#31 624, magento/magento2#31626, magento/magento2#31403, magento/magento2#31248, 4}magento/magento2#31516, magento/magento2#31524, magento/magento2#31801, magento/magento2 8522, magento/Partners-magento2ee#28586, magento/Partners-magento2ee#31435, magento/Partners-magento2ee#315 60, magento/Partners-magento2ee#31561, magento/magento2#32072, magento/magento2#31937, magento/magento2#31902, magento/magento2#31860, 🔗magento/magento2#31865 109}, magento/magento2#31623, magento/magento2#31515, 🔗magento/magento2#31514{1 115}, magento/magento2#31519, magento/magento2#31520, 🔗magento/magento2#31517🔗 21}, magento/magento2#31075, magento/magento2#31574, 🔗magento/magento2#31573{11 7}, magento/magento2#31852, magento/magento2#32079, 🔗magento/magento2#31954{13 3}, magento/magento2#31962, magento/magento2#30855, magento/magento2#30645, magento/magento2#31523, magento/magento2#32505, magento/magento2#32504 magento/magento2#32583, magento/magento2#32518, magento/magento2#32507, magento/magento2#32569, magento/magento2#32502, magento/magento2#32379}}, 158}magento/magento2#32279, magento/magento2#32568, magento/magento2#32506, 64}magento/magento2#32377, magento/magento2#4451, magento/magento2#32577, {177 0}magento/magento2#29631, magento/magento2#30210, magento/Partners-magento2ee#32574, 76}magento/Partners-magento2ee#32928🔗 🔗
Blue Acorn iCi
magento/magento2#31022, magento/magento2#28926, magento/magento2#30992, magento/magento2#3081, magento/magento2#30938, magento/magento2#31621
magento/magento2#30265, magento/magento2#29528, magento/magento2#30286, 🔗magento/magento2#30807}, magento/magento2#29690, magento/magento2#27678
Cedcommerce
magento/magento2#30410, magento/Partners-magento2ee#444, magento/magento2#31736, magento/magento2#31584}, 8}magento/Partners-magento2ee#449🔗
magento/magento2#30424, magento/Partners-magento2ee#3111, magento/magento2#31660, magento/Partners-magento2ee#3133 1
Krish TechnoLabs
magento/magento2#31142, magento/magento2#2991, 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
Fisheye
magento/magento2#30695
magento/magento2#30788
Vaimo
magento/magento2#30626
magento/magento2#30622
Ziffity
magento/Partners-magento2ee#451, magento/magento2#31482
magento/magento2#31557
MRM COMMERCE
magento/magento2#32612, magento/magento2#32610
magento/magento2#32578, magento/magento2#32658
AEM Consulting
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.

Contribuer aux membres de la communauté
Requêtes de tirage
Problèmes GitHub connexes
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
DmitriFurs
#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, 2}26809
AnnaAPak
#31287
31290
AnnaAPak
#31099
31131
GovindaSharma
#30410
30424
kate-kyzyma
#31433
31438
AnnaAPak
#31420
31440
DmitriFurs
#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
PierW
#31299
31300
larsroettig
#30943
30936
edspc
#30883
31530
ravi-chandra3197
#29804
29365, 29805
dineshvb
#30615
29302
victorétryk
#31892
31890
engcom-Echo
#31957
31891
shikhamis11
#31736
31660
SmVladyslav
#32120
32119
victorétryk
#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
1175, 31873
engcom-Hotel
#31750
30802
dorupetruc
#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
Skullsternze
#32298
32671
kate-kyzyma
#32288
32379
in-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 de Composer.

Kits d’outils de migration

L’outil de migration de données permet de transférer les données de magasin Magento 1.x existantes 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, consultez Installer l’outil de migration de données. Envisagez d’explorer le référentiel🔗 de migration de données ou d’y contribuer.

Code Migration Toolkit permet de transférer les extensions et personnalisations de magasin Magento 1.x existantes vers Magento 2.x. L’interface de ligne de commande inclut des scripts pour convertir Magento modules et mises en page 1.x.

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