Notes de mise à jour de Magento Open Source 2.4.7

Magento Open Source 2.4.7 introduit la prise en charge de PHP 8.3. Elle comprend des centaines de correctifs et d’améliorations de qualité. Les dépendances du compositeur principal et les bibliothèques tierces ont été mises à niveau vers les dernières versions disponibles. Cette version améliore la couverture GraphQL pour les attributs personnalisés et les caches du résolveur GraphQL. Il introduit également la prise en charge des services FedEx et UPS récemment mis à jour.

NOTE
Les versions d’Adobe Commerce peuvent contenir des modifications incompatibles avec l’arrière-plan (BIC). Pour examiner les modifications incompatibles avec l’arrière-plan, voir Référence BIC. Les principaux problèmes incompatibles avec le passé sont décrits dans la section Faits saillants de la BIC. Toutes les versions n’introduisent pas de code BIC majeur.

Autres informations de mise à jour

Bien que le code de ces fonctionnalités soit fourni avec des versions du code principal du Magento Open Source, plusieurs de ces projets sont également publiés indépendamment. Les correctifs de bogues pour ces projets sont documentés dans les informations de mise à jour distinctes et spécifiques au projet disponibles dans la documentation de chaque projet.

Mise en évidence de Magento Open Source 2.4.7

Recherchez les points forts suivants dans cette version.

Amélioration de la sécurité

Cette version comprend les mêmes correctifs de sécurité et améliorations de sécurité de la plateforme qui sont inclus dans Adobe Commerce 2.4.6-p5, 2.4.5-p7 et 2.4.4-p8. Voir Bulletin de sécurité Adobe pour la dernière discussion sur ces problèmes résolus.

Aucune attaque confirmée liée à ces problèmes n'a été survenue à ce jour. Cependant, certaines vulnérabilités peuvent être exploitées pour accéder aux informations sur les clients ou prendre le contrôle des sessions d’administrateur. La plupart de ces problèmes nécessitent qu’un attaquant obtienne d’abord l’accès à l’administrateur. Par conséquent, nous vous rappelons de prendre toutes les mesures nécessaires pour protéger votre administrateur, y compris, mais sans s’y limiter, les actions suivantes :

  • PLACE SUR LA LISTE AUTORISÉE IP
  • authentification à deux facteurs
  • utilisation d'un VPN
  • utilisation d’un emplacement unique plutôt que /admin
  • bonne hygiène des mots de passe

Améliorations supplémentaires de la sécurité

Les améliorations de sécurité de cette version améliorent la conformité aux dernières bonnes pratiques en matière de sécurité.

  • Modifications du comportement des clés de cache non générées:

    • Les clés de cache non générées pour les blocs incluent désormais des préfixes différents des préfixes pour les clés générées automatiquement. (Les clés de cache non générées sont des clés définies par le biais de la syntaxe de directive de modèle ou de la fonction setCacheKey ou setData méthodes.)
    • Les clés de cache non générées pour les blocs ne doivent désormais contenir que des lettres, des chiffres, des tirets (-) et des traits de soulignement (_).
  • Limites du nombre de codes de bon générés automatiquement. Magento Open Source limite désormais le nombre de codes de bons générés automatiquement. La valeur par défaut maximale est de 250 000. Les vendeurs peuvent utiliser la nouvelle Code Quantity Limit option de configuration (Stores > Settings:Configuration > Customers > Promotions) pour éviter toute surcharge potentielle du système avec de nombreux coupons.

  • Optimisation du processus de génération d’URL d’administration par défaut. La génération de l’URL d’administration par défaut a été optimisée pour une répartition aléatoire accrue, ce qui rend les URL générées moins prévisibles.

  • Un nouveau paramètre de configuration du cache de la page entière peut aider à atténuer les risques associés au HTTP {BASE-URL}/page_cache/block/esi point de terminaison . Ce point de terminaison prend en charge les fragments de contenu sans restriction et chargés dynamiquement à partir des poignées de disposition Commerce et des structures de bloc. La nouvelle Handles params size paramètre de configuration définit la valeur de ce point de terminaison. handles qui détermine le nombre maximal autorisé de gestionnaires par API. La valeur par défaut de cette propriété est 100. Les vendeurs peuvent modifier cette valeur à partir de l’option Admin (Stores > Settings:Configuration > System > Full Page Cache > Handles params size). Voir Configuration de l’application Commerce pour l’utilisation du vernis.

  • Ajout de la prise en charge de l’intégrité des sous-ressources (SRI) pour se conformer aux exigences PCI 4.0 de vérification de l’intégrité du script sur les pages de paiement. La prise en charge de l’intégrité des sous-ressources (SRI) fournit des hachages d’intégrité pour toutes les ressources JavaScript résidant dans le système de fichiers local. La fonctionnalité de SRI par défaut est implémentée uniquement sur les pages de paiement pour les zones d’administration et de storefront. Cependant, les marchands peuvent étendre la configuration par défaut à d’autres pages. Voir Intégrité des sous-ressources dans le Guide du développeur PHP de Commerce.

  • Modifications apportées à la stratégie de sécurité du contenu (CSP): mises à jour et améliorations de la configuration des stratégies de sécurité du contenu (CSP) Adobe Commerce pour se conformer aux exigences PCI 4.0. Pour plus d’informations, voir Stratégies de sécurité du contenu dans le Guide du développeur PHP de Commerce.

    • La configuration par défaut de la CSP pour les pages de paiement pour l’administrateur Commerce et les zones de storefront est désormais restrict mode . Pour toutes les autres pages, la configuration par défaut est report-only mode . Dans les versions antérieures à la version 2.4.7, la stratégie de sécurité du contenu a été configurée dans report-only pour toutes les pages.

    • Ajout d’un fournisseur à usage unique pour permettre l’exécution de scripts intégrés dans une CSP. Le fournisseur de valeur à usage unique facilite la génération de chaînes de valeur à usage unique pour chaque requête. Les chaînes sont ensuite jointes à l’en-tête CSP.

    • Ajout d’options pour configurer des URI personnalisés afin de signaler les violations CSP pour la page Créer une commande dans l’Admin et la page Passage en caisse dans le storefront. Vous pouvez ajouter la configuration à partir de l’administrateur ou en ajoutant l’URI au config.xml fichier .

      note note
      NOTE
      Mise à jour de la configuration CSP vers restrict Le mode peut bloquer les scripts intégrés existants sur les pages de paiement dans Admin et storefront, ce qui entraîne l’erreur de navigateur suivante lors du chargement d’une page : Refused to execute inline script because it violates the following Content Security Policy directive: "script-src. Corrigez ces erreurs en mettant à jour la configuration de la liste blanche pour autoriser les scripts requis. Voir Dépannage dans le Guide du développeur PHP de Commerce.
  • Limitation du taux natif pour les informations de paiement transmises par les API REST et GraphQL. Les vendeurs peuvent désormais configurer la limitation de débit pour les informations de paiement transmises par REST et GraphQL. Cette couche de protection supplémentaire prend en charge la prévention des attaques par carte et peut éventuellement réduire le volume des attaques par carte qui testent de nombreux numéros de carte de crédit en même temps. Il s’agit d’une modification du comportement par défaut d’un point de terminaison REST existant. Voir Limite de débit.

  • Le comportement par défaut de la variable isEmailAvailable Requête GraphQL et (V1/customers/isEmailAvailable) Le point de terminaison REST a changé. Par défaut, les API renvoient désormais toujours true. Les vendeurs peuvent activer le comportement d’origine en définissant la variable Activation de la connexion à l’extraction des invités dans l’option Admin to yes, mais cela peut exposer les informations client à des utilisateurs non authentifiés.

Améliorations de la plateforme

Les mises à niveau de plateforme de cette version améliorent la conformité aux dernières bonnes pratiques en matière de sécurité.

Magento Open Source 2.4.7 comprend les mises à niveau suivantes de la plateforme :

  • Compatibilité PHP 8.3. Cette version introduit la prise en charge de PHP 8.3. Magento Open Source prend désormais en charge PHP 8.3 et 8.2. PHP 8.2 sera pris en charge jusqu’à sa date de fin de service (EOS) en décembre 2025. Après décembre 2025, tous les marchands exécutant les déploiements 2.4.7 doivent migrer vers PHP 8.3.

Magento Open Source 2.4.7 est toujours compatible avec PHP 8.1 à des fins de mise à niveau uniquement. PHP 8.1 n’est pas pris en charge et n’est pas recommandé. Le code principal Magento Open Source 2.4.7, toutes les extensions groupées, ainsi que toutes les extensions détenues par l’Adobe et tous les services SaaS sont compatibles avec PHP 8.3.

  • Prise en charge de RabbitMQ 3.13. Cette version est compatible avec la dernière version de RabbitMQ 3.13. La compatibilité reste avec RabbitMQ 3.11 et 3.12, qui est pris en charge jusqu’en août 2024 et en décembre 2024 respectivement, mais l’Adobe est recommandé en utilisant Magento Open Source 2.4.7 uniquement avec RabbitMQ 3.13.

  • Compositeur 2.7.x. La compatibilité avec le compositeur 2.2.x demeure.

  • Prise en charge du cache 7.4 de vernis. Cette version est compatible avec la dernière version de Varnish Cache 7.4. La compatibilité reste avec les versions 6.0.x et 7.2.x, mais nous vous recommandons d’utiliser Magento Open Source 2.4.7 uniquement avec la version 7.4 ou la version 6.0 LTS du cache de vernis.

  • Elasticsearch 8.11 compatibilité

  • Prise en charge d’OpenSearch 2.12 et d’OpenSearch 1.3

  • Redis 7.2

  • La variable extjs La bibliothèque a été remplacée par la dernière version de jsTree.

  • jquery/fileUpload a été supprimée.

Toutes les bibliothèques JavaScript et les dépendances NPM du code principal du Magento Open Source ont été mises à jour vers les dernières versions disponibles. Toutes les dépendances des bibliothèques Laminas ont été mises à jour vers la dernière version compatible avec PHP 8.3.

Mises à niveau supplémentaires

  • La passerelle API XML Commerce UPS a été migrée vers la nouvelle API REST Commerce UPS pour prendre en charge les mises à jour apportées par UPS à leurs Modèle de sécurité des API. (UPS met en oeuvre un modèle de sécurité OAuth 2.0 (jetons porteur) pour toutes les API.) Toutes les API XML UPS de Commerce précédentes ont été supprimées de la base de code Magento Open Source 2.4.7.

  • Le Magento Open Source integration avec FedEx a été migré des services Web WSDL hérités de FedEx vers les dernières API RESTful de FedEx. Le suivi des services Web FedEx, la validation des adresses et la validation des codes postaux seront retirés en mai 2024.

  • Ajout de la prise en charge de la nouvelle méthode d’expédition USPS Ground Advantage. Il s’agit d’une intégration livrée d’usine avec la nouvelle méthode d’expédition d’USPS, USPS Ground Advantage, qui a été publiée en juillet 2023. Cette nouvelle intégration peut être utilisée pour récupérer les taux d’expédition et planifier les diffusions et les retours par le biais du service d’expédition USPS. La méthode d’expédition USPS Ground Advantage remplace ces méthodes d’expédition, qui ont été abandonnées lorsque la méthode d’expédition USPS Ground Advantage a été publiée :

    • USPS Retail Ground
    • Service de package de première classe
    • Parcel Select Ground
  • Les modules d’expédition Temando ont été supprimés de la base de code du Magento Open Source principal. Cette fonctionnalité a été abandonnée dans Magento Open Source 2.4.4.

Braintree

  • Vaulted PayPalet Pay Later Modifications: les clients connectés qui ont précédemment bloqué/stocké leur compte PayPal ont la possibilité de payer avec :

    • Pay Now (sans avoir à se connecter à PayPal , l’utilisateur peut payer avec sa carte par défaut)
    • Payer avec une source de financement différente
    • Payer avec un autre compte
    • PayPal Pay Later ou PayPal Credit button
  • Prise en charge 3DS pourGoogle Pay: prise en charge de la vérification 3DS incluse pour le Google Pay cartes non segmentées en jetons. Voir Documentation du Braintree pour plus d’informations.

  • Vault Apple Pay Payments: autoriser les clients connectés à Vault/Store leur Apple Pay les paiements à leur compte de magasin Commerce à utiliser pour les transactions futures. Cela réduit le nombre d’étapes du passage en caisse et crée une expérience de passage en caisse plus rapide pour le client qui revient.

  • Vault Google Pay Payments: autoriser les clients connectés à Vault/Store leur Google Pay les paiements à leur compte de magasin Commerce à utiliser pour les transactions futures. Cela réduit le nombre d’étapes du passage en caisse et crée une expérience de passage en caisse plus rapide pour le client qui revient.

  • Vault Venmo Payments: autoriser les clients connectés à Vault/Store leur Venmo à leur compte de magasin Commerce à utiliser pour les transactions futures. Cela réduit le nombre d’étapes du passage en caisse et crée une expérience de passage en caisse plus rapide pour le client qui revient.

  • Vault ACH Payments: autorisez les clients connectés à sauvegarder/stocker leurs paiements ACH dans leur compte de magasin Commerce afin de les utiliser pour de futures transactions. Cela réduit le nombre d’étapes du passage en caisse et crée une expérience de passage en caisse plus rapide pour le client qui revient.

  • Express Paymentboutons en haut de la page de passage en caisse: nous avons introduit pour encourager une expérience de passage en caisse plus rapide. Express Payment options au début du passage en caisse. Les clients peuvent désormais payer en PayPal, PayPal Pay Later, Apple Pay, et Google Pay Express paiements.

  • BraintreeNotes de mise à jour et liens d’assistance dans la configuration de l’administration—Les commerçants peuvent désormais créer directement des liens depuis l’administrateur de Commerce vers l’assistance aux Braintree et les notes de mise à jour en ligne.

  • Prise en charge de GraphQL pour tous Braintree mode de paiement, saufVenmo: d’autres configurations sont exposées dans l’API GraphQL. Cela s’avère particulièrement utile pour les applications sans interface utilisateur graphique.

  • Vaultingpaiements dans la zone du compte: les clients connectés peuvent désormais Vault/store nouvelles cartes de crédit/débit et PayPal dans la zone Compte client . Auparavant, les clients ne pouvaient effectuer de coffre-fort/stockage que lors de l’enregistrement de leurs paiements en vue d’une utilisation ultérieure lors de l’exécution d’une transaction lors du passage en caisse. Désormais, ils peuvent Vault de nouvelles cartes de crédit/débit et de nouveaux comptes PayPal sans avoir à créer une nouvelle transaction.

  • Transactions sans risque: les transactions sans risque accélèrent le processus de paiement en réduisant le nombre de clics/étapes client pour terminer une transaction de carte de crédit/débit en ligne. Auparavant (lorsque 3DS était activé), tous les clients étaient mis au défi par 3DS. Avec la nouvelle fonctionnalité de transactions sans fragment, les clients ne sont mis en défi pour 3DS que lorsque la banque la demande. Cela permet de réduire l’abandon de panier, d’augmenter les taux de conversion et d’augmenter les ventes.

  • Diffuser des webhooks: lorsqu’un client conteste une transaction en Braintree, l’état du litige est désormais transmis à Commerce. Vous pouvez effectuer des recherches dans la variable Sales > Order et jointe à chaque commande.

GraphQL

Magento Open Source 2.4.7 inclut des fonctionnalités de mise en cache GraphQL améliorées, la prise en charge des schémas GraphQL pour les attributs personnalisés, la prise en charge de l’annulation de commande sans interface utilisateur et la mise en cache du résolveur améliorée.

  • Gestion plus flexible des paniers. La variable clearCart la mutation efface désormais le contenu d’un panier spécifié en une seule action. Il remplace la fonction clearCustomerCart mutation, qui a été abandonnée.

  • Améliorations de la création de mutations de panier. La variable createGuestCart une mutation a été ajoutée pour remplacer la version obsolète createEmptyCart mutation. Auparavant, si vous utilisiez createEmptyCart, vous n’avez pas pu déterminer si le panier était destiné à un invité ou un client connecté.

  • Les éléments de commande incluent désormais des images de produit.. OrderItemInterface expose des images de produit, ce qui permet d’associer les images à des produits commandés et de les charger plus efficacement. GitHub-32369

  • Prise en charge étendue de la mise en cache du résolveur. Les résolveurs de requête GraphQL suivants peuvent désormais être mis en cache dans le cache des résultats du résolveur GraphQL, ce qui améliore les performances lorsque les requêtes sont envoyées avec des requêtes de POST :

    • Magento\CustomerGraphQl\Model\Resolver\Customer::resolve
    • Magento\CustomerGraphQl\Model\Resolver\CustomerAddress::resolve
    • Magento\CustomerGraphQl\Model\Resolver\IsSubscribed::resolve
    • Magento\CatalogGraphQl\Model\Resolver\Product\MediaGallery::resolve
  • Prise en charge de l’annulation de commande. La variable cancelOrder la mutation permet à un client d’annuler une commande, de transmettre son identifiant et une raison d’annulation.

  • Prise en charge améliorée des attributs personnalisés. La prise en charge des attributs personnalisés GraphQL a été améliorée en enrichissant les données de l’API pour prendre en charge tous les types d’attributs. Le schéma d’attributs EAV GraphQL prend désormais en charge l’extension des attributs du client et des objets d’adresse du client dans l’Admin et leur récupération à l’aide de GraphQL. Voici quelques améliorations :

    • prise en charge étendue/ajoutée d’attributs personnalisés dans des domaines spécifiques tels que l’adresse du client
    • mise en cache ajoutée pour les attributs personnalisés
    • prise en charge améliorée des attributs personnalisés pour les produits
  • Amélioration des fonctionnalités de mise en cache de GraphQL pour améliorer la vitesse de chargement des pages. La fonctionnalité de mise en cache a été ajoutée à ces requêtes, ce qui accélère le temps de chargement des pages pour la plupart des pages PWA :

  • Amélioration des performances de l’analyseur GraphQL. Les performances de l’analyseur GraphQL ont été améliorées en réduisant le nombre d’appels de la méthode d’analyse par requête. On l'appelle maintenant une fois. Auparavant, l’analyseur était appelé au moins trois fois.

Nouveaux champs pour les mutations existantes

  • Ajout de la quickorder_active au champ storeConfig et availableStores requêtes. Ce champ indique si la fonction d’ordre rapide est activée.

  • Ajout des champs suivants au setBillingAddressOnCart et setShippingAddressesOnCart mutations :

    • fax
    • middlename
    • prefix
    • suffix

Nouvelles requêtes et mutations

Requêtes et mutations obsolètes

Inventory management

Inventory management (v1.2.7) fournit des outils pour gérer l’inventaire des produits. Cette fonctionnalité développée par la communauté est fournie avec le code principal Adobe Commerce et Magento Open Source.

Métaphorage de l’extension Magento Open Source

Cette version inclut le métapaquet d’extension de Magento Open Source v1.0.0, qui regroupe automatiquement les extensions de Magento Open Source sélectionnées avec cette version principale. La version de cette extension incluse dans ce métappackage est installée lorsque composer update est exécuté, ce qui simplifie le processus de mise à niveau de l’extension lors de la mise à niveau vers la dernière version de base. Cette extension conserve un calendrier de publication indépendant.

Le métaphorage de l’extension Magento Open Source pour Magento Open Source 2.4.7 comprend les extensions suivantes :

Les futures versions de ce métapackage d’extension contiendront des extensions supplémentaires.

PWA Studio

PWA Studio v14.0 est compatible avec Magento Open Source 2.4.7-beta1. Plusieurs améliorations ont été apportées à l’accessibilité. Pour plus d’informations sur les correctifs, voir Versions PWA Studio. Voir Compatibilité des versions pour obtenir la liste des versions de PWA Studio et de leurs versions Magento Open Sources principales compatibles.

Structure de l’API web

Cette version introduit deux nouveaux points de terminaison REST qui permettent de contourner une limitation de l’API REST. GET et POST V1/products/attributes points de fin. Ces points de terminaison renvoient la même valeur pour la variable is_filterable pour les attributs Filterable(with results) et Filterable(no results) options de la Use in Layered Navigation . (La variable is_filterable La propriété d’attribut est de type Boolean, qui ne permet pas de définir cette propriété sur Filterable(no results).)

Deux nouveaux points de terminaison REST ont été mis en oeuvre pour contourner ce problème :

  • PUT /V1/products/attributes/{attributeCode}/is-filterable/{isFilterable}. Paramètres de chemin d’accès : attributeCode (String) et isFilterable (int Les valeurs sont : 0 est Non ; 1 est Filterable (with results); 2 est Filterable (no results)).
  • GET /V1/products/attributes/{attributeCode}/is-filterable. Paramètres de chemin d’accès : attributeCode (String).

Problèmes résolus

Nous avons corrigé des centaines de problèmes dans le code principal Magento Open Source 2.4.7. Vous trouverez ci-dessous un sous-ensemble des problèmes résolus inclus dans cette version.

Installation, mise à niveau, déploiement

  • La manipulation inutile du cache a été supprimée du processus de configuration. Auparavant, Magento Open Source écrivit sa configuration sur le disque inutilement lorsque bin/magento setup:db-data:upgrade ou bin/magento setup:upgrade a été exécuté, ce qui entraînait des problèmes avec certains modules lors de la configuration. GitHub-38124
  • Les problèmes de déploiement dus à une mémoire insuffisante et à des tables volumineuses ont été résolus. La variable bin/magento setup:upgrade La commande n’échoue plus en raison d’erreurs de mémoire dépassées liées à des tables MySQL volumineuses.
  • bin/magento setup:install désormais terminé avec succès après app/etc/config.php a été supprimé. Auparavant, le fichier manquant n’était pas régénéré pendant l’installation et Magento Open Source renvoyait une erreur. GitHub-37805
  • bin/magento setup:upgrade a été restructuré pour s’exécuter correctement lors de l’installation d’un nouveau module qui installe à la fois les tables et les mview indexeurs. GitHub-37304
  • La restauration de la base de données n’échoue plus en raison d’une erreur de délimiteur. Auparavant, Magento Open Source renvoyait cette erreur lors de la bin/magento setup:rollback --db a été exécuté : Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'delimiter' at line 1, query was: delimiter ;;.
  • La variable bin/magento setup:upgrade La commande n’échoue plus avec ce type d’erreur de limitation de la mémoire MySQL : PHP Fatal error: Allowed memory size of 4294967296 bytes exhausted (tried to allocate 20480 bytes). La migration d’attributs à sélection multiple a été optimisée pour consommer moins de mémoire pendant la setup:upgrade.
  • La génération d’une sauvegarde de base de données fonctionne désormais comme prévu à partir de la ligne de commande et de l’administrateur. Auparavant, Magento Open Source envoyait cette erreur : Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'delimiter' at line 1, query was: delimiter ;;.
  • En cours setup:config:set sans spécifier la variable --lock-db-prefix n’efface plus la valeur actuelle de la variable env.php fichier .
  • La configuration de vernis a été mise à jour afin d’empêcher les utilisateurs invités d’accéder au contenu mis en cache associé à d’autres groupes de clients.
  • bin/magento setup:upgrade se termine correctement lors de l’installation d’un nouveau module qui installe les tables et les tables associées mview indexeurs.
  • bin/magento setup:upgrade affiche désormais un message d’erreur plus informatif lorsqu’une rubrique de file d’attente de messages n’inclut pas de nom de rubrique. GitHub-34246
  • bin/magento setup:upgrade affiche désormais un message d’erreur plus informatif lorsque les fichiers XML fusionnés ne sont pas valides. Le message d’erreur comprend désormais le nom du fichier.

Interface utilisateur d’administration

  • Les tableaux sont désormais désactivés par défaut dans le tableau de bord. GitHub-38430
  • Le menu Ventes d’administrateurs affiche désormais correctement les sous-menus. Auparavant, les sauts de colonne ne fonctionnaient pas correctement et certains sous-menus ne s’affichaient pas. GitHub-37812
  • Select les options du menu déroulant sont désormais visibles sur l’administrateur. Content > Pages lorsque plusieurs pages sont sélectionnées dans la grille. GitHub-35386
  • Correction du chemin d’accès à la valeur par défaut de system/dashboard/enable_charts dans les paramètres de configuration. Les graphiques s’affichent désormais comme prévu dans l’Administration. GitHub-37668
  • Correction d’un problème d’affichage avec les grilles d’administration du client. Auparavant, les colonnes de la grille n’étaient pas entièrement contenues dans la page affichée.
  • Les couleurs de survol sont désormais appliquées comme prévu sur les lignes des grilles statiques d’administration. GitHub-35358
  • Le workflow de passage en caisse n’affiche plus d’avertissement lorsqu’un acheteur saisit un code postal pour la Grèce qui ne contient pas d’espace vide. GitHub-36676
  • L’administrateur It's time to change your password Le lien redirige désormais vers la page Modifier le mot de passe de l’administrateur comme prévu. GitHub-37902
  • Les suffixes de titre de page sont désormais inclus dans les deux title et meta title balise pour les pages de produits. GitHub-37680
  • La condition d’état du stock de produit est désormais correctement appliquée pour les règles de produits connexes.
  • La variable Login as Customer s’affiche désormais correctement sur les périphériques mobiles.
  • Adobe Commerce n’affiche plus l’administrateur. Add new customer group si l’utilisateur administrateur connecté n’est pas autorisé à ajouter un nouveau groupe de clients.
  • Un utilisateur administrateur disposant d’autorisations restreintes peut désormais enregistrer un produit enfant dont le produit parent est affecté à une autre portée. Auparavant, Commerce invalidait le cache d’un produit parent qui n’était pas affecté à la portée dans laquelle le produit enfant était modifié.
  • Les utilisateurs administrateurs peuvent désormais basculer entre les vues de filtre d’administration sans que les données d’affichage soient corrompues ou perdues. GitHub-37529

Lot de produits

  • La variable customerCart query renvoie désormais toutes les remises appliquées sur les produits du lot comme prévu. Auparavant, le total des remises appliquées à un produit en bundle était renvoyé sous la forme de zéro.
  • Les pages Détails du produit affichent désormais le prix correct pour les produits en regroupement pour lesquels une remise de 100 % a été appliquée. Auparavant, Magento Open Source n’appliquait pas une remise de 100 % sur les prix des produits groupés.
  • Les règles de prix du panier sont désormais appliquées aux lots de produits au lieu de chaque produit enfant pour les produits groupés à prix dynamique.
  • Correction d’une erreur qui se produisait lors de l’utilisation de la variable POST V1/shipment point de terminaison pour créer une expédition contenant un produit groupé. Le point de terminaison ajoute désormais les éléments comme prévu et ne renvoie plus cette erreur : The shipment couldn't be saved.
  • Vous pouvez désormais utiliser la variable GET V1/shipment/ Itinéraire d’API pour créer une expédition avec un produit groupé lorsque le produit possède la variable together jeu de types d’expédition. Les produits groupés sont désormais également validés en fonction de leur propriété de type d’expédition.
  • Les acheteurs peuvent désormais modifier la quantité d’un produit en bundle dans leur panier d’achat de vitrine. Auparavant, Adobe Commerce ne prenait pas en charge les valeurs "null" pour ItemId lorsque les produits ont été modifiés dans le panier storefront et affichent une erreur. GitHub-37696
  • Les produits en bundle peuvent désormais être ajoutés à un ordre d’administration à l’aide de SKU contenant une barre oblique (/). Auparavant, les utilisateurs administrateurs ne pouvaient pas utiliser cette méthode pour ajouter des produits à une commande d’administrateur et Magento Open Source envoyait une erreur JavaScript.
  • Les utilisateurs administrateurs peuvent désormais définir des valeurs par défaut décimales pour les options de lot nouvellement ajoutées lorsque Qty Uses Decimal est activé pour le produit simple correspondant. Auparavant, les valeurs décimales ne pouvaient être définies que pour les sélections enregistrées.
  • Optimisation des performances pour l’enregistrement des produits en bundle avec un grand nombre d’options
  • Les produits groupés sont désormais importés avec succès sans dupliquer les SKU dans les options de produit. Auparavant, Magento Open Source créait plusieurs SKU en double dans les options de produit lorsque vous importiez des produits en lot avec des entrées en double.
  • Le prix du produit en bundle est désormais correctement calculé lorsque l’un des produits du bundle est en rupture de stock. Auparavant, si un produit faisant partie du lot était en rupture de stock, il était supprimé du calcul du prix.
  • Les produits en bundle s’affichent désormais en rupture de stock lorsque le dernier de leurs produits enfants requis est acheté. Auparavant, les produits en bundle étaient affichés en stock sur le storefront lorsque leurs produits simples étaient en rupture de stock.
  • Problèmes de performance lors de l’ajout au panier de produits en regroupement avec des options non requises à l’aide de la variable addBundleProductsToCart la mutation a été résolue.
  • La variable categoryList la requête renvoie désormais toutes les options de lot comme prévu lorsque la variable Show out-of-stock products configuration est activé. Auparavant, les options en rupture de stock n’étaient pas incluses dans la réponse de requête.
  • Lot de produits créés avec POST V1/products réussi maintenant lorsque la portée du prix du catalogue est définie sur website. Auparavant, une violation de contrainte d’intégrité se produisait. GitHub-35595

Cache

  • Les catégories sont désormais visibles pour les acheteurs dans les magasins où le cache est défini sur un CDN Fastly (Caching Application=Fastly CDN). Cela affectait à la fois les clients invités et les clients enregistrés.
  • Les cookies de cache après connexion sont désormais les mêmes après la navigation sur le site web. Auparavant, le contrôleur de connexion envoyait un cookie de cache incorrect et les pages pouvaient avoir été mises en cache plusieurs fois.
  • Les réponses des opérations de GET GraphQL sur les pages CMS qui contiennent des blocs CMS sont désormais effacées comme prévu dans le cache Fastly. Les mises à jour ultérieures du planning affichent désormais un contenu précis et à jour pour ces pages.
  • Le cache de page est désormais effacé comme prévu pour un produit parent lorsque l’un de ses produits enfants a été enregistré auprès de l’administrateur. Une vérification de module externe a été introduite pour atteindre l’invalidation du cache pour les variantes configurables, semblables à d’autres types de produits, quel que soit l’état de l’indexeur (planifié ou en temps réel). Auparavant, les prix n’étaient pas correctement mis à jour sur le storefront après la mise à jour d’une variation configurable de la part de l’administrateur.
  • Ajout d’un mécanisme de mise en cache pour les informations d’identification AWS. Un fournisseur d’informations d’identification utilise désormais le cache de Commerce pour mettre en cache les informations d’identification récupérées à partir d’AWS pour la configuration EC2.
  • Le module externe dont l’objectif est d’ajouter la balise de cache configurable lorsqu’un produit simple associé à un produit configurable est enregistré fonctionne désormais comme prévu. Toutes les balises de cache configurables appropriées sont supprimées comme prévu lorsqu’un produit simple est mis à jour par POST V1/products. Auparavant, tous les prix n’étaient pas mis à jour sur le storefront et les caches devaient être effacés manuellement. GitHub-36726

Panier et passage en caisse

  • Magento Open Source optimise désormais les performances en ne chargeant pas les données de guillemets spécifiques à l’utilisateur lors de la génération de pages pouvant être mises en cache, telles que les pages de détails du produit (PDP) et les pages CMS lorsque le panier persistant est activé. Auparavant, le système chargeait inutilement les données de session spécifiques à l’utilisateur et citait les données pendant la génération de ces pages, ce qui affectait les performances.
  • Les attributs personnalisés des adresses personnalisées sont désormais enregistrés comme prévu dans la base de données. Auparavant, les valeurs d’attribut enregistrées dans la base de données étaient précédées du code d’attribut .
  • La génération du texte de filtre des règles de panier pour les attributs de produit a été améliorée. Les produits individuels ne sont plus chargés plusieurs fois.
  • Magento Open Source affiche désormais un message d’erreur informatif lorsqu’une erreur se produit lors du passage en caisse et ne renvoie plus l’acheteur à une étape précédente du passage en caisse. Auparavant, l’acheteur était renvoyé à la page d’expédition.
  • La variable cart La requête ne renvoie plus le mode d’expédition et l’adresse pour les paniers virtuels. Auparavant, lorsqu’un panier contenait des produits physiques et virtuels et que tous les produits physiques étaient supprimés, la réponse de requête du panier continuait à inclure des informations d’expédition.
  • Magento Open Source affiche désormais des messages informatifs lorsqu’une action de module complémentaire au panier est déclenchée. Auparavant, la variable The requested qty is not available ne s’affichait pas toujours comme nécessaire sur le storefront.
  • Les délais de chargement des pages de passage en caisse ont été améliorés pour les clients disposant de grands carnets d’adresses. Magento Open Source traite désormais uniquement le nombre d’adresses client spécifié dans la variable Customer Addresses Limit . Auparavant, Magento Open Source chargeait l’intégralité du carnet d’adresses.
  • La quantité de produits peut désormais être modifiée dans le panier comme prévu pour les articles en stock lorsqu’un article est en rupture de stock. Auparavant, les acheteurs ne pouvaient pas modifier la quantité d’un produit lorsqu’un article était en rupture de stock.
  • La variable AdvancedSalesRule Le filtre d’attribut de produit fonctionne désormais correctement avec le type de serveur principal d’attributs décimaux. Par conséquent, le panier s’applique aux Coupon Type défini sur No Coupon fonctionnent désormais comme prévu.
  • Le montant total d’une remise panier complète est désormais appliqué comme prévu aux paniers qui contiennent à la fois des paniers et des produits configurables.
  • Les cookies de section client respectent désormais le paramètre de domaine du cookie. Auparavant, le mini panier ne se mettait pas à jour comme prévu dans les magasins qui contenaient des sous-domaines, même si la session était partagée.
  • L’envoi d’une commande à plusieurs adresses ne déclenche plus d’erreur lors du traitement des identifiants de région.
  • Les montants de remise fixe appliqués au niveau du panier sont désormais corrects.GitHub-37496
  • Les bons sont désormais appliqués avec succès à une commande lorsqu’un acheteur applique le bon après avoir sélectionné le mode d’expédition à taux fixe lorsqu’une règle de prix du panier avec la méthode d’expédition définie comme condition s’applique. Auparavant, la page du panier affichait l’erreur Bon non valide et le bon n’était pas appliqué. GitHub-34866
  • Les bons sont désormais appliqués avec succès à une commande lorsqu’un acheteur applique le bon après avoir sélectionné le mode d’expédition à taux fixe lorsqu’une règle de prix du panier avec la méthode d’expédition définie comme condition s’applique. Auparavant, la page du panier affichait l’erreur Bon non valide et le bon n’était pas appliqué. GitHub-34866
  • La variable My billing and shipping address are the same reste maintenant cochée par défaut lorsqu’un acheteur utilise la saisie automatique de Chrome pour remplir son adresse de livraison, puis clique sur Suivant avant le rechargement du bloc des méthodes d'expédition. GitHub-33725
  • La variable applied_rule_ids dans la variable quote_item comprend désormais une liste correcte des ID de règle appliqués. Auparavant, cette valeur ne contenait que le dernier identifiant de règle appliqué.
  • Les données du mini-panier et du client dans le stockage local sont désormais réinitialisées lorsqu’une session est supprimée du serveur. Auparavant, ces données s’affichaient toujours lorsque le fichier de session était supprimé.
  • Les paniers distincts ne sont plus fusionnés par erreur à partir de l’administrateur lorsque le panier persistant est activé.
  • La taxe sur le panier et l’estimateur d’expédition reflètent désormais fidèlement la configuration de destination par défaut. Auparavant, lorsque vous configuriez les paramètres de calcul de destination de la taxe par défaut et que vous aviez spécifié Etat/Région et ZIP, seule la valeur ZIP était affichée dans le panier sous Estimate Tax and Shipping. Cela résultait du fait que le Magento Open Source définissait l’identifiant de région sur non défini avant d’appeler l’instruction conditionnelle qui définit l’identifiant de région par défaut à partir de l’administrateur.
  • Magento Open Source ne renvoie plus cette erreur lors du passage en caisse lorsque le panier persistant est activé : Invalid state change requested. Auparavant, lorsque cette erreur était générée, plusieurs commandes étaient identiques. quote_id ont parfois été créées.
  • Le mini panier affiche désormais les prix des produits en bundle qui reflètent les paramètres de configuration de la taxe sur le panier. Auparavant, le mini-panier incluait toujours des taxes dans les prix des produits groupés.
  • L’estimation de la livraison fournie à partir de la page du panier est désormais exacte. collectShippingRates est désormais défini une seule fois. Auparavant, l’estimation de la livraison était dupliquée. GitHub-36648
  • La variable cart ne renvoie plus d’erreur lorsqu’un produit figurant dans le panier spécifié est en rupture de stock. Auparavant, les acheteurs qui utilisaient cette requête pour effectuer un achat ne pouvaient pas terminer leur achat lorsqu’un article était en rupture de stock et leur page de passage en caisse était vide.
  • Requêtes d’API d’invité à POST V1/guest-carts/<cartId>/shipping-information ne renvoie plus un cancel statut si la page se recharge lors de la connexion à un environnement mobile. Auparavant, Magento Open Source générait une erreur 500 et consignait cette exception : TypeError: Argument 2 passed to Magento\CustomerCustomAttributes\Model\Plugin\ProcessCustomerShippingAddressCustomAttributes::beforeSaveAddressInformation() must be of the type string, null given.
  • L’éligibilité à la livraison gratuite est désormais calculée comme prévu lorsque la variable Subtotal (Excl. Tax) condition pour les règles de panier est appliquée. GitHub-36760
  • La variable cart la requête renvoie désormais le niveau de prix correct pour un produit. GitHub-29655
  • Des messages d’erreur informatifs ont été ajoutés à la page de passage en caisse pour guider les acheteurs lorsque l’application d’un bon sur la page d’expédition entre en conflit avec la méthode d’expédition sélectionnée. Auparavant, un message demandait aux acheteurs de revenir à la page précédente.
  • La fenêtre contextuelle d’authentification n’est désormais initialisée que lorsqu’elle est nécessaire et non dès que l’extraction d’invité est activée. Elle est maintenant initialisée lorsque l’acheteur invité tente de procéder à l’extraction et que l’extraction d’invité est désactivée. GitHub-30672

Règle de prix du panier

  • La condition de sous-sélection du produit de la règle de prix de panier inclut désormais la condition total (incl.tax) comme prévu. GitHub-34871
  • La variable If an item is FOUND/NOT FOUND in the cart with ALL/ANY of these conditions true la condition de règle de prix du catalogue fonctionne désormais correctement avec les attributs de catégorie et de SKU. Auparavant, cette condition n’était pas correctement appliquée dans la logique des bons de réduction du prix du panier et les bons non valides étaient appliqués aux commandes. GitHub-37660
  • Vous pouvez désormais enregistrer une nouvelle règle de prix de panier avec le Magento_OfflineShipping extension désactivée. Auparavant, Magento Open Source envoyait cette erreur : report.ERROR: Warning: Undefined array key "simple_free_shipping". GitHub-37580
  • Les règles de prix du panier sont désormais appliquées comme prévu lorsqu’une règle de prix du panier associée à une méthode d’expédition est configurée pour le magasin et que cette méthode d’expédition est remplacée par une autre lors du passage en caisse. Auparavant, la variable applied_rule_ids n’a jamais été modifiée dans sales_order_item et que la règle de prix du panier n’était pas appliquée à la commande.
  • Les bons sont désormais appliqués avec succès à une commande lorsqu’un acheteur applique le bon après avoir sélectionné le mode d’expédition à taux fixe lorsqu’une règle de prix du panier avec la méthode d’expédition définie comme condition s’applique. Auparavant, la page du panier affichait la variable Coupon is Not valid et le coupon n’a pas été appliqué. GitHub-34866

Catalogue

  • En cours bin/magento cache:clean ou bin/magento cache:flush ne vident plus l’intégralité du cache de la page entière intégré ou vernis, sauf indication contraire. GitHub-38301
  • Les vendeurs peuvent désormais utiliser le carrousel de produit pour créer des blocs CMS lors de la catalog_product_price dimensions-mode est défini sur website. Auparavant, Magento Open Source n’enregistrait pas le bloc et générait cette erreur SLQ : report.CRITICAL: PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table.
  • Magento Open Source n’affiche plus les images en double lorsque la couleur du produit est modifiée sur la page des détails d’un produit. GitHub-36243
  • Optimisation de l’algorithme pour la synchronisation des valeurs spécifiques à un site web après l’ajout d’un nouveau magasin ou la modification d’un magasin existant dans des environnements multi-magasin volumineux.
  • Le processus de nettoyage des fichiers image mis en cache a été amélioré afin d’éviter la création de répertoires masqués dans la variable pub/media/catalog/product dossier. Auparavant, les répertoires masqués entraînaient des problèmes d’espace disque lors des opérations de nettoyage. L’opération peut être arrêtée, ce qui laisse derrière lui des répertoires masqués temporaires qui n’ont jamais été supprimés.
  • Les prix des produits en bundle sont désormais correctement calculés et un problème lié à l'ordre des opérations lors du calcul des prix a été résolu. GitHub-35665
  • Une clause inutile a été supprimée de catalog_product_price requêtes d’index, ce qui a amélioré les performances de cet indexeur sur les magasins avec des catalogues volumineux. GitHub-32382
  • Magento Open Source n’insère plus de texte de description de produit dans la page des détails du produit. Meta Description lorsque ce champ a été laissé vide. Auparavant, lorsqu’une description de produit contenait du code de HTML généré par le créateur de pages ou un autre éditeur de HTML, le HTML s’affichait dans les métadonnées. Description et vous ne pouviez pas laisser ce champ vide.
  • Les options de produit configurables sur les pages PDP de produit configurables ne sont plus affectées par les autres options de produit configurables sur la page. Auparavant, les produits configurables avec des attributs de liste déroulante ne déclenchaient plus d’exception lorsqu’un carrousel de produit était présent sur la page des détails du produit. Les options de produit configurables n’étaient pas sélectionnables lorsque d’autres produits configurables avec des options d’échantillon étaient présents sur la page.
  • Les informations sur les produits récemment consultés s’affichent désormais conformément à la configuration de la vue de magasin. Auparavant, les données de produit récemment consultées n’étaient pas mises à jour par vue de magasin, y compris le nom et la langue préférée.
  • Les vidéos Vimeo sont désormais lues comme prévu sur les pages de produits dans la vue mobile dans les navigateurs web Chromium.
  • La variable bin/magento catalog:images:resize génère désormais correctement les images de produit pour les produits affectés à un site web personnalisé avec un thème personnalisé.
  • Métadonnées avec NULL ou NOT NULL sont désormais enregistrées pour le magasin par défaut, en fonction de la variable Utiliser la valeur par défaut de la boîte de dialogue suivante. Auparavant, les métadonnées avec NULL n’était pas enregistrée lorsque cette case était décochée.
  • Les vendeurs peuvent désormais supprimer une image existante de la page des détails du produit, puis charger une nouvelle image portant le même nom. Auparavant, dans ces circonstances, la page du produit storefront n’affichait pas la bonne image.
  • La variable productDetail la requête renvoie désormais le nom du produit au lieu de null lorsque l’image du produit alt est défini comme vide.
  • Les commandes qui contiennent à la fois des produits téléchargeables et des produits physiques incluent désormais des liens de travail vers le produit téléchargeable dès que la commande est terminée. Auparavant, les liens vers les produits téléchargeables n’étaient pas disponibles tant que les produits physiques dans la même commande n’étaient pas livrés.
  • Les réécritures d’URL sont désormais mises à jour lorsqu’une catégorie est déplacée d’une catégorie magasin/racine vers une autre catégorie magasin/racine. Les entrées de base de données obsolètes sont désormais supprimées lorsque les sous-catégories sont transférées vers de nouvelles catégories parentes. La base de données ne contient désormais que les entrées pertinentes. Auparavant, la variable url_path n’a pas été mis à jour avec l’identifiant de magasin approprié.
  • REST V1/products/<sku>/media endpoint peut désormais traiter le chargement simultané de plusieurs images multimédias. Auparavant, lors du traitement simultané de plusieurs requêtes, des données incohérentes étaient créées, et Magento Open Source envoyait une erreur lorsque ces données étaient enregistrées dans la base de données.
  • Les performances de réindexation partielle pour les indexeurs de catégories de produits et de produits ont été améliorées. Auparavant, la variable indexer_update_all_views la tâche cron exécutait des réindexeurs plusieurs fois par produit ou catégorie unique.
  • Lorsque le statut du stock de produit est automatiquement mis à jour vers le statut en rupture de stock en fonction de la configuration du stock (quantité), le statut du stock est ensuite mis à jour vers le statut en stock lors de la mise à jour de la quantité de stock. Auparavant, la variable stock_status_changed_auto était ignoré lorsque la configuration de stock d’un produit était mise à jour vers en stock.
  • Le tri des barres d’outils fonctionne désormais comme prévu sur les pages de recherche lorsque la variable Remember Category Pagination est activé. GitHub-33220
  • Les attributs à sélection multiple sont désormais enregistrés comme prévu lorsque Use Default Value est cochée dans la portée de vue magasin. Auparavant, cette case à cocher était décochée lorsque le produit était modifié et que la valeur par défaut était enregistrée.
  • Les utilisateurs administrateurs disposant d’un accès limité au site web peuvent désormais ajouter des images à un produit qui entre dans leur portée. Si l’utilisateur administrateur n’a pas les droits d’accès au produit, Magento Open Source affiche un message informatif. Auparavant, les utilisateurs administrateurs disposant d’un accès limité au site web ne pouvaient pas ajouter d’images aux produits auxquels ils avaient accès.
  • Magento Open Source affiche désormais le nom correct après le tri des produits par nom dans Admin > Category > Products in category dans les déploiements multi-magasin où les noms de produits varient selon les magasins. GitHub-36208
  • La variable addProductsToCart mutation renvoie désormais des options personnalisables avec des données. Auparavant, il renvoyait uniquement des options personnalisables vides. GitHub-37599
  • L’état des produits en arrière-plan s’affiche désormais correctement sur le storefront. Auparavant, les produits disponibles pour l’expédition étaient incorrectement identifiés comme des commandes en souffrance.
  • Les produits exportés ont désormais la valeur correcte manage_stock lorsque la variable use_config_manage_stock value est égal à 1. Auparavant, cette valeur par défaut était incorrecte.
  • L’accès aux produits téléchargeables à partir de l’administrateur n’entraîne plus d’erreur lorsque l’utilisateur administrateur modifie la vue de magasin de la vue utilisée lors de la création du produit à une autre vue de magasin. Les prix des produits sont désormais convertis en valeur flottante lorsqu’un utilisateur administrateur passe de la vue de magasin de toutes les vues de magasin à la vue de magasin par défaut. Auparavant, Magento Open Source envoyait une erreur. GitHub-37519
  • Magento Open Source n’affiche plus de message d’avertissement lorsque vous enregistrez un produit qui a été créé avec des options personnalisées après la suppression de son image.
  • Les images miniatures de produit s’affichent désormais comme prévu dans l’e-mail d’alerte de stock de produit envoyé lorsqu’un produit est de nouveau en stock. Auparavant, cette image n’était pas affichée dans l’e-mail d’alerte.
  • Nombre de produits dans l’arborescence des catégories (Admin) Catalog > Category) est désormais exact. Auparavant, le nombre de produits de catégorie ne pouvait pas être récupéré dans la variable catalog_category_product_index table. La faute de frappe qui a déclenché ce bogue a été corrigée. GitHub-35417
  • L’image principale du produit sur la page des détails du produit ne se déplace plus visiblement vers le bas au cours du chargement de la page lorsque product_image_white_borders dans le thème view.xml est désactivée. Auparavant, l’image du produit était visiblement déplacée vers le bas au chargement de la page en raison de paramètres de hauteur incorrects dans Fotorama JS.
  • Les clients sont désormais informés des baisses de prix lorsque le client est abonné à des alertes de chute de prix. Auparavant, les notifications de baisse de prix n’étaient pas toujours envoyées en raison de la mise en cache au niveau de l’application.
  • La validation côté serveur a été ajoutée au processus de création d’attributs de produit via l’API web. Vous ne pouvez pas activer la variable Use in Layered Navigation Catalog lorsque la variable Catalog Input Type for Store Owner la valeur du champ est Text Field, Text Area, Text Editor, Date, ou Date and Time. Auparavant, les produits étaient omis des catégories et des résultats de recherche.
  • La page de catégorie se recharge désormais avec la pagination correcte une fois qu’un acheteur a ouvert la page, modifié la pagination, accède à une page de produit, puis revient à la page de catégorie. GitHub-36563
  • Les produits simples en rupture de stock qui sont des options pour un produit configurable s’affichent désormais comme désactivés sur le storefront lorsque Display Out of Stock Products est défini sur Oui. Auparavant, toutes les options s’affichaient comme disponibles, en dépit de leur état et de leur disponibilité réelle.
  • La mise à jour de l’attribut de portée du site web dans une vue de magasin spécifique ne remplace plus la valeur de cet attribut dans la portée globale. Auparavant, l’importation des prix des produits lorsque plusieurs lignes étaient disponibles avec le même SKU et store_view_code résultait en des prix inexacts pour les portées de vue par défaut et Toutes les boutiques.
  • Les marchands peuvent désormais ajouter une image de GIF à la galerie d’images d’un produit à partir de l’administrateur. Auparavant, Magento Open Source affichait cette erreur : imagecolorsforindex(): Argument #2 ($color) is out of range.
  • Des vérifications ont été ajoutées pour gérer les erreurs qui résultent de clés de tableau non définies. Auparavant, une erreur se produisait lors de la génération de la liste blanche des schémas déclaratifs.
  • Magento Open Source renvoie désormais un résultat valide pour la date personnalisée 01/01/1970. Auparavant, l’attribut personnalisé renvoyait cette erreur : Invalid input datetime format of value '1/01/1970. GitHub-37274
  • routes les requêtes qui utilisent des fragments renvoient désormais les informations de catégorie comme prévu. Auparavant, une erreur de serveur interne se produisait sur la page de catégorie. GitHub-35906
  • Problèmes liés à cataloginventory_stock le processus de réindexation partielle a été résolu et les performances de l’indexeur ont été améliorées. Auparavant, les catégories de stock et de produit n’étaient pas mises à jour avec précision.
  • Magento Open Source génère désormais une redirection 301 pour un produit lorsque la catégorie à laquelle il appartient a été déplacée vers un nouveau parent. GitHub-37039

Règles du catalogue

  • Les règles du catalogue sont désormais correctement indexées lorsqu’elles sont activées par la mise à jour du planning. Par conséquent, les prix réduits sont désormais correctement générés et indexés. Auparavant, lorsque deux règles de catalogue étaient disponibles et qu’une règle était activée après la première règle avant que l’opération d’indexation de règle de catalogue ne soit terminée, les prix de remise de règle de catalogue n’étaient pas générés pour la deuxième règle de catalogue.
  • Les règles du catalogue sont désormais appliquées comme prévu dans un environnement multisite.

Produits configurables

  • Les vendeurs peuvent désormais sélectionner Skip quantity at this time et Skip image uploading at this lors de la configuration d’un produit configurable sans affecter la source des produits simples associés. Auparavant, la sélection de Skip quantity at this time a entraîné la disparition de sources de produits.
  • La variable As low as Le libellé n’est plus affiché pour un prix de produit configurable lorsque toutes les options ont le même prix.
  • Les utilisateurs administrateurs disposant d’autorisations de site web peuvent désormais enregistrer un produit enfant qui fait partie d’un produit configurable dans un autre contexte de magasin. Les processus de réindexation ignorent désormais ce type de produit configurable.
  • Les produits configurables comportant deux produits enfants ne sont plus marqués comme étant en rupture de stock lorsqu’un produit enfant est désactivé par une mise à jour planifiée. Il s’agissait d’un problème connu pour la version 2.4.7-beta1.
  • Les performances des opérations d’enregistrement pour les produits configurables avec plusieurs options ont été améliorées. Auparavant, les délais d’expiration pouvaient survenir lors des opérations d’enregistrement de produit. GitHub-36928
  • L’affichage du storefront des prix configurables des produits change désormais comme prévu lorsqu’un acheteur sélectionne une option de produit. GitHub-37378

Coupons

  • Les codes coupon comportant un nombre limité d’utilisateurs par client peuvent désormais être utilisés une seconde fois lorsque la commande pour laquelle ils ont été utilisés échoue. Auparavant, le code promotion n’était pas publié lorsque la commande précédente était annulée.
  • Les codes coupon contenant des espaces ne sont plus invalidés. Auparavant, si un code de bon contenait un caractère d’espace (avant ou après le code réel), la validation échouait. GitHub-38048
  • La valeur de bon à usage unique d’un acheteur est désormais restaurée comme prévu lorsque la commande à laquelle il a été appliqué est annulée.
  • La variable GET V1/coupons/<couponId> endpoint renvoie désormais la réponse attendue complète pour les bons créés manuellement, comme pour les bons générés automatiquement. Auparavant, certains champs étaient omis (par exemple, usage_limit, usage_per_customer, et created_at).

cron

  • La variable aggregate_sales_report_bestsellers_data La tâche cron ne crée plus de tables MySQL temporaires très volumineuses et se termine maintenant correctement. Cette tâche cron insère désormais des données par magasin, et non pour tous les magasins à la fois. Auparavant, cette tâche cron pouvait générer des No space left on device erreurs.
  • Le nombre d’enregistrements en attente dans la variable cron_schedule a été réduit en empêchant les tâches cron d’acquérir des verrous de tâche cron inutiles. Auparavant, les tâches cron tentaient d’acquérir des verrous lorsqu’il était trop tard pour exécuter la tâche. Tâches Cron dans cron_schedule n’ont pas été marqués comme manqués même s’ils avaient déjà dépassé l’heure planifiée. Magento Open Source a également affiché cette erreur plusieurs fois dans le journal des erreurs : report.WARNING: Could not acquire lock for cron job: indexer_update_all_views.
  • Correction de l'erreur fatale "diviser par zéro" dans les expressions cron. GitHub-37804
  • La variable sales_clean_quotes Le processus cron a été optimisé pour s’exécuter plus rapidement en ajoutant un index composite sur store_id et updated_at columns dans la table des guillemets. Cette modification améliore les performances de la tâche cron lors du traitement de nombreux guillemets.
  • Les utilisateurs administrateurs peuvent désormais afficher la tâche bin/magento cron:run est actuellement en cours d’exécution. Le titre du processus en cours d’exécution répertorie désormais les noms des groupes et des tâches. GitHub-34321

Client

  • Magento Open Source affiche désormais la variable Date of Birth, Tax/VAT Number, Gender, Telephone, Company, et Fax sur la page modifier le client en fonction des paramètres de configuration. GitHub-36196

Email

  • Les emails contenant des diacritiques ou des accents (c'est-à-dire des emails utf8) sont désormais pris en charge pour les clients et les entreprises, ainsi que pour le placement de commandes par les invités et les clients enregistrés. Auparavant, Magento Open Source n’enregistrait pas les enregistrements de clients qui contenaient des diacritiques et affichait cette erreur : Something went wrong while saving the customer.
  • Les noms d’expéditeur d’emails ne peuvent plus inclure de deux-points. Une nouvelle règle de validation empêche désormais l’enregistrement des noms d’expéditeur contenant les deux-points de la section Stocker les adresses électroniques de l’administrateur. Stores > General. Auparavant, les marchands pouvaient enregistrer un nom d’expéditeur contenant un caractère deux points, ce qui entraînait des erreurs au serveur de messagerie.
  • Les adresses électroniques du client peuvent désormais inclure des diacritiques. Auparavant, la validation frontale interdisait la création d’un utilisateur avec des signes diacritiques dans son adresse électronique. GitHub-12075
  • Les emails d’alerte de stock et de prix sont désormais traduits en fonction de la langue configurée pour la vue de magasin par défaut du site web. Auparavant, ces emails n’étaient pas traduits.
  • POST V1/order/notify-orders-are-ready-for-pickup envoie désormais un email pour avertir les clients qu’une commande est prête à être récupérée uniquement lorsque la commande est prête. L’e-mail est maintenant déclenché uniquement lorsque la demande a été satisfaite sans exception.

Frameworks

  • Amélioration du débogage en ajoutant la fonction UNCACHEABLE est utilisée lors de la génération d’un en-tête HTTP avec vernis. Auparavant, uniquement HIT ou MISS étaient générées. GitHub-37912
  • Ajout du code pour la prise en charge de la gestion de la compression par défaut du vernis. GitHub-38309
  • La variable varnish:vcl:generate inclut désormais une input-file argument. Cela prend en charge l’ajout d’un VCL personnalisé à un référentiel Git, par rapport à la racine Commerce. GitHub-37363
  • La prise en charge de Varnish 4.x et 5.x a été supprimée du code base. GitHub-38304
  • phpcodesniffer-composer-installer in composer.json a été mis à niveau vers la version 1.0.0. GitHub-36913
  • Correction d’une balise de document PHP incorrecte dans le Magento\Reports\Block\Adminhtml\Shopcart\Product\Grid classe . GitHub-38186
  • Refactorisation du code dans l’ensemble du code base créé lors de l’entraînement de codage qui imposait que toute section de cache incluse dans la variable app/etc/env.php inclut une section front-end. Cette refactorisation résout les problèmes potentiels lors de la mise à niveau des déploiements Magento Open Source antérieurs à la version 2.4.4. GitHub-38363
  • Clarification du message d’erreur associé à StockItemValidator.php lorsqu’un identifiant de stock avec une valeur de 0 est fourni lors d’un appel API. GitHub-31107
  • Ajout d’un tableau vide par défaut à $tagGenerators in CompositeTagGenerator pour éviter les erreurs lors de la compilation des injections de dépendances. Auparavant, l’exécution de la variable bin/magento setup:upgrade lorsque la variable Magento_DirectoryGraphQl et Magento_StoreGraphQl Les modules étaient désactivés, ce qui entraînait une erreur. GitHub-38165
  • Inutilisée AlgorithmProviderFactory a été supprimée, ainsi que les dépendances de cette classe dans les classes, y compris JweAlgorithmManagerFactory.php, JweContentAlgorithmManagerFactory.php, et JwsAlgorithmManagerFactory. GitHub-37783
  • La variable var/log/system.log ne contient plus main.INFO messages d’erreur. Le journal des entrées de menu a été déplacé du niveau INFO vers DEBUG. Auparavant, la variable var/log/system.log a été inondé de messages comme celui-ci : Add of item with id Magento_Theme::design_config was processed … .
  • Le préchargement des redis ne échoue plus lorsque exec() renvoie false. La vérification a été ajoutée au processus de préchargement pour empêcher array_combine de réception false comme deuxième argument. Par conséquent, le préchargement continue à s’exécuter lorsque exec() renvoie false. GitHub-37509
  • Refactorisation de la variable Magento_CatalogWidget module à remplacer $block fonctions d’échappement avec $escaper fonctions d’échappement. GitHub-37107
  • Swaziland a été mis à jour vers Eswatini tout au long du code base. GitHub-37873
  • Ajout de la nouvelle monnaie nicaraguayenne (NIO) à la liste des devises disponibles.
  • Correction d’un nom de variable dans CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php. GitHub-38093
  • Résolution des erreurs d’arrondi de sous-total survenues dans les transactions pour les produits pour lesquels la quantité décimale a été activée. GitHub-37817
  • Le filtre de date pour la grille client Admin fonctionne désormais comme prévu en fonction des paramètres régionaux spécifiés.
  • La variable bin/magento setup:upgrade n’échoue plus en raison de la fonction $schemaPatch type de données de la variable. Auparavant, la valeur de chaîne était transmise à la variable get_class , ce qui provoquait l’erreur. GitHub-37545
  • La connexion à la base de données MySQL est maintenant restaurée si la connexion expire au cours d’une transaction lorsque vous définissez max_messages = 0 pour les consommateurs. Auparavant, la connexion était arrêtée.
  • La variable magento/module-release-notification Le module principal a été marqué comme obsolète dans le code de développement 2.4 avec ce commentaire : Starting from Magento 2.4.7, Magento_ReleaseNotification module is deprecated in favor of another in-product messaging mechanism.
  • La génération du code proxy génère désormais des fichiers proxy et d’usine comme prévu pour les déploiements exécutés en mode de production. GitHub-35252
  • L'état indien du Ladakh est maintenant répertorié comme une option dans l'adresse de l'administrateur. State menus déroulants. GitHub-33698
  • Le télex de compte à rebours des événements s’affiche désormais comme prévu sur la page de catégorie.
  • L'interdit @author La balise a été supprimée de la base de code, y compris les modules suivants : Magento_user-variable-wee, Magento_Catalog, et Magento_Customer, Magento_Wishlist, Magento_Review Tax, et dans l’ensemble de la structure. GitHub-37245, GitHub-37246, GitHub-37249, GitHub-37263
  • Le sérialiseur JSON dans le User a été remplacé par un nouveau sérialiseur plus précis (JsonHexTag). Auparavant, Magento Open Source se bloquait parfois lors de la tentative d’utilisation de données sérialisées par le sérialiseur standard lorsqu’il contenait des éléments sans séquence d’échappement. GitHub-31377
  • Les erreurs de pipeline rompues ne se produisent plus lors de l’exécution d’une réindexation complète (bin/magento indexer:reindex). Les connexions AMPQ sont maintenant fermées avant que le gestionnaire de processus ne duplique les processus.
  • Le programme de validation des messages de la file d’attente valide désormais le sous-type de tous les éléments de tableau. Auparavant, le Magento Open Source lançait une exception.
  • Configuration de la connexion à la file d’attente par rubrique dans app/etc/env.php fonctionne désormais correctement. Auparavant, la file d’attente des alertes de produit ne se générait pas correctement lorsqu’une nouvelle file d’attente de messages était créée avec un exchange personnalisé. Si la connexion à la file d’attente d’une rubrique a été configurée dans app/etc/env.php avec un exchange personnalisé, une nouvelle liaison a été créée pour toutes les rubriques comportant cet exchange personnalisé. Les vendeurs ne pouvaient pas traiter les alertes de produits.
  • Formats temporels marqués d’un /* mariadb-5.3 */ Le commentaire ne provoque plus d’erreurs bin/magento setup:install lors de la mise à niveau du serveur MariaDB vers la version 10.5.1 ou ultérieure.
  • Le pilote AwsS3 fonctionne désormais comme prévu pour remplacer l’implémentation du stockage de fichiers par défaut de base. Auparavant, les données pouvaient être corrompues lorsque ce pilote était configuré pour le stockage des fichiers. GitHub-37844
  • bin/magento config:show et set des commandes qui utilisent $_ENV prend désormais en charge l’utilisation de codes de site web et de magasin contenant des majuscules ou des majuscules pour les caractères de chameau.
  • Ajout de classes avec !important comme utilisé dans Tailwind 3 pour la prise en charge de la disposition CSS. GitHub-37568
  • Un manquant jQuery La dépendance a été ajoutée à la propriété trim-input.js fichier . GitHub-37683
  • Les détails spécifiques à un événement sont désormais transmis en tant que second attribut (context) de la variable log . GitHub-37879
  • Des valeurs de rapport d’aspect ont été ajoutées aux images de catalogue et des scripts inutiles ont été supprimés de la structure de l’interface utilisateur. GitHub-37691
  • Révision des messages d’erreur déclenchés par une configuration XML non valide pour plus d’informations. GitHub-37788
  • Refactorisation du code obsolète lié à la création de propriétés dynamiques dans l’ensemble du code base.
  • Les performances des indexeurs pour les grands magasins disposant de bases de données de produits extrêmement actives ont été améliorées. Les indexeurs indexent désormais les dernières informations sur les produits une fois pour chaque index plutôt que plusieurs fois. Auparavant, les produits disparaissaient du site web et les données sur les produits pouvaient être obsolètes sur le site web. GitHub-30012
  • mview_state l’état d’enregistrement indique désormais avec précision l’état en fonction de l’activité changelog lorsqu’une connexion à la base de données esclave est disponible. Auparavant, ces enregistrements étaient conservés dans un waiting état dans les déploiements cloud même s’il n’y avait pas de nouvelles entrées dans le journal des modifications.
  • Ajout de la prise en charge de la fonction precision option pour le format de devise afin de préserver la parité des fonctionnalités avec la valeur obsolète ZendCurrency classe .
  • Les messages de cookie ont été convertis en attributs observables et les développeurs peuvent désormais manipuler l’état , ce qui peut potentiellement déclencher des modifications de l’interface utilisateur. Auparavant, les cookies étaient en lecture seule et ne pouvaient pas être manipulés. GitHub-37308
  • Les utilisateurs administrateurs peuvent désormais générer une facture lorsque leur instance de Magento Open Source est connectée au stockage S3. Auparavant, Magento Open Source affichait cette erreur : Cannot create image resource. File not found. GitHub-35706
  • Magento Open Source consigne désormais un message d’exception comme prévu lorsque la validation du numéro de TVA par le service de validation VIES échoue. GitHub-36065
  • La variable Administrators Le nom a été supprimé de la requête utilisée pour récupérer le rôle d’administrateur lors de la création du rôle d’administrateur. GitHub-36998
  • La variable bin/magento setup:config:set n’échoue plus lorsqu’un nom d’utilisateur de base de données non valide est inclus dans app/etc/env.php fichier . GitHub-37409
  • Le tri par colonne sur des mots réservés dans un composant par défaut de l’interface utilisateur d’administration n’entraîne plus d’erreur SQL dans var/log/exception.log. GitHub-37423
  • Ajout AddDataForCostaRica.php fournir des informations sur l'état au Costa Rica. GitHub-37382.
  • Amélioration du message d’erreur pour le scénario où l’utilisateur tente d’accéder à une URL non valide à partir de l’administrateur. GitHub-35682.
  • Param $options[position] pour les symboles de devise fonctionnent désormais comme prévu et prend en charge la personnalisation de la position du symbole de devise. Auparavant, après la migration à partir de Zend Framework 1, la variable toCurrency ignorait la méthode position . Ce problème se produisait dans l’interface d’administration.
  • Mutex a été mis en oeuvre pour les commandes afin d’empêcher les conditions de concurrence lors de la mise à jour par des requêtes simultanées. Auparavant, les demandes simultanées (conditions de concurrence) pour les annulations de commande provoquaient des entrées dupliquées dans la variable inventory_reservation table.
  • La variable populateWithArray transforme désormais les propriétés de l’objet pour gérer correctement la casse, en la rendant compatible avec AbstractModel getters et setters. Auparavant, la mise en forme de la casse du serpent était incorrecte lorsque le nom de l’attribut de données contenait plusieurs lettres majuscules dans une ligne.
  • La valeur d’incrémentation automatique dans la variable catalog_product_entity_varchar s’incrémente désormais correctement après l’enregistrement d’un produit. Auparavant, cette valeur augmentait de dix.
  • Magento Open Source ne renvoie plus cette exception de système de fichiers lorsque vous essayez de vider le cache JavaScript/CSS : No such file or directory.
  • La valeur de value_id in customer_entity_int est désormais incrémentée correctement. Une requête de mise à jour est exécutée au lieu de insert on duplicate key update lors de la mise à jour d’une entité qui intègre ces attributs. Par conséquent, les colonnes à incrémentation automatique utilisées dans le modèle de VEC se développent désormais de manière linéaire. Auparavant, le processus d’auto-incrémentation des colonnes ignorait les valeurs en raison de l’échec des requêtes d’insertion. GitHub-28387
  • Suppression de l’espace blanc superflu de id attributs qui ne le nécessitent pas. (Ce bogue a été introduit par une modification du code Magento Open Source 2.4.6.)
  • Les codes de magasin n’apparaissent plus dans l’URL du magasin lorsque celui-ci est en mode magasin unique. GitHub-36831
  • Des mises à jour mineures ont été apportées à around modules externes. GitHub-31443
  • Les échantillons Helper a été restructuré afin de supprimer les alias d’importation trompeurs. GitHub-31373
  • Les utilisateurs administrateurs peuvent désormais supprimer ou renommer un sitemap.xml fichier , comme prévu. Auparavant, un utilisateur administrateur pouvait supprimer le fichier de l’administrateur, mais il restait dans le système de fichiers. GitHub-37468
  • Les coupons ne sont plus marqués comme utilisés lorsque le paiement échoue pour la commande à laquelle ils ont été appliqués. Les messages de file d’attente sont maintenant traités dans l’ordre dans lequel ils sont publiés au démarrage du consommateur. Auparavant, le premier message était extrait de la file d’attente pour vérifier simplement si les messages étaient placés en file d’attente et était rejeté par la suite, ce qui provoquait le premier traitement du premier message en dernier.
  • Magento Open Source ne renvoie plus d’exception dans le fichier journal lorsqu’un utilisateur tente d’imprimer un libellé d’expédition. Auparavant, si une extension modifiait les en-têtes de réponse contenant une pièce jointe, le système envoyait une exception dans le fichier journal.
  • La prise en charge d’autres classes de HTML a été ajoutée à elements.xsd. GitHub-36891

Correctifs généraux

  • Modification du nom de la variable reponseBody vers responseBody in app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php.GitHub-38093
  • La planification des mises à jour des produits n’efface plus les données d’attributs à sélection multiple. Auparavant, lorsqu’une mise à jour était planifiée pour un produit, les données d’attribut à sélection multiple du produit étaient effacées par erreur. GitHub-37675
  • L’enregistrement d’un produit avec une portée de magasin autre que celle par défaut n’entraîne plus l’application d’un champ de magasin aux attributs inchangés lors du chargement à l’aide de ProductRepository. GitHub-8897
  • Des messages d’erreur informatifs ont été ajoutés à la validation des champs personnalisés sur les pages Détails du produit. GitHub-38006
  • Il est désormais possible d'utiliser des caractères spéciaux dans les champs de nom. Auparavant, le caractère d’esperluette (&) était limité dans le programme de validation du nom, ce qui bloquait les opérations d’ajout ou de modification du client lorsque le nom du client contenait une esperluette. GitHub-38080
  • Les utilisateurs administrateurs disposant d’un accès limité à un magasin spécifique peuvent désormais utiliser une action de mise à jour en masse pour mettre à jour les révisions de produits. Auparavant, Magento Open Source lançait cette exception : report.CRITICAL: TypeError: array_intersect(): Argument #1 ($array) must be of type array, null given in app/code/Magento/AdminGws/Model/Models.php:439.
  • La fonctionnalité Afficher le mot de passe de la page de connexion storefront affiche désormais les mots de passe comme prévu. Auparavant, les mots de passe n’étaient pas affichés. GitHub-37432
  • La liste de comparaison des produits est désormais toujours spécifique au site web pour les clients invités et ne contient pas les produits qui ont été ajoutés à partir d’autres sites web, y compris les produits qui ont été affectés aux deux sites web.
  • Les blocs de contenu CMS contenant des émoticônes ne sont plus tronqués après l’émoticône lors de l’enregistrement dans la base de données. Auparavant, le contenu était tronqué après l’émoticône, car la configuration de base de données par défaut ne prenait pas en charge les caractères à quatre octets.
  • Les mots de passe s’affichent désormais comme prévu lorsque la variable Show Password sur la page de connexion est active.
  • Attribut système Reset Password Token de l’entité client (rp_token) a été supprimé de la validation d’attribut lors de la création du compte client et la validation de la logique n’est incluse que dans l’e-mail client qui en résulte. Auparavant, Magento Open Source n’enregistrait pas l’enregistrement du client et affichait cette erreur : Something went wrong while saving the customer.
  • Vous pouvez désormais enregistrer les modifications apportées à la grille Pages d’administration et Bloc après la suppression d’une colonne. GitHub-37525
  • Les clients peuvent désormais se connecter avec un nouveau mot de passe d’un appareil après avoir réinitialisé leur mot de passe sur un autre appareil.
  • Adresse du client administrateur Etat/Province conserve désormais la dernière valeur enregistrée comme prévu. Auparavant, lorsque vous supprimiez la valeur de ce champ, Magento Open Source continuait à afficher la valeur supprimée dans la variable Etat/Province champ . GitHub-36846
  • Les erreurs ne se produisent plus lors des demandes d’un flux RSS pour les catégories lorsque RSS Feed Top Level Category est activée. Auparavant, la navigation sur la page de catégorie de flux RSS générait des Elasticsearch. CRITICAL erreurs dans les fichiers journaux lorsque RSS Feed Top Level Category a été activé.
  • La valeur correcte est désormais enregistrée pour gws_store_groups lorsque la portée du rôle est modifiée lors de la création du rôle utilisateur. Auparavant, lorsque la portée du rôle était sélectionnée comme All, la variable gws_store_groups a été enregistrée comme nulle lors de la création de l’utilisateur, mais pas lors de la modification des rôles. En outre, si la portée du rôle a été sélectionnée comme Custom, puis la variable gws_store_groups a toujours été enregistrée comme nulle.
  • Vous pouvez désormais accéder à la page de réinitialisation du mot de passe en cliquant sur le lien Réinitialiser le mot de passe de l’administrateur sur la page de connexion de l’administrateur lorsque la variable Add Store Code to Urls est activé. Le lien Réinitialisation du mot de passe de l’administrateur a précédemment ouvert la page de connexion ou la page 404.
  • La plage de dates dans le tableau de bord des statistiques d’administration est désormais calculée en fonction du fuseau horaire défini dans les paramètres de configuration, puis convertie au format UTC pour récupérer les données de la base de données.
  • Le filtre de hiérarchie CMS fonctionne comme prévu une fois que vous avez filtré une vue de magasin, puis cliqué sur Save sur Admin Content > Hierarchy. Auparavant, cliquez sur Save actualisait la page, mais le contexte était perdu et la vue de magasin sélectionnée ne s’affichait plus.
  • Cliquez sur le bouton Send invitation (Admin) Marketing > Private sales > Invitation) envoie désormais une demande de POST avec la clé de formulaire et envoie l’invitation avec succès. Auparavant, lorsque vous cliquiez sur ce bouton, ni la méthode de POST HTTP, ni la clé de formulaire n’étaient présentes.
  • Les fichiers sans octet peuvent désormais être copiés vers un stockage distant avec AWS S3.
  • Les utilisateurs administrateurs peuvent désormais ajouter une nouvelle adresse client à partir de l’administrateur lorsqu’un client a été créé pour un autre site web dont l’ID de boutique ne correspond pas à l’ID du site web. Auparavant, Magento Open Source affichait ce message contextuel : Something went wrong. GitHub-36582
  • La page de l’éditeur de blocs CMS affiche désormais le widget correct. block_id . GitHub-29644

GraphQL

  • La variable getCustomerWishlist ne génère plus d’erreur de serveur interne lors de l’interrogation de listes contenant des produits configurables.
  • La variable customerCart query renvoie désormais toutes les remises appliquées sur les produits du lot comme prévu. Auparavant, le total des remises appliquées à un produit en bundle était renvoyé sous la forme de zéro.
  • La variable getCustomerWishlist ne génère plus d’erreur de serveur interne lors de l’interrogation de listes contenant des produits configurables.
  • La déclaration de la is_subscribed l’indicateur , son résolveur, son cache et les tests associés ont été déplacés de la variable CustomerGraphQl au module NewsletterGraphQl module .
  • La variable addProductsToCart mutation ne signale plus d’erreurs non liées dans user_errors. Auparavant, les erreurs liées au panier étaient incluses dans user_errors ainsi que les erreurs d’opération attendues. GitHub-37908
  • La variable products le filtre de produit de requête peut désormais renvoyer des résultats de correspondance partielle ainsi que des correspondances complètes. La nouvelle match_type (PARTIAL, FULL) prend en charge la spécification du type de correspondance. Auparavant, la requête renvoyait des correspondances complètes uniquement.
  • Mutex a été ajouté à la variable addConfigurableProductsToCart pour empêcher les conditions de concurrence lors d’une mise à jour par des requêtes simultanées. Auparavant, lorsqu’un commerçant envoyait deux demandes parallèles pour ajouter le même produit configurable à un panier, deux articles distincts avec le même SKU de produit étaient ajoutés. GitHub-37847
  • L’agrégation des produits dans les réponses GraphQL inclut désormais des valeurs non nulles pour les attributs lorsque Use in Layered Navigation est défini sur Filterable (no results). Auparavant, seules les valeurs non nulles étaient renvoyées.
  • Amélioration des performances de la fonction setShippingAddressForEstimate requête pour les opérations liées au panier qui impliquent des attributs de produit personnalisés. Auparavant, la requête chargeait tous les attributs de produit lorsque les paramètres étaient envoyés en tant que variables.
  • La variable products query ConfigurableProduct.configurable_options renvoie désormais uniquement les valeurs pour lesquelles au moins un produit est activé. Auparavant, ce champ renvoyait des produits simples désactivés.
  • Amélioration des performances de la fonction GetCategories query en réduisant le nombre de requêtes SQL superflues qu’elle génère.
  • La gestion des erreurs d’adresses pour les composants de bibliothèque GraphQL fonctionne désormais comme prévu.
  • La variable products query renvoie désormais tous les détails pertinents de la tarification de storefront lorsque la tarification dynamique est définie sur aucune et que des remises sont appliquées. Auparavant, la plage de prix des produits n’était pas renvoyée. GitHub-35649
  • Les noms de transaction GraphQL incluent désormais des noms de requête de niveau supérieur uniquement dans les journaux New Relic. Auparavant, les noms de transaction incluaient également des noms de requête secondaires.
  • La gestion des erreurs d’adresses pour les composants de bibliothèque GraphQL fonctionne désormais comme prévu.
  • Lorsque le paramètre Visibilité d’un produit est défini sur Catalog, products les requêtes sur ce produit résolvent désormais correctement le paramètre . Auparavant, tout filtre fourni était activé sur le Visibility: Catalog . GitHub-36591
  • La variable customer la requête renvoie désormais une product_sale_price champ qui inclut la taxe sur les commandes lorsque le prix du produit a été configuré pour inclure la taxe. GitHub-36946
  • Attributs de produit de type DateTime mappez maintenant à la fonction FilterRangeTypeInput filtre dans les requêtes de produits. Auparavant, ces attributs étaient mappés sur FilterMatchTypeInput. Suite à cette modification, interroge le filtrage sur DateTime attributs requis from et to plutôt que de correspondre aux valeurs.
  • La variable customer la requête renvoie désormais uniquement les révisions client liées à une vue de magasin spécifique, comme prévu lorsqu’elle est filtrée par identifiant de magasin.
  • La variable categories ne renvoie plus d’erreur lorsque la variable items.redirect_code la valeur de réponse contient une valeur nulle. GitHub-36675
  • La variable changeCustomerPassword La mutation déclenche désormais l’envoi d’un courrier électronique comme prévu après la réinitialisation d’un mot de passe.
  • urlResolver et route les requêtes renvoient désormais un résultat lorsque la variable Target Path de la réécriture de l’URL est une URL absolue. Auparavant, la variable urlResolver la requête renvoyait NULL lorsque vous l’utilisiez pour récupérer les données de redirection.
  • La variable products la requête renvoie désormais les libellés corrects. GitHub-29635
  • La variable categoryList la requête renvoie désormais une valeur renseignée. product de la options bloc pour les produits enfants des produits de bundle comme prévu. Auparavant, aucune information sur le regroupement de produits enfants n’était renvoyée.
  • La variable route query renvoie désormais les itinéraires pour les catégories et les produits comme prévu sans erreur de serveur interne. GitHub-36544
  • La variable products query now récupère url_key lorsque plusieurs catégories sont sélectionnées.
  • products les requêtes renvoient désormais des agrégations uniquement pour les produits affectés au catalogue partagé spécifié.
  • Des noms de transaction ont été ajoutés aux transactions GraphQL New Relic. GitHub-36874
  • La variable OptionValueProvider class get() renvoie désormais une valeur d’option d’attribut en fonction de la variable option_id comme prévu. Auparavant, il renvoyait une erreur. GitHub-35910
  • La variable products query renvoie désormais toutes les agrégations disponibles (filtres) et leurs libellés correctement traduits. Auparavant, les libellés d’agrégation de prix et de catégories n’étaient pas traduits comme prévu. GitHub-36140
  • Vous pouvez désormais utiliser un fragment ProductCard lors de l’interrogation related_products, upsell_products, et crossell_products on ProductInterface. GitHub-29769
  • La variable products la requête renvoie désormais les produits associés, de mise à niveau et de vente croisée dans l’ordre dans lequel ils ont été enregistrés. GitHub-36461
  • Les requêtes GraphQL renvoient désormais les données de produits associées triées par position. GitHub-33010
  • category_url_path a été ajouté à ProductAttributeFilterInput, qui prend en charge la demande de tous les produits pour une catégorie dans une seule requête. GitHub-32460
  • Correction d’une erreur dans laquelle la méthode qui définit le magasin actuel dans une mutation GraphQL était exécutée avant la méthode qui gère la validation. GitHub-31336

Image

  • Le formulaire de chargement de l’icône Admin favicon prend désormais en charge .ico types de fichiers. GitHub-34858

Import/export

  • Le processus d’importation de produits analyse désormais les valeurs avec le séparateur correct. Auparavant, le processus d’importation utilisait la barre verticale ("|") pour analyser les valeurs à sélection multiple jusqu’à ce que le séparateur de valeurs déterminé ne soit pas égal à la valeur par défaut. Le processus d’importation a ensuite échoué.
  • Les redirections 301 sont désormais automatiquement créées lorsque URL Key sont mises à jour par importation CSV.
  • Les taux de la table d’expédition sont désormais mis à jour comme prévu dans le fichier CSV d’importation des taux de la table. Le fichier de téléchargement de taux de tableau est temporairement stocké jusqu’à ce que la tâche cron du processeur de configuration asynchrone s’exécute. Cette tâche cron sélectionne le nouvel emplacement du fichier et le traite en conséquence. Auparavant, les taux de tableau n’étaient pas mis à jour comme prévu, car le processeur asynchrone recherchait le fichier au mauvais emplacement.
  • La grille Exporter les fichiers affiche désormais tous les fichiers exportés, indépendamment de l’horodatage. Auparavant, la grille n’affichait pas tous les fichiers exportés ayant le même horodatage. GitHub-36951
  • Les produits avec des options personnalisables peuvent désormais être importés avec succès. Auparavant, les données d’options étaient perdues lors de l’importation. GitHub-37598
  • Les caractères spéciaux des fichiers CSV exportés sont désormais représentés comme prévu dans Excel. GitHub-37921
  • Importer des sources de stock et des adresses de client à l'aide du Customers and Addresses (single file) se termine maintenant correctement.
  • L’importation du produit n’échoue plus en raison d’un manque de mémoire. Auparavant, l’importation d’un nombre indéfini de produits dans une base de données qui contenait déjà environ dix millions de produits échouait en raison d’un manque de mémoire.
  • Les contrôles de validation interrompent désormais le processus d’importation comme prévu lorsqu’il n’y a aucune donnée valide à importer. Magento Open Source affiche désormais cette erreur : There are no valid rows to import. Auparavant, la validation était transmise sous ces conditions, mais le processus d’importation échouait avec ce message : entity values are mixed. GitHub-32905
  • L’importation de clés d’URL avec le même produit n’écrase ou ne supprime plus les clés de vue de magasin par défaut existantes. Les réécritures d’URL sont désormais régénérées pour les vues de magasin uniquement lorsqu’il n’y a pas de remplacement. url_key . Auparavant, l’importation de réécritures d’URL avec la même clé d’URL remplaçait la clé d’URL de vue de magasin par défaut existante. (key_store Les réécritures d’URL ont été supprimées, mais la réécriture de l’URL au niveau de la vue de magasin par défaut pour le produit a toujours été définie sur key_store.)
  • Le nombre de produits ne change plus de manière inattendue lors de l’importation. La purge du cache est maintenant reportée jusqu’à après le processus d’importation.
  • L’état des actions d’importation planifiées représente désormais précisément le succès ou l’échec de l’opération d’importation. Auparavant, toutes les actions étaient consignées comme ayant réussi.
  • Magento Open Source prend désormais en compte la variable Disable Automatic Group Change Based on VAT ID lors de l’importation des enregistrements de client. Auparavant, la variable disable_auto_group_change dans les fichiers d’importation a été ignorée. GitHub-36409
  • Magento\Framework\Convert\Excel gère désormais correctement les nombres précédés d’un espace. Le code XML Excel code désormais les champs en tant que String. Auparavant, l’auteur Excel encodait ces valeurs en tant que number, ce qui générait des fichiers non valides. GitHub-33422
  • Les marchands peuvent désormais spécifier les paramètres régionaux dans lesquels les données d’importation sont présentées et la manière dont les validateurs de données doivent analyser ces données. Si aucune valeur de paramètre régional n’est spécifiée, Magento Open Source utilise les paramètres régionaux de configuration par défaut (et non la vue de magasin par défaut) pour analyser les données. Dans les processus d’administration, les processus d’import et d’export continuent d’utiliser les paramètres régionaux de l’interface utilisateur d’administration pour importer, analyser et formater les données, respectivement.
  • Importer des produits avec country_of_manufacture Les attributs créés par un utilisateur administrateur avec un paramètre régional différent de celui de l’utilisateur administrateur qui importe les produits ne génèrent plus d’erreur de validation. Auparavant, cette opération d’importation pouvait entraîner une erreur de validation sur la variable country_of_manufacture attribut.
  • Les produits exportés ont désormais la valeur correcte manage_stock lorsque la variable use_config_manage_stock value est égal à 1. Auparavant, cette valeur par défaut était incorrecte.
  • Magento Open Source affiche désormais un message d’erreur informatif dans la grille d’importation planifiée lorsqu’une image n’est pas importée correctement au cours d’une opération d’importation planifiée. Auparavant, aucun message d’erreur ne s’affichait.
  • Le processus d’importation de produit n’est plus interrompu lorsque des images de produit sont manquantes. Auparavant, lorsqu’une image de produit était manquante lors de l’importation d’un service tiers à l’aide d’un fichier CSV, Magento Open Source affichait cette erreur : Maximum error count has been reached or a system error is occurred!.
  • Le processus d’importation de produit ne génère plus d’erreur de validation lorsqu’une valeur d’attribut dans configurable_variations contient une virgule.
  • Le décodage a été exclu du processus d’exportation. Le texte du fichier d’exportation CSV reste inchangé après l’importation. Par conséquent, la description ne change pas après la réimportation. Auparavant, les balises de HTML étaient supprimées dans l’éditeur de Page Builder après l’exportation et l’importation du produit.
  • Les configurations autres que par défaut (portée du site web ou du magasin) ajoutées en tant que variables d’environnement n’interrompent plus la variable app:config:import traiter avec une erreur de récursion.
  • Les indexeurs de prix et de recherche catalogue en mode Mise à jour en mode Enregistrer ne sont plus invalidés après l’importation. Auparavant, la version du document de l’indexeur Elasticsearch changeait de version lorsque des produits nouveaux et existants étaient importés.
  • Les rapports de produit sont désormais exportés vers la variable var répertoire . Auparavant, ces rapports étaient exportés vers le répertoire racine du document, qui est un répertoire en lecture seule dans les instances cloud.
  • Les champs d’adresse client à sélection multiple vides n’interrompent plus ou n’interrompent plus le processus d’exportation.

Index

  • Amélioration des performances de la fonction catalogrule_product indexeur lorsqu’aucune règle de catalogue n’est définie. GitHub-34784
  • Les problèmes de performances de l’indexeur de prix ont été résolus. Les performances de l’indexeur ne se dégradent plus progressivement. L’indexeur a été restructuré pour augmenter la vitesse de traitement de l’indexeur en modifiant la manière dont les tables temporaires sont créées. Ces tables temporaires sont désormais recréées au lieu d’être traitées par des instructions de DELETE plus chronophages.
  • Les performances de l’indexeur de prix ont été améliorées. Un indice d’index a été ajouté à l’indexeur de prix, ce qui améliore les temps d’exécution des requêtes MySQL qui sont déclenchées lors de l’indexation.
  • Tous les indexeurs utilisent désormais les mêmes couleurs pour représenter l’état de l’indexeur. GitHub-34648
  • Les performances de l’indexeur de produits de règle de catalogue dans les déploiements où les règles ne sont pas affectées à tous les sites web ont été améliorées.
  • Création d’un type de produit personnalisé lorsque les indexeurs sont définis sur Update on schedule ne provoque plus la mise à jour de l’index cron tâche à échouer. GitHub-36471
  • bin/magento indexer:reindex customer_grid n’échoue plus avec une erreur MySQL lorsque la grille du client inclut des attributs client personnalisés nouvellement créés. GitHub-36233
  • Le changement du mode d’indexeur pour plusieurs indexeurs (c’est-à-dire un changement de mode d’indexeur d’action de masse) modifie désormais le mode d’un indexeur uniquement lorsque le mode actuel diffère de celui appliqué. Cela améliore les performances en empêchant les déplacements inutiles vers la base de données. GitHub-36823
  • L’indexation des produits avec de nombreuses options d’attribut a été améliorée. GitHub-36386

Infrastructure

  • Ajout d’un élément manquant return à l’utilisation de l’administrateur d’activer le contrôleur. Auparavant, aucune variable return et le contrôleur dans FrontendController était mal gérée. GitHub-31374
  • MySQL remplacé CREATE TEMPORARY TABLE ... LIKE avec refactorisé CREATE TEMPORARY TABLE pour la conformité avec MySQL 8.x. GitHub-37926
  • Magento Open Source n’inclut plus le chemin d’accès complet à la racine du serveur dans le message d’erreur qui s’affiche lorsqu’une requête HTTP incorrecte a été envoyée au serveur. Seules les chaînes sont désormais transmises à la variable explode comme second argument.
  • restricted_classes.php a remplacé Zend_Validate_File_Upload. Auparavant, le programme de validation se bloquait lors du chargement d’un fichier d’importation supérieur à la valeur configurée dans php.ini . GitHub-37281
  • Le moteur de modèle de courrier électronique peut désormais traiter correctement certaines directives imbriquées (par exemple : {{if}}{{depend}}...{{/depend}}{{/if}}). GitHub-36438
  • product les requêtes avec données d’agrégation renvoient désormais les valeurs d’étiquette correctes pour les attributs de produit de type booléen. GitHub-29123
  • Ajout de régions ukrainiennes à la directory_country_region table. GitHub-35187
  • Les fichiers CSS ne sont plus corrompus lors de la fusion var/tmp et pub/static se trouvent sur différents systèmes de fichiers et CSS Merging Enabled est activée. Les fichiers temporaires ont été créés dans le même répertoire statique que le fichier cible pour s’assurer que les deux fichiers se trouvent sur le même système de fichiers. Par conséquent, l’appel pour le renommer est atomique. GitHub-29172
  • Correction d’une erreur potentielle lors de l’appel d’une fonction de membre getId() on int, qui déclenchait parfois une exception lorsqu’un client était affiché dans l’administrateur.
  • Les vérifications de type sont désormais appliquées pour le type de tableau dans le processeur de configuration du thème de conception. GitHub-34440

Inventory management

  • Les produits sont désormais automatiquement renvoyés à l’état En stock après une note de crédit incluant un retour de la quantité du produit. Auparavant, si un produit était en rupture de stock, mais qu’une note de crédit renvoyait le stock de ce produit, les vendeurs devaient modifier manuellement l’état du stock de produit.
  • Amélioration des performances de l’indexeur d’inventaire en mode asynchrone en supprimant les requêtes redondantes pour réindexer les éléments source par défaut.
  • Correction de problèmes liés à l’indexeur d’inventaire qui affectaient la précision du nombre de stocks de storefront pour les produits configurables. GitHub-36421
  • Mise à jour des éléments source du stock via REST V1/inventory/source-items fonctionne désormais plus rapidement. L’appel ne déclenche plus une réindexation ou une opération de nettoyage du cache sur les produits d’inventaire inchangés.
  • REST V1/products/<sku> déclenche désormais une réindexation automatisée du stock lors de la mise à jour de l’état du stock d’un produit. Auparavant, une réindexation de stock n’était pas déclenchée pour le produit qui était mis à jour.
  • L’état du stock de produits configurables est désormais mis à jour sur le storefront, comme prévu, lorsque les produits enfants sont mis à jour par V1/inventory/source-items.
  • La variable POST <store_code>/V1/inventory/source-items L’appel REST valide désormais la charge utile pour l’espace dans les éléments source d’inventaire renvoyés et envoie un message d’erreur sur la validation, le cas échéant.
  • Les vendeurs peuvent désormais informer les acheteurs qu’une commande est prête à être récupérée lorsque la variable No Manage Stock est activé pour un produit. Auparavant, lorsque ce paramètre était activé, Magento Open Source affichait ce message d’erreur : Your order is not ready for pickup.
  • Les vendeurs peuvent désormais créer une note de crédit pour les commandes à partir desquelles un produit simple associé à un produit configurable a été supprimé. Auparavant, les commerçants ne pouvaient pas créer l’avoir, et Magento Open Source envoyait une TypeError exception.
  • Le nombre source de la grille d’administration renvoie désormais des enregistrements valides après l’application d’un filtre. Auparavant, la variable getSourcesCount renvoie toujours le nombre total de sources après l’application d’un filtre.
  • La page Catégorie ne redirige plus vers le tableau de bord Admin lorsque vous triez les produits à l’aide de l’option Déplacer du stock vers le bas. Le problème a été résolu en ne plaçant l’instruction de jointure SQL dans l’instruction conditionnelle qu’après s’être assuré qu’elle n’est pas déjà incluse. Auparavant, la page était redirigée vers le tableau de bord Admin avec le message :Invalid security or form key. Please refresh the page.
  • AUTO_INCREMENT de inventory_source_item n’augmente plus avec chaque UPDATE opération. Auparavant, chaque mise à jour augmentait le AUTO_INCREMENT de ce tableau, ce qui a finalement entraîné la AUTO_INCREMENT être hors plage lors de l’ajout d’un nouvel enregistrement à la variable inventory_source_item table. Par conséquent, les utilisateurs administrateurs ont reçu l’erreur suivante lorsqu’ils ont tenté de créer un produit à partir de l’administrateur : Numeric value out of range....
  • Les utilisateurs administrateurs peuvent désormais ajouter un produit au panier d’un client à partir de l’administrateur pour une portée de vue de magasin spécifique avec Inventory management. Auparavant, l’ID de stock n’était pas déterminé correctement et les utilisateurs administrateurs ne pouvaient pas ajouter le produit au panier du client.
  • La synchronisation entre le stock et le catalogue ne repose plus sur la variable Synchronize with Catalog paramètre de configuration . Auparavant, les produits étaient correctement synchronisés uniquement lorsque ce paramètre était activé.
  • Magento Open Source ne renvoie plus d’erreur après le rechargement de la page lorsqu’un acheteur déduit une quantité de produit d’une commande qui correspond à la plage de produits disponibles lors de la sélection de la source d’expédition.
  • L’état du stock de produits configurables est désormais correctement mis à jour lorsqu’un produit configurable et ses produits enfants. Stock Availability est mise à jour par une mise à jour de stock en masse. Auparavant, vous ne pouviez pas renvoyer un produit configurable et ses produits enfants en stock par mise à jour en masse.
  • Le type de données pour les sources autres que les sources par défaut a été mis à jour pour DECIMAL (12, 4) pour prendre en charge jusqu’à huit nombres entiers, ce qui est la même limite implémentée pour le stock par défaut. Cette valeur est désormais synchronisée avec les pages d’ajout et de modification des produits par l’administrateur, qui prennent en charge la validation des entrées pour huit chiffres au maximum pour tous les types de sources d’inventaire. Auparavant, l’entrée pour la variable Quantity (pour les sources autres que les sources par défaut) ne prenait en charge que six chiffres au maximum.
  • Les sources par défaut et non par défaut affichent désormais les informations correctes pour la quantité vendable d’un produit lorsqu’une source autre que la source par défaut qui a été commandée sur le storefront est traitée pour envoi. Auparavant, Magento Open Source affichait un état de stock incorrect pour les sources de produits.
  • \Magento\Catalog\Model\Product::getIsSalable() renvoie désormais l’état du stock en fonction de la portée définie dans l’objet de produit (\Magento\Catalog\Model\Product::getStoreId()). Auparavant, getIsSalable() a renvoyé l’état du stock en fonction de la portée actuelle, quel que soit l’objet de produit.

Journalisation

  • Les utilisateurs administrateurs peuvent désormais consulter les journaux des actions en bloc créées par les intégrations dans la section Journal des actions en bloc de l’administrateur.

Connexion

  • La réinitialisation d’un mot de passe dans un navigateur puis la connexion à l’aide d’un autre navigateur ne génère plus d’exception. GitHub-36447
  • Les clients sont désormais redirigés vers la page de connexion après l’activation d’un compte comme prévu. Auparavant, les clients étaient automatiquement connectés.

Newsletter

  • Commerce vérifie désormais si la fonctionnalité d’abonnement à la newsletter est activée avant d’accepter de nouveaux abonnés à une newsletter. GitHub-33040

Commandes

  • Les produits déplacés du panier d’administration vers la liste des articles à commander sont désormais supprimés comme prévu du panier. GitHub-37538
  • Les commerçants peuvent désormais créer des notes de crédit comme prévu pour le remboursement partiel des commandes qui ont été payées en partie par des points de récompense. Auparavant, lorsqu’un commerçant créait un retour partiel, l’état de la commande était incorrectement identifié comme étant fermé, et la page de commande de l’administrateur n’affichait pas les options de note de crédit.
  • Magento Open Source applique désormais le montant de remise correct aux commandes partiellement annulées. Auparavant, le montant de la remise était calculé dans la variable base_discount_cancelled était incorrectement calculée lorsqu’une commande était modifiée. La prise en charge de valeurs négatives a été ajoutée aux factures pour les commandes remises.
  • Magento Open Source trie désormais les attributs d’adresse client personnalisés en fonction de l’ordre de tri fourni lorsque l’utilisateur administrateur a créé la commande dans l’administrateur.
  • La page Grille de commandes d’administration se charge désormais comme prévu lorsqu’un commerçant lance une recherche à partir de cette page. Auparavant, lorsqu’un commerçant tentait de rechercher des commandes dans ce tableau, la page se figeait et le Magento Open Source affichait une Request-URI Too Long dans la console du navigateur.
  • Amélioration des performances de la fonction OrderRepository::get() en réduisant le nombre de chargements d’une commande à partir de la base de données. Auparavant, cette méthode chargeait une commande plusieurs fois. GitHub-36636
  • Les vendeurs peuvent désormais générer des notes de crédit pour les commandes qui contiennent certains articles avec un total nul lorsque d’autres articles de commande sont disponibles pour remboursement. Auparavant, les vendeurs ne pouvaient pas effectuer plusieurs remboursements lorsqu’un client bénéficiait d’une remise de 100 % sur certains articles de la commande.
  • Les liens entre les produits enfants et parents s’affichent désormais sur la page de commande lors du réorganisation du produit enfant à partir de l’administrateur. GitHub-37028
  • L’émulation commence maintenant pendant send() les appels une fois que l’émulation a été effectuée au cours de la getInfoBlockHtml() et aucune erreur n’est consignée. Auparavant, la variable system.log a été inondé avec cette erreur : main.ERROR: Environment emulation nesting is not allowed. GitHub-35603
  • Les vendeurs peuvent désormais générer des notes de crédit pour les commandes qui contiennent certains articles avec un total nul lorsque d’autres articles de commande sont disponibles pour remboursement. Auparavant, les vendeurs ne pouvaient pas effectuer plusieurs remboursements lorsqu’un client bénéficiait d’une remise de 100 % sur certains articles de la commande.
  • Les liens entre les produits enfants et parents s’affichent désormais sur la page de commande lors du réorganisation du produit enfant à partir de l’administrateur. GitHub-37028
  • La section d’en-tête de la page de commande contient désormais les informations attendues sur la facture, l’avoir et l’expédition envoyés. GitHub-27474
  • Les notes de crédit pour les commandes qui ne contiennent qu’un seul produit configurable sont désormais générées correctement. Auparavant, la variable isLast() La fonction ne renvoie pas true comme prévu. GitHub-36722
  • Amélioration des performances de la fonction aggregate_sales_report_bestsellers_data tâche cron en optimisant la requête de données principale.
  • L’état de la commande est maintenant correct lorsqu’un remboursement partiel a été effectué pour une commande contenant des produits en regroupement. Auparavant, l’état de la commande était répertorié comme étant complet après l’émission d’un remboursement partiel, même si la commande restante n’était pas terminée. GitHub-37377
  • Les acheteurs ne peuvent plus commander un produit à l’aide d’un prix personnalisé lorsqu’une commande est générée pour la première fois à partir de l’administrateur à l’aide du prix personnalisé unique. Auparavant, si une commande contenait un article avec des prix personnalisés, ce prix personnalisé était appliqué pour les autres commandes passées avec la fonctionnalité de réorganisation.
  • Les acheteurs ne peuvent plus enregistrer les états de commande incorrects dans la page de commande. L’état de la commande n’est plus remplacé par Terminé lors de l’expédition d’un élément. Auparavant, Magento Open Source ne vérifiait pas l’état actuel de la commande avant d’enregistrer l’état de la commande après qu’un acheteur ait saisi un commentaire. GitHub-36562
  • La grille des commandes client est désormais synchronisée de manière asynchrone avec toutes les commandes, comme prévu. GitHub-36562
  • La fonctionnalité de filtrage par date d’achat de la section commandes client de la page commandes fonctionne désormais comme prévu. Auparavant, une erreur JavaScript se produisait lorsque la logique de conversion du fuseau horaire entraînait une erreur lorsque le même fuseau horaire était fourni à la méthode .
  • Le tableau de bord Admin affiche désormais les statistiques de commandes correctes au premier chargement. Auparavant, le tableau de bord présentait des informations de commande incorrectes, mais présentait les informations correctes une fois la période mise à jour.
  • Les utilisateurs administrateurs sont désormais redirigés comme prévu vers la page de commande après avoir sélectionné une vue de magasin lors de la création d’une commande à partir de l’administrateur.
  • La variable GET V1/orders/<OrderID> endpoint renvoie désormais des informations sur les produits configurables et simples dans l’ordre, quel que soit l’état du stock des produits simples. Les utilisateurs administrateurs ne peuvent passer des commandes maintenant que si les articles (produits) sélectionnés sont en stock ou pouvant être vendus. Auparavant, cette API renvoyait des informations uniquement sur les produits en stock.
  • La page de note de crédit ne se bloque plus lorsque la livraison gratuite est activée lorsque les prix d’expédition incluent des taxes et que les calculs de taxe sont appliqués après les remises. Auparavant, le Magento Open Source lançait une Division by zero exception. GitHub-36800
  • En utilisant la variable rest/V1/orders/{id}/comments endpoint pour publier un commentaire sur une commande sans indiquer l’état de la commande n’a plus d’incidence sur l’affichage de la commande. Auparavant, l’état de la commande était consigné comme NULL dans la variable sales_order et sales_order_grid et ni la page Mes commandes ni la grille Commandes d’administration n’affichaient la commande. GitHub-34180

Page Builder

  • Les images conservent désormais les proportions correctes lorsqu’elles sont redimensionnées dans le créateur de pages. GitHub-37493
  • Le Créateur de pages affiche désormais les messages d’erreur selon les besoins lorsque vous tentez de télécharger une image dont la taille est supérieure à la taille maximale spécifiée. Auparavant, Commerce affichait un message d’alerte contextuel pour les fichiers image chargés dont la taille était inférieure au nombre maximal spécifié.
  • Les curseur de produit de la page CMS incluent désormais les produits parents de tous les produits enfants qui ont été sélectionnés pour inclusion dans le curseur. Auparavant, les produits parents étaient exclus du curseur.
  • Le contenu converti en HTML s’affiche désormais dans les modèles d’email comme prévu lorsque la variable Magento_AsyncConfig est désactivé. Auparavant, les modèles d’email contenaient un HTML brut uniquement.
  • Les performances des opérations d’enregistrement de Page Builder dans le navigateur Chrome ont été améliorées.
  • L’ajout d’un produit à un panier à partir du carrousel du Créateur de pages ne duplique plus la quantité d’article des pages comportant deux widgets différents affichant les mêmes produits.
  • Le Créateur de pages n’ajoute plus le tabindex Attribut de HTML aux balises de lien hypertexte a lorsque vous modifiez un lien hypertexte, enregistrez un modèle.
  • Le widget de produits et l’aperçu du Créateur de pages gèrent désormais correctement les caractères spéciaux de HTML. Auparavant, le widget de produit n’affichait pas correctement les SKU qui contenaient la variable & caractère.
  • Le contenu de l’élément de texte Page Builder est maintenant mis à jour comme prévu lorsque vous sélectionnez et mettez à jour le bloc de contenu complet en mode aperçu.
  • La copie et le collage de texte d’un éditeur de texte de Page Builder vers un autre fonctionnent désormais comme prévu. Auparavant, la page dans laquelle vous tentiez de coller du texte ne pouvait pas être enregistrée et Magento Open Source affichait cette erreur de console : [ERROR] Page Builder was rendering for 5 seconds without releasing locks..
  • Page Builder column-block le type de contenu créé dans les anciennes versions du Créateur de pages s’affiche désormais correctement.
  • Le filtrage de la description des métadonnées de produit lors de la création du produit à partir de l’administrateur a été amélioré. Auparavant, si le créateur de pages était activé, la description des métadonnées du produit était générée en fonction de la valeur par défaut. {{name}} {{description}} Masque. Le masque de méta-description du produit par défaut est désormais composé de {{name}}. GitHub-36107
  • L'ajout d'un bloc dynamique sans contenu ne déclenche plus d'erreur.
  • Les problèmes d’affichage des colonnes dans le contenu du Créateur de pages ont été résolus. Auparavant, column-line le contenu du type de contenu n’a pas été rendu. GitHub-3949

Paiement

  • Magento Open Source gère désormais correctement les erreurs 502 de PayPal en empêchant la création de commandes lorsque cette erreur se produit. Auparavant, les commandes étaient toujours créées malgré une erreur 502 de PayPal, ce qui entraînait des incohérences entre les enregistrements des Magento Open Sources et ceux de PayPal.
  • Les transactions PayPal Express Checkout incluent désormais les SKU des produits enfants et les titres complets des produits. La variable Magento/Paypal/Model/Cart.php collecte désormais les SKU des produits enfants avec leur titre de produit parent afin d’identifier le titre du produit avec le SKU enfant. GitHub-36808
  • La variable Card Security Code Does Not Match le paramètre de configuration est maintenant traité comme prévu pendant le processus de paiement de Payflow Pro. Auparavant, ce processus d’évaluation n’était jamais terminé, ce qui bloquait l’extraction.
  • L’option de mode de paiement Vault n’apparaît plus dans le workflow de passage en caisse de l’administrateur lorsque l’acheteur ne dispose pas d’un jeton Vault. GitHub-36273
  • La variable Venmo peut maintenant être masqué lorsque les boutons PayPal sont activés. Auparavant, la variable Venmo Le bouton n’a pas pu être supprimé du panier, du mini-panier, des détails du produit ou des pages de passage en caisse.
  • Les acheteurs peuvent désormais sélectionner un mode de livraison tout en appliquant le code de coupon lors du passage en caisse. Auparavant, dans ces conditions, le Magento Open Source lançait une erreur et attribuait à la commande le transport à taux fixe.
  • Les problèmes liés au traitement de vitrine des méthodes de paiement de crédit PayPal et PayPal ont été résolus.
  • Correction de problèmes liés aux URL de secours pour les commandes payées avec des paiements idéaux lorsque le paiement local est activé.
  • Les acheteurs ne peuvent plus créer de commande PayPal sans ajouter de nom.

Braintree

  • Les informations de paiement des Braintree sont désormais enregistrées par boutique et les acheteurs ne voient désormais que les informations de carte qui ont été enregistrées dans la boutique dans laquelle ils font leurs achats. Auparavant, les acheteurs pouvaient voir les informations de carte stockées de tous les magasins pendant le passage en caisse. GitHub-34253
  • Les acheteurs peuvent désormais extraire une commande envoyée à plusieurs adresses à l’aide d’un mode de paiement Braintree lorsque la coffre-fort pour le paiement par carte est désactivé. GitHub-37615
  • Les commandes partiellement facturées sont désormais capturées comme prévu dans le compte correct dans les déploiements où les marchands ont deux ID de compte marchand différents pour la même devise dans leur compte Braintree.
  • Le Magento Open Source ne génère plus d’erreur lors de la création d’une deuxième facture partielle pour une commande passée par Braintree lorsque la variable Enable Vault for Card Payments est activée. Auparavant, lorsqu’un commerçant tentait de créer une seconde facture, le Magento Open Source envoyait cette erreur : Your payment could not be taken. Please try again or use a different payment method. Payment method token is invalid.
  • L’option de mode de paiement Braintree Vault n’est plus automatiquement désélectionnée dans le workflow de passage en caisse lorsqu’un acheteur met à jour son adresse de facturation. Auparavant, le mode de paiement était désélectionné lorsque l’acheteur désélectionnait la variable My billing and shipping address are the same bouton .
  • Résolution de problèmes liés à l’extraction avec PayPal via Braintree après la mise à niveau d’Adobe Commerce 2.4.5-p2. GitHub-37242
  • Les numéros de téléphone sont désormais rendus comme prévu avec les adresses dans les champs d’adresse de livraison modale de payement Google. Auparavant, les numéros de téléphone étaient absents.
  • Les commandes sont maintenant placées avec le Braintree lorsque la réponse du Braintree inclut une valeur vide pour la variable threeDSecureInfo/eciFlag. Auparavant, une erreur PHP se produisait lors de l’extraction lorsque cette valeur était vide.
  • Magento Open Source ne renvoie plus d’erreur lorsqu’un acheteur applique un coupon sur la page de vérification de commande lors de l’extraction avec Google Pay à partir du mini panier. Auparavant, les acheteurs étaient redirigés vers une page 404.
  • Les acheteurs peuvent désormais effectuer le passage en caisse à l’aide des paiements du Braintree et de Magento Open Source 2.4.6 avec ReCAPTCHA v2 ou v3 invisible. GitHub-37241
  • Les acheteurs ne peuvent plus cliquer sur le bouton PayPal pour acheter un produit configurable sans avoir au préalable sélectionné les options requises. Auparavant, les acheteurs pouvaient cliquer sur le PayPal et ont ensuite été redirigés vers la page produit avec une erreur :
  • La variable PayPal s’affiche désormais comme prévu sur les pages panier et mini panier. Auparavant, ce bouton n’était pas affiché sur la page du panier et était dupliqué sur la page du mini panier.

Performances

  • Plusieurs clics dans la variable Ventes > Commandes le menu déroulant d’action de masse de la page ne génère plus plusieurs requêtes de POST. GitHub-37997
  • Uniquement 200 ou 404 les réponses sont mises en cache lorsqu’un acheteur accède à une page qui déclenche une redirection 301, sauf si l’en-tête Cache-Control de la page contient . private . Auparavant, un état HTTP 200 avec private dans l’en-tête Cache-Control était mis en cache et un état HTTP 301 était mis en cache, sauf s’il contenait private dans son en-tête Cache-Control. GitHub-36492
  • Suppression de la valeur inutilisée Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper de Magento\Catalog\Model\ProductRepository. Auparavant, ProductRepository a chargé cet assistant, qui est un Adminhtml contrôleur. GitHub-37864
  • Amélioration des performances de la vitesse de chargement des pages lorsque de nombreuses options sont ajoutées aux produits regroupés. GitHub-29409
  • Processus d’affectation de produits à des catégories à partir du Products in Category a été optimisé. La variable Assign et Remove des boutons Add Product by SKU sont désormais désactivés jusqu’à ce que les produits soient complètement chargés dans la grille. Auparavant, les utilisateurs administrateurs ne pouvaient pas ajouter de produits par SKU dans les catalogues qui contenaient des millions de produits enregistrés.
  • Les performances de la variable addProductToCart l’exécution de mutations avec de nombreux attributs de produit personnalisés s’est améliorée. Auparavant, lorsque cette mutation était exécutée avec de nombreux attributs de produit (environ 1 000), Magento Open Source tentait de charger tous les attributs de produit.
  • Les problèmes de performances lors du chargement des attributs de produit utilisés par les règles de panier ont été résolus. Seuls les attributs de produit des règles de panier actives sont désormais chargés.
  • La variable bin/magento setup:perf:generate-fixtures setup/performance-toolkit/profiles/ee/small.xml s’exécute maintenant correctement si l’exécution se fait plusieurs fois. Auparavant, cette erreur était générée lors de l’exécution de plusieurs fois : Coupon with the same code already exists.

Promotion

  • Les effets des Fixed amount discount for whole cart règle de prix, lorsqu’elle est appliquée à la variable Apply to shipping amount , est désormais répartie proportionnellement entre les produits et les montants d’expédition, conformément aux attentes. Auparavant, les calculs de remise étaient incorrects.
  • La variable Discard Subsequent Rules est désormais appliqué comme prévu. Lorsque ce paramètre est activé, d’autres règles de priorité basse peuvent être appliquées à un autre produit uniquement. GitHub-35707

reCAPTCHA

  • L’invisible reCAPTCHA v3 fonctionne désormais comme prévu pour la page de passage en caisse. Sign in bouton . Auparavant, les acheteurs ne pouvaient pas se connecter et Commerce renvoyait des erreurs JavaScript.
  • Le Google reCAPTCHA dans le workflow de passage en caisse fonctionne désormais comme prévu pour les contrôles, les commandes et les modes de paiement personnalisés.
  • Les formulaires Adobe Commerce ne peuvent plus être envoyés avant le chargement de la case à cocher Google ReCAPTCHA .
  • Le widget reCAPTCHA précède désormais le Place Order sur la page de paiement. Auparavant, le widget s’affichait en haut de la page.

Rapports

  • Le rapport Commandes (REPORTS > Sales > Orders) inclut désormais les valeurs de commande correctes lorsque les commandes sont générées par des magasins qui utilisent des devises autres que les devises par défaut. Auparavant, ce rapport incluait des valeurs incorrectes. GitHub-36742
  • Les informations trompeuses figurant dans le formulaire de rapport des commandes client ont été révisées pour plus de clarté.
  • Les utilisateurs administrateurs peuvent désormais rechercher des enregistrements contenant des courriers électroniques. + (plus) des signes de la page Rapport Paniers abandonnés . GitHub-36560

Rechercher search-heading

  • Les suggestions de recherche à saisie automatique sur le front de recherche de l’en-tête fonctionnent désormais comme prévu. Auparavant, la saisie automatique ne renseignait pas ce champ lorsque cette fonction était activée. GitHub-37557
  • Les performances des requêtes effectuées à partir de la barre de recherche Admin ont été améliorées par l’ajout d’un indexeur. Auparavant, plus la variable search_query plus la requête a duré longtemps.
  • Le tri alphabétique des produits par nom fonctionne désormais correctement pour les noms contenant des caractères turcs.
  • La variable Use in Search Results Layered Navigation la propriété d’attribut de produit s’affiche désormais uniquement lorsque Use in Search est défini sur Yes.
  • Les filtres de prix de recherche avancée et de SKU fonctionnent désormais correctement lorsqu’ils sont appliqués ensemble dans une recherche avancée. GitHub-37581
  • Les recherches ne sont plus effectuées pour les champs de recherche vides. Cela réduit la taille de la variable search_query table. Auparavant, des requêtes incorrectes ou des requêtes sur des champs de recherche vides renvoyaient un jeu de données énorme, ce qui augmentait la taille de la variable search_query et des problèmes liés à /tmp.
  • Les filtres Storefront fonctionnent désormais comme prévu lors du tri des entrées de catalogue avec des attributs personnalisés de liste déroulante.
  • Les résultats de la recherche affichent désormais les résultats pertinents en fonction du poids de la recherche des attributs, comme prévu.
  • Texte informatif sous le Search Weight d’attribut Storefront Properties Champ de saisie sur Admin Stores > Attributes > Product décrit désormais les valeurs possibles. GitHub-36646

Expédition

  • Les règles de prix du panier fonctionnent désormais comme prévu lorsqu’un produit en bundle est ajouté au panier lorsque les attributs de prix dynamiques sont désactivés. La livraison gratuite et le taux de la table correct sont appliqués que l’attribut dynamique soit activé ou désactivé. Auparavant, la livraison gratuite n’était pas appliquée comme prévu.
  • Magento Open Source passe désormais à une nouvelle page d’expédition, comme prévu, après la création d’une livraison partielle pour une commande. Auparavant, après la création d’une livraison partielle, Magento Open Source n’avait pas créé de page d’expédition complète pour les produits restants de la commande. GitHub-38063
  • Le montant total pour l'envoi d'une commande à plusieurs adresses est désormais correctement calculé. Auparavant, lorsqu’un devis contenait plusieurs adresses de livraison, le collecteur total mettait à jour le montant de la livraison pour l’adresse indiquée dans la variable $quote->getShippingAddress() au lieu de le transmettre $shippingAssignment comme prévu. GitHub-37283
  • Magento Open Source ne renvoie plus d’exception lors de l’extraction avec plusieurs adresses de livraison lorsque l’utilisateur administrateur a utilisé la fonction de connexion en tant que client.
  • Les produits sont désormais correctement répertoriés sur la page Créer des packages Grille de produits lorsque vous ajoutez des produits à un package après la création du libellé d’expédition.
  • La variable cart query renvoie désormais des remises d’expédition discrètes sous la forme de remises d’expédition distinctes avec des étiquettes de remise uniques. La nouvelle applied_to la propriété discount prend en charge la différenciation entre les remises appliquées à un article de panier. Auparavant, toutes les remises sur les frais de livraison étaient combinées en un seul code en dur. Shipping Discount .
  • Lorsqu’un utilisateur administrateur crée une réorganisation, les adresses de facturation et de livraison de la commande initiale renseignent automatiquement les champs pertinents lorsque l’utilisateur administrateur clique sur la variable Reorder (Admin) Sales > Orders > View ). Si les mêmes adresses sont enregistrées dans le carnet d'adresses de l'acheteur, la réorganisation incorporera toujours une version mise à jour de ces adresses. Auparavant, le champ Adresse de livraison était prérenseigné avec les données mises à jour, mais le champ Adresse de facturation ne l’était pas.
  • La variable Shipping Policy La zone de texte est désormais visible dans la portée Vue de la boutique d’administration lorsque Apply custom Shipping Policy est activé et une stratégie d’expédition personnalisée est disponible. GitHub-36425
  • La variable cart la requête renvoie désormais une selected_shipping_method qui correspond à l’une des valeurs available_shipping_methods les codes de l’opérateur et de la méthode. Auparavant, lorsque l’une des méthodes d’expédition sélectionnées contenait un trait de soulignement, ces codes opérateur/méthode ne correspondaient pas. GitHub-36606
  • La variable setShippingAddressesOnCart la mutation ne renvoie plus d’erreur lorsque la seconde valeur du tableau street est est nulle. Auparavant, cette exception était générée : The address failed to save. Verify the address and try again. GitHub-35160

Plan du site

  • Le plan de site XML fonctionne désormais comme prévu dans un déploiement à plusieurs étages. Auparavant, les plans de site ne contenaient pas les pages par défaut attribuées pour chaque magasin. GitHub-35001
  • Les vendeurs peuvent désormais créer et enregistrer un produit sur un site web. id != 1 et le mode magasin unique est activé. Auparavant, l’action d’enregistrement échouait avec ce message : SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails. GitHub-35009

Taxe

  • Les factures affichent désormais le sous-total correct lorsque les taxes sont configurées et que FPT est activé.
  • Magento Open Source affiche désormais la valeur correcte pour la variable Regular Price lorsqu’une option personnalisée est sélectionnée pour un produit doté d’une Special Price valeur lorsque Price Display Settings est défini pour inclure la taxe.
  • La taxe est désormais incluse comme prévu dans le prix d’expédition du workflow de passage en caisse, comme spécifié par les paramètres de configuration.
  • La variable cart query applied_taxes la valeur de réponse inclut désormais toutes les règles fiscales individuelles comme prévu. Auparavant, elle renvoyait la valeur fiscale totale lorsque plusieurs règles de taxe étaient configurées.
  • Icône Réduire/Développer pour le Additional Settings lors de la création de règles fiscales, fonctionne désormais comme prévu. Auparavant, seule l’icône d’agrandissement fonctionnait. GitHub-37922
  • Vous pouvez désormais modifier la valeur du Pays et de la région du taux d’imposition à partir de la page de modification de la règle sur les impôts comme prévu. Auparavant, les modifications effectuées à partir de cette page n’étaient pas enregistrées.
  • Le montant de la taxe dans la zone d’estimation du panier est maintenant actualisé comme prévu lors de la mise à jour du mode de livraison. Auparavant, le taux de taxe n’était pas mis à jour après qu’un acheteur a changé de pays lors du passage en caisse.
  • La variable tax class La valeur des produits simples nouvellement créés est désormais définie sur la valeur du produit parent lors de la création de nouvelles variantes d’un produit configurable existant dans la portée Affichage de la boutique. Auparavant, cette valeur était définie sur "none". Par conséquent, aucune taxe n’a été ajoutée à ces produits dans le panier et les clients ont été sous-taxés. GitHub-37180

Test

  • Amélioration de la fonction AdminCreateOrderWithVirtualProductFromDefaultSourceWithBackorders tester pour éliminer les échecs provoqués par une fin prématurée du champ email.
  • StorefrontVerifyProductAfterPartialReindexOnSeveralWebsitesTest a été restructuré pour améliorer la fiabilité. GitHub-38359
  • Correction de la fonction AdminSimpleProductwithTextandVisualSwatch testez en introduisant une étape supplémentaire qui définit explicitement les attributs à utiliser dans la recherche.
  • Correction de la faute de frappe dans la variable SortbyTest test unitaire. GitHub-37792
  • Suppression des références à des classes inexistantes dans les tests unitaires. GitHub-37636
  • Amélioration de la fonction AdminCreateOrderWithVirtualProductFromDefaultSourceWithBackorders tester pour éliminer les échecs provoqués par une fin prématurée du champ email.
  • Refactorisé Magento\GraphQl\Catalog\ProductSearchTest::testFilterProductsBySingleCategoryId test pour gérer l’ordre aléatoire des catégories dans products réponses de requête.
  • \Magento\Test\Integrity\Di\CompilerTest::testConstructorIntegrity test vérifie désormais toutes les classes PHP des modules enregistrés par ComponentRegistrar().
  • Problèmes de performance liés aux tableaux volumineux dans TableNameSniff ont été résolus.
  • CollectionTest::testGetDateRangeFirstPart() prend désormais en compte l’heure d’été.

Structure de l’IU

  • La variable crossorigin a été ajouté à linkTypes pour HEAD éléments .GitHub-32509
  • Le téléchargeur d’images fonctionne désormais comme prévu dans les lignes dynamiques. Les images sont désormais correctement chargées lorsqu’elles sont envoyées sous la forme d’un tableau multinational. GitHub-37957
  • Les styles de chargement de fichier ne sont plus dupliqués dans le thème Luma. GitHub-32373
  • Les champs de rue du formulaire d’adresse de modification du compte client du champ de rue sont désormais correctement enregistrés. Ces champs sont désormais correctement triés par les clés données du formulaire. GitHub-37973
  • Les valeurs CLS (Cumulative Layout Shift) ont été améliorées pour les pages des détails du produit. (Cette mesure quantifie la stabilité visuelle des mises en page.) GitHub-35410
  • Amélioration de la messagerie des erreurs qui se produisent lors du rendu du modèle. Magento Open Source affiche désormais un message informatif. Auparavant, Magento Open Source affichait des fuites de HTML lorsqu’une erreur PHP se produisait.
  • Attributs du client personnalisés (type File attached) fonctionnent désormais correctement avec les images qui ont été supprimées, puis téléchargées. Auparavant, les attributs personnalisés chargés, puis supprimés, puis chargés à nouveau ne pouvaient pas être enregistrés à partir du storefront.
  • Correction d’une erreur de syntaxe dans le fichier de modèle de calendrier. GitHub-37725
  • Les utilisateurs administrateurs peuvent désormais modifier le logo storefront lorsque le mode de magasin unique est activé. Auparavant, Magento Open Source affichait le logo de secours par défaut. GitHub-35952
  • Les valeurs de configuration des mixins ne sont plus vides et les mixins jQuery fonctionnent désormais indépendamment de la position de chargement. Auparavant, les mixins jQuery n’étaient pas chargés de manière cohérente sur tous les navigateurs.
  • Les mots de passe s’affichent désormais comme prévu lorsque la variable Show Password sur la page de connexion est active.
  • Magento Open Source affiche désormais les prix corrects pour les produits en regroupement avec des prix spéciaux.
  • Mise à jour du lien vers la page de liste des problèmes GitHub dans le fichier de modèle de pied de page du front de stockage. GitHub-37214
  • Le widget Récemment consultés affiche désormais le montant correct de la taxe sur les prix des produits groupés. GitHub-35881
  • Les utilisateurs administrateurs peuvent désormais faire glisser et déposer les options personnalisables créées pour le produit simple comme prévu. GitHub-36051
  • L’ordre des types d’attributs de menu déroulant du produit correspond désormais à l’ordre des images sur la page de produit configurable. GitHub-37285
  • Les messages système se chargent désormais plus rapidement. Seuls les messages affichés sont chargés. Auparavant, tous les messages étaient chargés à partir de la base de données, ce qui prenait du temps.
  • Suppression du noeud de chemin de navigation en définissant remove=true Le code XML de mise en page ne supprime plus le titre de la page sur la page de catégorie. Auparavant, la suppression du chemin de navigation de cette manière supprimait le titre de la page de la page de catégorie.
  • Le formulaire d’enregistrement du client se charge désormais comme prévu lorsqu’il comprend des attributs de client à sélection multiple. Auparavant, Magento Open Source lançait cette exception : [2023-03-05T05:57:40.032602+00:00] report.CRITICAL: Exception: Deprecated Functionality: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /magento2ee/app/code/Magento/CustomAttributeManagement/Block/Form/Renderer/Multiselect.php on line 53 in /lib/internal/Magento/Framework/App/ErrorHandler.php:62. GitHub-37189
  • Les messages de bienvenue contenant des guillemets simples sont désormais rendus correctement sur le storefront sans erreur de console. Auparavant, si un message de bienvenue contenait un guillemet simple, le message de bienvenue n’était pas chargé lors du rendu du storefront. Magento Open Source affichait également des erreurs de console.
  • Magento Open Source ne renvoie plus d’erreur lorsque vous essayez de modifier rapidement l’affichage entre l’historique des commentaires et le rapport dans la page Ordre d’administration. Auparavant, Magento Open Source affichait cette erreur générique : A technical problem with the server created an error.
  • Les utilisateurs administrateurs dont les privilèges sont limités à un site web peuvent désormais mettre à jour les attributs de produit spécifiques à un site web définis sur une all stores view portée.
  • Le widget de loupe se charge désormais comme prévu sur la page du produit.
  • Les options personnalisables multi-lignes sont désormais rendues correctement dans les documents de PDF de facture, d’envoi et de note de crédit. Auparavant, le texte multiligne était précédé d’un saut de page inattendu. Si le texte dépassait la page, il était tronqué.
  • Les utilisateurs administrateurs peuvent désormais ajouter une nouvelle adresse client à partir de l’administrateur lorsqu’un client a été créé pour un autre site web dont l’ID de boutique ne correspond pas à l’ID du site web. Auparavant, Magento Open Source affichait ce message contextuel : Something went wrong. GitHub-36582
  • Les messages d’erreur associés à l’envoi de commentaires sur la page des détails de la commande sont désormais plus informatifs. Auparavant, lorsqu’un acheteur cliquait sur Submit comment sans modifier l’état de l’ordre ni saisir du texte dans la zone de commentaire, Magento Open Source a affiché ce message : The comment is missing. Enter and try again.
  • L’icône Calendrier s’affiche désormais comme prévu dans les champs de la période sur l’Admin. Marketing > Cart Price Rules une fois qu’une date est sélectionnée pour un champ. Auparavant, après avoir sélectionné une date pour un champ, l’icône Calendrier ne s’affichait plus dans les autres champs et le Magento Open Source affichait le texte d’espace réservé. GitHub-36499
  • Les formulaires d’enregistrement de client qui incluent des champs à sélection multiple se chargent désormais correctement. Auparavant, ce formulaire ne se chargeait pas lorsqu’il contenait des champs à sélection multiple et l’erreur suivante était déclenchée : report.CRITICAL: Exception: Deprecated Functionality: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /magento2ee/app/code/Magento/CustomAttributeManagement/Block/Form/Renderer/Multiselect.php on line 53 in /lib/internal/Magento/Framework/App/ErrorHandler.php:62. GitHub-37189
  • Le fait de cliquer sur une miniature vidéo en mode Plein écran de la galerie de produits affiche désormais la vidéo comme prévu. Auparavant, la vidéo n’était pas affichée et la console du navigateur affichait une erreur JavaScript. GitHub-36456
  • Ajout d’une variable à la ligne de copyright automatiquement mise à jour chaque année. GitHub-36776
  • Le curseur de l’image sur la page du produit fonctionne désormais comme prévu dans la vue mobile. Auparavant, seule la première image s’affichait correctement. GitHub-37232

URL rewrites

  • Les réécritures d’URL sont désormais générées en fonction de la configuration de visibilité au niveau du magasin dans les déploiements multi-magasin. Auparavant, les réécritures d’URL n’étaient pas générées pour les magasins autres que les magasins par défaut lorsque la visibilité du produit était définie sur non visible sous la portée de magasin par défaut.
  • Category::getUrl() ne récupère plus une redirection 301. GitHub-38152
  • Magento Open Source ne génère plus de réécritures d’URL de produit pour les catégories racine et pour les produits définis sur Not Visible Individually dans les configurations multi-magasin lors de la génération de réécritures d’URL manquantes pour les magasins personnalisés.
  • Les balises URL canoniques reflètent désormais les modifications attendues après la mise à jour de la propriété Clé URL de catégorie. Auparavant, l’URL de catégorie obsolète était utilisée, ce qui déclenchait immédiatement la redirection vers la nouvelle URL.
  • Les réécritures d’URL de produit de catégorie sont désormais générées comme prévu pour toutes les vues de magasin lorsqu’un produit est ajouté à une catégorie. GitHub-32910
  • Magento Open Source ne renvoie plus d’erreur lorsque vous essayez de créer une redirection 301/302 pour une URL de produit lorsque Générer des réécritures d’URL de catégorie/produit est activée. Lorsqu’un produit est créé et affecté à une catégorie, des réécritures d’URL automatisées sont créées : une pour l’URL directe et une pour le produit par le biais du chemin de catégorie. Lorsqu’une nouvelle réécriture d’URL de produit est créée, les corrélations entre les produits, les catégories et les magasins sont vérifiées. Ce contrôle est désormais basé sur les propriétés d’entité corrélées (catégorie et produit). Auparavant, cette vérification était effectuée sur les réécritures d’URL préexistantes.
  • Les réécritures d’URL de catégorie sont désormais générées pour toutes les vues de magasin lorsqu’une nouvelle catégorie est importée à partir d’un fichier CSV.
  • Les configurations de suffixe d’URL de produit et de suffixe d’URL de catégorie correspondent désormais aux suffixes dans le url_rewrite table. Auparavant, les conditions de concurrence lors de la mise à jour des configurations de suffixes d’URL se produisaient, ainsi que les suffixes d’URL configurés et la variable url_rewrite ne correspondait pas.
  • Magento Open Source effectue désormais le rendu de l’arborescence des catégories à tous les niveaux lors de la création de réécritures d’URL de catégorie. Auparavant, seuls les trois premiers niveaux des catégories s’affichaient. GitHub-36973
  • Les réécritures d’URL de catégorie sont désormais présentes dans le fichier CSV lors de l’importation d’une nouvelle catégorie.
  • Les pages CMS multi-magasins sans réécriture d’URL sont désormais transférées comme prévu. Auparavant, les pages CMS multi-magasin demandées sans réécriture d’URL étaient redirigées vers la page d’accueil du magasin, mais les pages CMS d’origine n’étaient pas redirigées.

Structure de l’API web

  • Le Magento Open Source n’affiche plus un Integration not secure avertissement dans Admin System > Extensions > Integrations lorsque la variable Callback URL et Identity link URL Les champs sont vides. GitHub-36407
  • Ajout de la taxes, itemized_taxes, et additional_itemized_taxes Attributs d’extension à Magento\Sales\Api\Data\OrderInterface. Ces attributs vous permettent d’enregistrer les taxes appliquées avec les appels REST de commande.
  • L’API REST des prix de niveau prend désormais en charge les quantités décimales. Auparavant, cette API n’autorisait pas les quantités décimales même lorsque la variable Use Decimal Quantity a été activé.
  • REST V1/orders/{id}/comments Le point de fin ne modifie plus l’état d’une commande lorsque vous tentez d’ajouter un commentaire à l’état d’une commande en attente. Il donne maintenant une erreur informative. Auparavant, ce point de fin modifiait l’état de la commande lors de l’ajout d’un commentaire.
  • API REST GET et POST V1/products/attributes Le point de terminaison ne renvoie plus la même valeur pour la variable is_filterable pour les Filterable(with results) et Filterable(no results) options de la Use in Layered Navigation . Auparavant, ce point de terminaison renvoyait la même valeur car la variable is_filterable La propriété d’attribut était de type Boolean, qui ne permet pas de définir cette propriété sur Filterable(no results). GitHub-37979
  • L'absence media_gallery_entries a été ajouté au champ REST. V1/configurable-products/sku/children point de terminaison . Auparavant, le code nécessaire au stockage et à l’affichage de cette fonction était absent. media_gallery_entries. GitHub-37607
  • REST V1/carts/mine/estimate-shipping-methods valide désormais tous les niveaux de données de champ de charge utile et renvoie un code HTTP 400 pour les données non valides. Auparavant, seul le premier niveau de la payload de l’API était validé. Si des données non valides étaient renvoyées dans des niveaux non validés de la payload, Magento Open Source renvoyait un code d’état 500.
  • Les opérations d’API REST en bloc asynchrones pour mettre à jour les produits avec des prix de niveau et différents ensembles d’attributs se terminent désormais correctement. Auparavant, les produits avec différents ensembles d’attributs ne pouvaient pas être mis à jour de cette manière et Magento Open Source affichait cette erreur : The product was unable to be saved. Please try again.
  • La variable POST /V1/products/tier-prices endpoint renvoie désormais un message d’erreur plus informatif lorsqu’un nom de groupe de clients non valide est utilisé lors de la création du prix du niveau. Auparavant, Magento Open Source renvoyait une erreur de ce type : Notice: Undefined index: XXXXX in ~/public_html/vendor/magento/module-catalog/Model/Product/Price/Validation/TierPriceValidator.php on line 474". GitHub-36431
  • Vous pouvez désormais exécuter une requête d’API en bloc asynchrone autorisée pour créer des clients avec un ID de groupe autre que celui par défaut. Auparavant, ces demandes réinitialisaient l’ID de groupe à la valeur par défaut.
  • Les clients créés à l’aide de l’API en bloc reçoivent désormais des courriers électroniques d’enregistrement des clients dans la langue configurée sur le site web qui leur est assigné. Auparavant, tous les emails étaient envoyés aux paramètres régionaux par défaut, et non aux paramètres régionaux du site web auquel le client est affecté.
  • La variable POST V1/guest-carts l’appel n’envoie plus de commandes d’invité lorsque Allow Guest Checkout est désactivée.
  • Le Magento Open Source renvoie désormais la variable content (code image base64) dans GET V1/products/sku/media réponses de l’API de média de produit. La variable content n’apparaissait pas auparavant dans la réponse.

Configuration requise

Notre pile de technologie est basée sur PHP et MySQL. Pour plus d’informations, voir Configuration requise.

Instructions d’installation et de mise à niveau

Vous pouvez installer Magento Open Source 2.4.7 à l’aide de la version Compositeur.

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