Notes de mise à jour d’Adobe Commerce 2.4.7

Adobe Commerce 2.4.7 introduit la prise en charge de PHP 8.3. Il introduit 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 comprend des améliorations importantes des performances, notamment un chargement plus rapide des pages de liste de produits pour les produits complexes avec de nombreuses options et améliorations pour la gestion de l’indexeur. Cette version augmente la couverture GraphQL pour les attributs personnalisés et les caches de résolveur GraphQL. Elle 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 pour ces fonctionnalités soit fourni avec les versions du code principal d’Adobe Commerce, plusieurs de ces projets (par exemple, B2B et Studio Progressive Web Application (PWA)) sont également publiés indépendamment. Les correctifs de bugs pour ces projets sont documentés dans les informations de mise à jour distinctes spécifiques au projet disponibles dans la documentation de chaque projet.

Points forts d’Adobe Commerce 2.4.7

Recherchez les points forts suivants dans cette version.

Améliorations de la sécurité

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

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

  • PLACER SUR LA LISTE AUTORISÉE IP en cours de traitement
  • Authentification à deux facteurs
  • Utilisation d'un VPN
  • Utilisation d’un emplacement unique plutôt que /admin
  • Bonne hygiène des mots de passe

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

Les améliorations apportées à la sécurité dans cette version améliorent la conformité aux dernières bonnes pratiques de sécurité.

  • Modification 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 qui diffèrent des préfixes des clés générées automatiquement. (Les clés de cache non générées sont des clés définies à l’aide de la syntaxe de directive du modèle ou de 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 (_).
  • Limitations du nombre de codes de coupon générés automatiquement. Commerce limite désormais le nombre de codes coupon générés automatiquement. La valeur maximale par défaut est de 250 000. Les commerçants peuvent utiliser le nouveau Code Quantity Limit option de configuration (Stores > Settings:Configuration > Customers > Promotions) pour éviter de surcharger le 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 accroître le caractère aléatoire, ce qui rend les URL générées moins prévisibles.

  • Ajout de la prise en charge de l’intégrité des sous-ressources (SRI) pour se conformer aux exigences PCI 4.0 en matière de vérification de l'intégrité des scripts 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 fonction SRI par défaut est implémentée uniquement sur les pages de paiement pour les zones Admin et Storefront. Cependant, les commerçants peuvent étendre la configuration par défaut à d’autres pages. Voir Intégrité des sous-ressources dans le Guide du développeur PHP Commerce.

  • Modifications apportées à la politique de sécurité du contenu (CSP)—Mises à jour et améliorations de la configuration des politiques de sécurité du contenu (CSP) Adobe Commerce pour se conformer aux exigences PCI 4.0. Pour plus d’informations, voir Politiques de sécurité du contenu dans le Guide du développeur PHP Commerce.

    • La configuration CSP par défaut pour les pages de paiement pour les zones Commerce Admin et 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, CSP était configuré dans report-only mode 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 à usage unique pour chaque requête. Les chaînes sont ensuite jointes à l’en-tête CSP.

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

      note note
      NOTE
      Mise à jour de la configuration de la CSP sur 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 lorsqu’une page se charge : 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 autorisée pour autoriser les scripts requis. Voir Résolution des problèmes dans le Guide du développeur PHP Commerce.
  • Un nouveau paramètre de configuration du cache de pages entières peut contribuer à atténuer les risques associés au protocole HTTP {BASE-URL}/page_cache/block/esi point d’entrée. Ce point d’entrée prend en charge des fragments de contenu chargés dynamiquement et sans restriction à partir des descripteurs de disposition et des structures de bloc Commerce. Le nouveau Handles params size le paramètre de configuration définit la valeur de l’objet de ce point d’entrée handles paramètre , qui détermine le nombre maximal autorisé de descripteurs par API. La valeur par défaut de cette propriété est 100. Les commerçants peuvent modifier cette valeur à partir de l’Administration (Stores > Settings:Configuration > System > Full Page Cache > Handles params size). Voir Configuration de l’application Commerce pour utiliser le vernis.

  • Limitation de taux native pour les informations de paiement transmises par le biais des API REST et GraphQL. Les commerçants peuvent maintenant configurer la limitation de débit pour les informations de paiement transmises à l’aide de REST et de GraphQL. Cette couche de protection supplémentaire permet de prévenir les attaques par carte et de réduire potentiellement le volume d’attaques par carte qui testent plusieurs numéros de carte de crédit à la fois. Il s’agit d’une modification du comportement par défaut d’un point d’entrée REST existant. Voir Limitation de débit.

  • Le comportement par défaut de isEmailAvailable la requête GraphQL et le (V1/customers/isEmailAvailable) Le point d’entrée REST a changé. Par défaut, les API renvoient désormais toujours true. Les commerçants peuvent activer le comportement d’origine en définissant Activer la connexion au passage en caisse des invités dans Admin to yes, mais cela peut exposer les informations du client à des utilisateurs non authentifiés.

Améliorations de Platform

Les mises à niveau de Platform pour cette version améliorent la conformité aux dernières bonnes pratiques de sécurité.

Adobe Commerce 2.4.7 comprend les mises à niveau de plateforme suivantes :

  • Compatibilité PHP 8.3. Cette version introduit la prise en charge de PHP 8.3. Commerce 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 commerçants exécutant des déploiements 2.4.7 doivent migrer vers PHP 8.3.

Adobe Commerce 2.4.7 est toujours compatible avec PHP 8.1, mais uniquement à des fins de mise à niveau. PHP 8.1 n'est pas pris en charge et n'est pas recommandé. Le code principal Adobe Commerce 2.4.7, toutes les extensions groupées, toutes les extensions appartenant à l'Adobe et 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 respectivement jusqu’en août 2024 et en décembre 2024, mais l’Adobe recommandé est d’utiliser Adobe Commerce 2.4.7 uniquement avec RabbitMQ 3.13.

  • Compositeur 2.7.x. La compatibilité avec Composer 2.2.x reste.

  • Prise en charge du cache de vernis 7.4. 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 avons recommandé d’utiliser Adobe Commerce 2.4.7 uniquement avec Varnish Cache version 7.4 ou version 6.0 LTS.

  • Elasticsearch 8.11 compatibilité

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

  • Redis 7.2

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

  • jquery/fileUpload La bibliothèque a été supprimée.

Toutes les bibliothèques JavaScript et les dépendances NPM dans le code principal Adobe Commerce ont été mises à jour vers les dernières versions disponibles. Toutes les dépendances de la bibliothèque Laminas ont été mises à jour vers la dernière version compatible avec PHP 8.3.

Mises à niveau supplémentaires

  • Prise en charge de plusieurs coupons par commande. Les commerçants peuvent maintenant configuration du nombre maximal de coupons qui peut être appliqué par commande avec le nouveau Maximum number of coupons per order option de configuration. Cette valeur est définie sur 1 par défaut. Vous pouvez désormais utiliser REST ou GraphQL pour appliquer plusieurs coupons à un panier.

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

  • Adobe Commerce intégration avec FedEx a été migré des anciens services Web WSDL FedEx vers les dernières API RESTful FedEx. Le service de suivi, de validation d'adresse et de validation des codes postaux de FedEx Web Services WSDLS sera retiré 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 prête à l'emploi avec la nouvelle méthode d'expédition d'USPS, USPS Ground Advantage, publiée en juillet 2023. Cette nouvelle intégration peut être utilisée pour récupérer les tarifs d'expédition et planifier les livraisons et les retours via le 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é lancée :

    • USPS Retail Ground
    • Service De Package De Première Classe
    • Sélection de parcelle de terrain
  • Les modules d’expédition Temando ont été supprimés de la base de code de Commerce principale. Cette fonctionnalité a été abandonnée dans Adobe Commerce 2.4.4.

Améliorations des performances et de l’évolutivité

Commerce 2.4.7 comprend les améliorations suivantes en termes de performances et d’évolutivité :

  • Les commerçants d’entreprise peuvent désormais configurer jusqu’à un million de règles de prix de panier actives, basées sur des coupons dans Adobe Commerce sans dégradation significative des performances des opérations de panier et de passage en caisse.

  • Gestion améliorée de l’indexeur. Le nouveau indexer:set-status prend en charge la gestion dynamique du statut de l’indexeur. Les utilisateurs administrateurs peuvent utiliser cette commande pour modifier le statut de l’indexeur en . suspended, invalid, ou valid. Cette fonctionnalité est particulièrement utile pour gérer les performances du système lors d’opérations en bloc étendues, telles que les importations ou les mises à jour de produits, en permettant de contrôler le moment où les indexeurs sont automatiquement déclenchés par les tâches cron du système. Voir Gestion des indexeurs.

  • Page de liste de produits pour les produits complexes avec de nombreuses options. Le temps de chargement s’est amélioré pour les pages de liste de produits qui incluent des produits complexes avec plus de 100 options. Les performances des requêtes GraphQL pour répertorier les produits par catégorie ont également été améliorées.

  • Format JSON désormais pris en charge pour le REST API d’importation. Les commerçants peuvent désormais importer jusqu’à 100 000 enregistrements par minute dans Adobe Commerce au format JSON.

  • Améliorations des performances des règles de vente. Amélioration des performances des déploiements d’entreprise avec de nombreuses règles de vente actives (environ 100 000). Les déploiements d’entreprise qui implémentent fortement des promotions déploient souvent de nombreuses règles de panier actives. Ces types de déploiements d’entreprise exécutant Commerce 2.4.7 ne verront aucune dégradation des performances liée au nombre de règles de prix de panier configurées lors des opérations de passage en caisse.

  • Des opérations d’enregistrement plus rapides des configurations au niveau du magasin pour les déploiements avec de nombreux magasins. L’enregistrement des paramètres de configuration dans des déploiements avec plus de 500 magasins peut prendre du temps. Le nouveau Configuration Async Le module permet des opérations d’enregistrement de configuration asynchrones en exécutant une tâche cron qui utilise un client pour traiter l’opération d’enregistrement dans une file d’attente de messages. AsyncConfig est désactivé par défaut.

  • Génération plus rapide du cache de configuration pour les configurations volumineuses. Le bin/magento cache:clean config La commande préchauffe désormais le cache de configuration lorsque ce dernier est activé. Cela réduit le temps d’arrêt nécessaire à la génération du cache de configuration pour les configurations volumineuses. Les opérations d’enregistrement de la configuration ne nettoient plus le config_scopes cache avant d’écrire des données dans le cache, ce qui réduit également le temps pendant lequel les autres requêtes sont verrouillées pendant l’écriture des données de configuration.

Serveur d’applications GraphQL

Serveur d’applications GraphQL permet à Adobe Commerce de conserver l’état des requêtes d’API Commerce GraphQL et élimine la nécessité de procéder à un amorçage, ce qui se traduit par un débit plus élevé, une latence plus faible et une utilisation efficace des ressources pour toutes les API GraphQL. En partageant l’état de l’application entre les processus, les requêtes d’API GraphQL deviennent beaucoup plus efficaces et les réponses de l’API GraphQL sont en moyenne 30 % plus rapides.

GraphQL Application Server est disponible uniquement pour Adobe Commerce. Il n’est pas disponible pour le Magento Open Source. Vous devez envoyer un support technique Adobe Commerce ticket pour activer GraphQL Application Server sur les projets Pro.

NOTE
GraphQL Application Server n’est actuellement pas compatible avec Amazon Simple Storage Service (AWS S3). Adobe Commerce sur les clients d’infrastructure cloud qui utilisent actuellement AWS S3 pour stockage à distance Impossible d’utiliser le serveur d’applications GraphQL avant la publication d’un correctif plus tard en 2024 par Adobe.

Métapaquet d’extension Adobe Commerce

Cette version introduit le métapaquet Extension Adobe Commerce v2.0.0, qui regroupe automatiquement certaines extensions Adobe Commerce avec cette version de base. Les versions de ces extensions incluses dans ce métapaquet sont installées lorsque composer update est exécuté, ce qui simplifie le processus de mise à niveau de ces extensions lors de la mise à niveau vers la dernière version de base. Ces extensions gèrent des plannings de publication indépendants.

Le métapaquet Extension d’Adobe Commerce pour Adobe Commerce 2.4.7 comprend les extensions suivantes :

Les futures versions de ce métapaquet d’extension peuvent contenir des extensions supplémentaires.

Webhooks Adobe Commerce

Les webhooks Commerce (v1.2.0 ) permettent aux développeurs de configurer une logique synchrone pour exécuter des appels vers des systèmes externes lorsqu’un événement Adobe Commerce se déclenche. Les appels synchrones sont requis lorsque Commerce doit immédiatement calculer ou valider une valeur telle qu’un total de commande, une taxe ou un paiement à l’aide d’un point d’entrée tiers, puis réécrire le résultat dans Adobe Commerce.

Les Webhooks Commerce sont désormais installés par défaut. Voir Présentation des Webhooks Adobe Commerce

Adobe Stock

Le package Adobe Stock (adobe-stock-integration) est désormais inclus dans le méta-package Extensions de Commerce (extensions-metapackage) pour prendre en charge des mises à jour plus fréquentes.

B2B

NOTE
La version 2.4.7 est compatible avec la version 1.4.2 de B2B. Cependant, Adobe recommande aux clients d’attendre la prochaine version B2B 1.5.0 GA avant de procéder à la mise à niveau, qui inclut la prise en charge de PHP 8.3. Voir Notes de mise à jour B2B.

Braintree

  • Vaulted PayPalet Pay Later Modifications—Les clients connectés qui ont précédemment mis en chambre forte/stocké leur compte PayPal ont la possibilité de payer avec :

    • Pay Now (sans avoir à se connecter à leur PayPal compte, l'utilisateur peut payer avec sa carte par défaut)
    • Payer avec une source de financement différente
    • Payer avec un compte différent
    • PayPal Pay Later ou PayPal Credit bouton
  • Prise en charge de 3DS pourGoogle Pay—Prise en charge de la vérification 3DS pour Google Pay cartes sans jeton. Voir la Documentation du Braintree pour plus d’informations.

  • Vault Apple Pay Payments—Autoriser les clients connectés à mettre en coffre/stocker leurs Apple Pay paiements sur leur compte de magasin Commerce à utiliser pour les transactions futures. Cela réduit le nombre d’étapes de passage en caisse et crée une expérience de passage en caisse plus rapide pour le client récurrent.

  • Vault Google Pay Payments—Autoriser les clients connectés à mettre en coffre/stocker leurs Google Pay paiements sur leur compte de magasin Commerce à utiliser pour les transactions futures. Cela réduit le nombre d’étapes de passage en caisse et crée une expérience de passage en caisse plus rapide pour le client récurrent.

  • Vault Venmo Payments—Autoriser les clients connectés à mettre en coffre/stocker leurs Venmo comptes à leur compte de magasin Commerce à utiliser pour les transactions futures. Cela réduit le nombre d’étapes de passage en caisse et crée une expérience de passage en caisse plus rapide pour le client récurrent.

  • Vault ACH Payments—Autoriser les clients connectés à mettre en chambre forte/stocker leurs paiements ACH sur leur compte de magasin Commerce à utiliser pour les transactions futures. Cela réduit le nombre d’étapes de passage en caisse et crée une expérience de passage en caisse plus rapide pour le client récurrent.

  • Express Paymentboutons en haut du passage en caisse—Pour accélérer le passage en caisse, nous avons introduit Express Payment options au début du passage en caisse. Les clients peuvent désormais payer par PayPal, PayPal Pay Later, Apple Pay, et Google Pay Express paiements.

  • BraintreeNotes de mise à jour et liens d’assistance dans la configuration d’administration—Les commerçants peuvent désormais accéder directement à l’assistance du Braintree et aux notes de mise à jour en ligne depuis Commerce Admin.

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

  • Vaultingzone paiements en compte—Les clients connectés peuvent désormais coffre/magasin nouvelles cartes de crédit/débit et PayPal comptes dans la zone Compte client . Auparavant, les clients ne pouvaient mettre leurs paiements en chambre forte ou en magasin que lorsqu’ils les enregistraient pour une utilisation ultérieure lors de l’exécution d’une transaction lors du passage en caisse. Désormais, ils peuvent mettre en chambre forte les nouvelles cartes de crédit/débit et les nouveaux comptes PayPal sans avoir à créer de transaction.

  • Transactions sans frottement—Les transactions sans frottement accélèrent le processus de paiement en réduisant le nombre de clics/étapes des clients pour effectuer une transaction par carte de crédit/débit en ligne. Auparavant (lorsque 3DS était activé), chaque client était confronté à des défis 3DS. Grâce à la nouvelle fonctionnalité Transactions sans frottement, les clients ne sont sollicités pour la 3DS que lorsque la banque le demande. Cela réduit l’abandon de panier, augmente les taux de conversion et entraîne une augmentation des ventes.

  • Litige webhooks: lorsqu’un client conteste une transaction en Braintree, le statut du litige est désormais transmis à Commerce. Elle peut faire l’objet d’une recherche dans le fichier Sales > Order grille et attaché à chaque commande.

Intégration de Commerce à Adobe IMS

Le package d’intégration Adobe IMS (adobe-commerce/adobe-ims-metapackage) est désormais inclus dans le méta-package Extensions de Commerce (extensions-metapackage) pour prendre en charge des mises à jour plus fréquentes.

GraphQL

Commerce 2.4.7 comprend des fonctionnalités améliorées de mise en cache du GraphQL, la prise en charge du schéma GraphQL pour les attributs personnalisés, la prise en charge de l’annulation de commande découplée et une mise en cache améliorée du résolveur.

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

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

  • Les éléments de commande incluent désormais des images de produit.. OrderItemInterface expose les images des produits, ce qui permet de les associer aux 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êtes 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 la commande. Le cancelOrder La mutation permet à un client d'annuler une commande, en transmettant son identifiant et un motif 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 par l’enrichissement des données API afin de prendre en charge tous les types d’attributs. Le schéma Attributs EAV GraphQL prend désormais en charge l’extension des attributs du client et des objets d’adresse du client dans l’administration et leur récupération à l’aide de GraphQL. Les domaines spécifiques d'amélioration comprennent :

    • extension/ajout de la prise en charge des attributs personnalisés à des zones spécifiques telles que l’adresse du client
    • ajout de la mise en cache pour les attributs personnalisés
    • prise en charge améliorée des attributs personnalisés existants pour les produits
  • Les fonctionnalités de mise en cache GraphQL améliorées améliorent la vitesse de chargement des pages. Une 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 du 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. Il est maintenant appelé une fois. Auparavant, l’analyseur était appelé au moins trois fois.

Nouveaux champs pour les mutations existantes

  • Ajout de quickorder_active champ vers le storeConfig et availableStores requêtes. Ce champ indique si la fonction de commande 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 de gestion de l’inventaire des produits. Cette fonctionnalité développée par la communauté est fournie avec Adobe Commerce et le code principal du Magento Open Source.

Paiements

  • La prise en charge de GraphQL a été ajoutée pour les opérations de base pour tous les modes de paiement, à l’exception de Venmo. Les nouveaux points d’entrée GraphQL pour les services de paiement sont décrits à la section Passage en caisse.

  • La chambre forte des cartes de crédit a été améliorée pour tous les modes de paiement, sauf pour Venmo. Les acheteurs peuvent désormais archiver leurs paiements CCA et les afficher ou les supprimer de leur page de compte. Les commerçants peuvent activer et désactiver chaque paiement en chambre forte de l'administrateur.

  • Le workflow de paiement comprend désormais une section de paiement express qui fournit PayPal, Google Pay et Apple Pay Express boutons.

Options de paiement introduit des méthodes de paiement prises en charge.

PWA Studio

PWA Studio v14.0 est compatible avec Adobe Commerce 2.4.7. Il comprend plusieurs améliorations pour améliorer l’accessibilité. Pour plus d’informations sur les correctifs, voir Versions de PWA Studio. Voir Compatibilité des versions pour obtenir la liste des versions de PWA Studio et de leurs versions Adobe Commerce principales compatibles.

Framework d’API web

Utilisation de plusieurs coupons par panier

Les nouveaux points d’entrée REST prennent en charge l’affichage, l’ajout et la suppression de plusieurs coupons associés à un panier.

NOTE
Pour la première fois, plusieurs itinéraires de point d’entrée REST contiennent la chaîne . V2 au lieu de V1. Par exemple : GET /rest/default/V2/carts/{cartId}/coupons. Pour les commerçants Commerce, ces points d’entrée sont destinés à remplacer le V1 versions des points d’entrée. Ces points d’entrée ne sont disponibles que dans Adobe Commerce.

Renvoyer tous les codes de coupon associés à un panier :

GET /rest/{store_code}/V2/carts/{cartId}/coupons
GET /rest/{store_code}/V2/carts/mine/coupons

Ajoutez un code de coupon à un panier :

POST /rest/{store_code}/V2/carts/{cartId}/coupons/{couponCode}
POST /rest/{store_code}/V2/carts/mine/coupons/{couponCode}

Remplacer les codes de coupon dans un panier :

PUT /rest/{store_code}/V2/carts/{cartId}/coupons
PUT /rest/{store_code}/V2/carts/mine/coupons

Supprimer les codes de coupon d’un panier :

POST /rest/{store_code}/V2/carts/{cartId}/coupons/deleteByCodes
POST /rest/{store_code}/V2/carts/mine/coupons/deleteByCodes

Points d’entrée supplémentaires
Cette version introduit deux nouveaux points d’entrée REST qui offrent une solution pour une limitation de l’API REST GET et POST V1/products/attributes points d’entrée. Ces points d’entrée renvoient la même valeur pour l’ is_filterable pour les deux Filterable(with results) et Filterable(no results) options du Use in Layered Navigation option. (La is_filterable la propriété d’attribut est de type . Boolean, qui n’autorise pas à définir cette propriété sur Filterable(no results).)

Deux nouveaux points d’entrée REST ont été implémentés comme solution :

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

Problèmes résolus

Nous avons corrigé des centaines de problèmes dans le code principal d’Adobe Commerce 2.4.7. Un sous-ensemble des problèmes résolus inclus dans cette version est décrit ci-dessous. Les correctifs inclus dans les versions précédentes de Commerce 2.4.7 bêta sont également décrits.

Installation, mise à niveau, déploiement

  • La manipulation inutile du cache a été supprimée du processus de configuration. Auparavant, Commerce écrivait inutilement sa configuration sur le disque lorsque bin/magento setup:db-data:upgrade ou bin/magento setup:upgrade a été exécuté, ce qui provoquait des problèmes avec les modules som 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. Le bin/magento setup:upgrade La commande n’échoue plus en raison d’erreurs de dépassement de mémoire liées à des tables MySQL volumineuses.
  • bin/magento setup:install se termine maintenant avec succès après app/etc/config.php a été supprimé. Auparavant, le fichier manquant n’était pas régénéré lors de l’installation et Commerce a généré 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 les tables et les associés mview indexeurs. GitHub-37304
  • La restauration de la base de données n’échoue plus en raison d’une erreur de délimiteur. Auparavant, Commerce générait cette erreur lorsque 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 ;;.
  • Le bin/magento setup:upgrade La commande n'échoue plus avec ce type d'erreur liée à la limite de 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 setup:upgrade.
  • La génération d’une sauvegarde de base de données fonctionne désormais comme prévu à partir de l’Admin et de la ligne de commande. Auparavant, Adobe Commerce générait 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 le --lock-db-prefix Le paramètre n’efface plus la valeur actuelle de env.php fichier .
  • La configuration du 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.
  • Les acheteurs peuvent désormais passer une commande dans un déploiement qui implémente la base de données fractionnée lorsque Checkout Async est activé. Auparavant, Adobe Commerce générait cette erreur : An error occurred on the server. Please try to place the order again.
  • bin/magento setup:upgrade se termine maintenant correctement lors de l'installation d'un nouveau module qui installe les tables et les associés 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 contient désormais le nom du fichier.

Interface utilisateur d’administration

  • Les graphiques sont désormais désactivés par défaut dans le tableau de bord. GitHub-38430
  • Le menu Admin Ventes affiche désormais correctement les sous-menus. Auparavant, le saut de colonne ne fonctionnait pas correctement et certains sous-menus n’étaient pas affichés. GitHub-37812
  • Select Les options de menu déroulant sont désormais visibles dans Admin Content > Pages lorsque plusieurs pages sont sélectionnées dans la grille. GitHub-35386
  • Correction du chemin à 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’interface d’administration. GitHub-37668
  • Correction du problème d’affichage des grilles client de l’administrateur. 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 administrateur comme prévu. GitHub-37902
  • Les titres des sous-menus indiquent désormais des frères, quel que soit le niveau d’accès attribué à l’utilisateur. Auparavant, ces informations étaient masquées pour les utilisateurs administrateurs disposant d’un accès limité, même s’il existait plusieurs groupes frères pour le sous-menu.
  • Les suffixes de titre de page sont désormais inclus dans les deux title et la meta title pour les pages de produits. GitHub-37680
  • La condition de statut du stock de produits est désormais correctement appliquée pour les règles de produits associés.
  • Le Login as Customer s’affiche désormais correctement sur les appareils mobiles.
  • Adobe Commerce n’affiche plus l’administrateur Add new customer group si l’utilisateur administrateur connecté ne dispose pas de l’autorisation nécessaire pour 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 portée différente. Auparavant, Commerce invalidait le cache d’un produit parent qui n’était pas affecté à la portée dans laquelle le produit enfant a été modifié.
  • Les utilisateurs administrateurs peuvent désormais basculer entre les vues de filtre Administrateur sans que les données d’affichage ne soient endommagées ou perdues. GitHub-37529
  • La grille de commandes archivée est désormais mise à jour de manière asynchrone avec les nouveaux statuts de commande comme prévu. Une approche basée sur les événements de la mise à jour du statut des commandes dans la grille d'archivage permet d'obtenir un statut précis des commandes, y compris les remboursements post-avoirs.
  • Le menu déroulant Actions de la grille d’administration peut désormais pointer comme prévu sur un lien sélectionné pour Content > Pages (et les catalogues partagés dans le module B2B). Auparavant, ce menu était principalement masqué et les utilisateurs administrateurs devaient faire défiler l’écran pour afficher les options. GitHub-36710

Analytics

  • Page des détails du produit meta itemprop="image" et meta itemprop="description" les propriétés sont désormais disponibles pour l’image principale du produit. GitHub-37497
  • La section Rapport de la grille Produits dans le panier affiche désormais le prix correct du produit lorsque Catalog Price Scope est défini sur Website. Auparavant, le prix du produit s’affichait sur zéro lorsque le produit était affecté à un site web autre que le site web par défaut.
  • Les rapports de chiffre d’affaires s’affichent désormais comme prévu dans le portail Google Analytics (GA4) . GitHub-37605
  • price et quantity Les valeurs de la couche de données du Gestionnaire de balises de Google sont désormais envoyées sous forme de valeurs numériques aux Google Analytics, comme prévu. Auparavant, ces valeurs étaient envoyées sous forme de chaînes.
  • Les erreurs dans la gestion des données d’en-tête lors de l’envoi des données de déploiement au module New Relic ont été résolues.
  • Les balises Google Analytics 3 sont désormais déclenchées comme prévu lorsque les balises Google Analytics 4 sont désactivées.

Bannière

  • Refactorisation du chargement du contenu des bannières pour supprimer les requêtes de base de données excessives, ce qui entraîne une amélioration des temps de chargement du panier.

Lots de produits

  • Le nombre de produits de la catégorie prend désormais correctement en compte les produits groupés lorsque Display Out Of Stock* est activé.
  • Le customerCart la requête renvoie désormais toutes les remises appliquées sur les produits groupés comme prévu. Auparavant, le total des remises appliquées à un produit groupé était renvoyé en tant que zéro.
  • Les pages Détails du produit affichent désormais le prix correct pour les produits groupés pour lesquels une remise de 100 % a été appliquée. Auparavant, Commerce n’appliquait pas de remise de 100 % aux prix des produits groupés.
  • Les règles de prix de panier sont désormais appliquées aux lots de produits au lieu de chaque produit enfant pour les produits groupés à prix dynamiques.
  • Correction d’une erreur qui se produisait lorsque vous utilisiez le POST V1/shipment Point d’entrée pour créer une expédition contenant un produit groupé. Le point d’entrée 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 enregistrer une mise à jour planifiée d’un produit groupé qui comprend un produit simple avec une mise à jour planifiée indéfinie. Lorsque l’instantané du bundle de produits est créé, les produits liés sont désormais capturés par ID, ID d’entité et également par SKU. Auparavant, la version d’origine du produit simple était vérifiée lorsque la mise à jour planifiée du produit groupé était enregistrée au lieu de la version actuelle du produit simple.
  • Vous pouvez désormais utiliser le GET V1/shipment/ Itinéraire d’API pour créer une expédition avec un produit groupé lorsque le produit a le together type d'expédition défini. 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 groupé dans leur panier. Auparavant, Adobe Commerce ne gérait pas les valeurs nulles pour ItemId lorsque les produits ont été modifiés dans le panier storefront et ont affiché une erreur. GitHub-37696
  • Les produits groupés peuvent désormais être ajoutés à une commande d’administration à l’aide de SKU qui contiennent une barre oblique (/). Auparavant, les utilisateurs administrateurs ne pouvaient pas utiliser cette méthode pour ajouter des produits à une commande administrateur et Commerce a généré une erreur JavaScript.
  • Les utilisateurs administrateurs peuvent désormais définir des valeurs décimales par défaut 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.
  • Performances optimisées pour l’enregistrement de produits groupés avec un grand nombre d’options
  • Les produits groupés sont désormais correctement importés sans dupliquer les SKU dans les options de produit. Auparavant, Adobe Commerce créait plusieurs SKU en double dans les options de produit lorsque vous importiez des produits groupés avec des entrées en double.
  • Le prix du 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 retiré du calcul du prix.
  • Les produits groupés s’affichent désormais comme étant en rupture de stock lorsque le dernier de leurs produits enfants requis est acheté. Auparavant, les produits groupés étaient affichés comme étant en stock sur le storefront lorsque leurs produits simples étaient en rupture de stock.
  • Problèmes de performances lors de l’ajout au panier de produits groupés avec des options non requises à l’aide de addBundleProductsToCart la mutation a été résolue.
  • Le categoryList la requête renvoie désormais toutes les options de lot comme prévu lorsque la variable Show out-of-stock products Le paramètre de configuration est activé. Auparavant, les options en rupture de stock n’étaient pas incluses dans la réponse à la requête.
  • Offre groupée de produits créée avec POST V1/products réussir 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 des magasins où le cache est défini sur Fast CDN (Caching Application=Fastly CDN). Cela affectait à la fois les clients invités et les clients enregistrés.
  • Les cookies de mise en 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 mise en cache incorrect et les pages pouvaient avoir été mises en cache plusieurs fois.
  • Les réponses des opérations de GraphQL GET sur les pages CMS contenant des blocs CMS sont désormais effacées comme prévu dans le cache Fastly. Les mises à jour planifiées suivantes affichent désormais un contenu de mise à jour précis pour ces pages.
  • Le cache de page est maintenant effacé comme prévu pour un produit parent lorsque l’un de ses produits enfants a été enregistré à partir de l’administration. Une vérification du plug-in a été introduite pour atteindre l’invalidation du cache pour les variantes configurables, similaires à 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 à partir 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 d’AWS pour la configuration EC2.
  • Le plug-in 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 pertinentes 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

  • Commerce optimise désormais les performances en ne chargeant pas les données de devis spécifiques à l’utilisateur lors de la génération de pages pouvant être mises en cache en entier, 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 et de devis spécifiques à l’utilisateur ou à l’utilisatrice lors de la génération de ces pages, ce qui affectait les performances.
  • Les attributs personnalisés des adresses 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 d’un 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.
  • Adobe Commerce 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 de passage en caisse précédente. Auparavant, l’acheteur était renvoyé à la page d’expédition.
  • Le cart la requête ne renvoie plus le mode d’expédition et l’adresse des paniers virtuels. Auparavant, lorsqu’un panier contenait à la fois des produits physiques et virtuels et que tous les produits physiques étaient supprimés, la réponse à la requête de panier continuait à inclure les informations d’expédition.
  • Commerce affiche désormais des messages informatifs lorsqu’une action d’ajout au panier est déclenchée. Auparavant, le The requested qty is not available n’était pas toujours affiché comme nécessaire sur le storefront.
  • Les temps de chargement des pages de passage en caisse ont été améliorés pour les clients avec des carnets d’adresses volumineux. Commerce traite désormais uniquement le nombre d’adresses client spécifiées dans le Customer Addresses Limit paramètre . Auparavant, Commerce chargeait l’intégralité du carnet d’adresses.
  • La quantité de produit 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é de produit d’un article lorsqu’il était en rupture de stock.
  • Le AdvancedSalesRule le filtre d’attribut de produit fonctionne désormais correctement avec le type principal d’attribut décimal. Par conséquent, le panier est régi par Coupon Type définir sur No Coupon travaillez maintenant comme prévu.
  • Le montant total d’une remise panier complète est désormais appliqué comme prévu aux paniers contenant à la fois des produits groupés et configurables.
  • Les cookies de la 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 contenant 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 de l’ID de région.
  • Les montants de remise fixe appliqués au niveau du panier sont désormais corrects.GitHub-37496
  • Les coupons sont désormais appliqués avec succès à une commande lorsqu’un acheteur applique le coupon après avoir sélectionné la méthode d’expédition à taux forfaitaire dans laquelle une règle de prix de panier avec la méthode d’expédition définie comme condition s’applique. Auparavant, la page du panier affichait l’erreur Coupon non valide et le coupon n’était pas appliqué. GitHub-34866
  • Le My billing and shipping address are the same La case à cocher reste désormais cochée par défaut lorsqu’un acheteur utilise la saisie semi-automatique de Chrome pour renseigner son adresse de livraison, puis clique Suivant avant le rechargement du bloc méthodes d’expédition . GitHub-33725
  • Le applied_rule_ids valeur dans l’ quote_item Le tableau contient désormais une liste correcte des ID de règle appliqués. Auparavant, cette valeur contenait uniquement l’ID de la dernière règle appliquée.
  • Les données du mini-panier et du client dans le stockage local se réinitialisent désormais 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’administration lorsque le panier persistant est activé.
  • L’adresse de livraison par défaut dans l’étape de passage en caisse n’est plus renseignée avec l’adresse de prélèvement en magasin sélectionnée précédemment.
  • Les produits du panier ne sont plus exclus des listes de produits associés et de montée en gamme une fois le cache vidé.
  • L’estimateur de taxe et d’expédition du panier reflète désormais précisément la configuration de destination par défaut. Auparavant, lorsque vous configuriez les paramètres de calcul de destination de taxe par défaut et que vous spécifiiez l’état/la région et le code postal, seule la valeur ZIP s’affichait dans le panier sous Estimate Tax and Shipping. Cela est dû au fait qu’Adobe Commerce a défini l’ID de région sur non défini avant d’appeler l’instruction conditionnelle qui a défini l’ID de région par défaut à partir de l’administrateur.
  • Adobe Commerce 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 avec la même quote_id ont été créés occasionnellement.
  • Le mini panier affiche désormais les prix des lots qui reflètent les paramètres de configuration des taxes du panier. Auparavant, le mini panier incluait toujours les taxes dans les prix des produits groupés.
  • Les performances des règles de segment client qui reposent sur des paniers actifs ont été améliorées, ce qui a réduit le temps nécessaire à l’ajout d’un produit au panier.
  • L’estimation de l’expédition fournie à partir de la page de panier est désormais exacte. collectShippingRates est maintenant défini une seule fois. Auparavant, l’estimation d’expédition était dupliquée. GitHub-36648
  • Le cart la requête ne renvoie plus d’erreur lorsqu’un produit du 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 vierge.
  • Requêtes d’API invitées à POST V1/guest-carts/<cartId>/shipping-information ne plus renvoyer de cancel statut si la page se recharge lors de la connexion dans un environnement mobile. Auparavant, Adobe Commerce 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 Subtotal (Excl. Tax) La condition pour les règles de panier est appliquée. GitHub-36760
  • Le cart La requête renvoie désormais la tarification de niveau correcte 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 est désormais initialisée uniquement lorsqu’elle est nécessaire et non lorsque le passage en caisse des invités est activé. Il est maintenant initialisé lorsque l’acheteur invité tente de passer en caisse et que la caisse des invités est désactivée. GitHub-30672

Règle de prix du panier

  • La condition de sous-sélection de produit de la règle de prix du panier inclut désormais le total (incl.tax) comme prévu. GitHub-34871
  • Le If an item is FOUND/NOT FOUND in the cart with ALL/ANY of these conditions true la condition de règle de prix de 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 de coupon de prix de panier et des coupons 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, Adobe Commerce générait cette erreur : report.ERROR: Warning: Undefined array key "simple_free_shipping". GitHub-37580
  • Les règles de prix de panier sont désormais appliquées comme prévu lorsqu’une règle de prix de panier lié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 de la vérification. Auparavant, le applied_rule_ids la valeur n’a jamais été modifiée dans sales_order_item et la règle de prix de panier n’a pas été appliquée à la commande.

Catalogue

  • En cours bin/magento cache:clean ou bin/magento cache:flush ne vide plus l’intégralité du cache intégré ou du cache de vernis pleine page, sauf indication contraire. GitHub-38301
  • Les commerçants peuvent désormais utiliser le carrousel de produit pour créer des blocs CMS lorsque catalog_product_price dimensions-mode est défini sur website. Auparavant, Commerce n’enregistrait pas le bloc et générait cette erreur SQL : report.CRITICAL: PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table.
  • Commerce n’affiche plus les images en double lorsque la couleur du produit est modifiée sur une page des détails du produit. GitHub-36243
  • Optimisation de l’algorithme de synchronisation des valeurs spécifiques au site web après l’ajout d’une nouvelle boutique ou la modification d’une boutique existante dans des environnements multi-boutiques 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 le 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 a pu être arrêtée, ce qui a laissé des répertoires masqués temporaires qui n’ont jamais été supprimés.
  • Les prix des produits groupés sont désormais calculés correctement 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
  • Commerce n’insère plus de texte de description du produit dans la page des détails du produit Meta Description lorsque ce champ n’a pas été renseigné. Auparavant, lorsqu’une description de produit contenait du code de HTML généré par Page Builder ou un autre éditeur de HTMLS, le HTML s’affichait dans les métadonnées Description et vous ne pouvez 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 de nuancier étaient présents sur la page.
  • Les informations sur les produits récemment consultés s’affichent désormais conformément à la configuration de l’affichage du 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 s’affichent désormais comme prévu sur les pages de produits en mode mobile dans les navigateurs web Chromium.
  • Le bin/magento catalog:images:resize génère désormais correctement les images de produit pour les produits qui sont affectés à un site web personnalisé avec un thème personnalisé.
  • Métadonnées avec NULL ou NOT NULL les valeurs sont désormais enregistrées pour le magasin par défaut en fonction des Utiliser la valeur par défaut case à cocher prévue. Auparavant, les métadonnées avec NULL La valeur n’a pas été enregistrée lorsque cette case a été décochée.
  • Les commerçants 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 produit du storefront n’affichait pas l’image correcte.
  • Le productDetail la requête renvoie désormais le nom du produit au lieu de la valeur null lorsque l’image du produit alt L’attribut est défini comme vide.
  • Les commandes qui comprennent à la fois des produits téléchargeables et physiques comprennent désormais des liens de travail vers le produit téléchargeable dès que la commande est terminée. Auparavant, les liens vers des produits téléchargeables n’étaient pas disponibles tant que les produits physiques de la même commande n’avaient pas été expédiés.
  • Les réécritures d’URL sont désormais mises à jour lorsqu’une catégorie est déplacée d’un magasin/d’une catégorie racine vers un autre magasin/une autre catégorie 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 comprend désormais uniquement les entrées pertinentes. Auparavant, le url_path n’a pas été mis à jour avec l’ID de magasin approprié.
  • LE RESTE V1/products/<sku>/media Le point d’entrée peut désormais traiter le chargement simultané de plusieurs images multimédia. Auparavant, lors du traitement simultané de plusieurs demandes, des données incohérentes étaient créées et Commerce générait une erreur lorsque ces données étaient enregistrées dans la base de données.
  • Les bannières de segment client se comportent désormais comme prévu lorsqu’un acheteur qui utilise un compte client nouvellement créé se déconnecte. Auparavant, les bannières créées pour le segment client connecté s’affichaient même après la fin de la session de compte (c’est-à-dire lorsque l’acheteur enregistré s’était déconnecté).
  • Les performances de réindexation partielle des indexeurs de catégories de produits et de catégories de produits ont été améliorées. Auparavant, le indexer_update_all_views la tâche cron a exécuté plusieurs réindexeurs par produit ou catégorie unique.
  • Lorsque le statut du stock de produits est automatiquement mis à jour vers en rupture de stock en fonction de la configuration du stock (quantité), le statut du stock est ensuite mis à jour vers en stock lorsque la quantité de stock est mise à jour. Auparavant, le stock_status_changed_auto Le paramètre a été ignoré lorsque la configuration de stock d’un produit a été mise à jour sur en stock.
  • Le tri de la barre d’outils fonctionne désormais comme prévu sur les pages de recherche lorsque Remember Category Pagination Le paramètre est activé. GitHub-33220
  • Les attributs à sélection multiple sont désormais enregistrés comme prévu lorsque Use Default Value la case dans l’étendue store-view est cochée. Auparavant, cette case à cocher n’était pas 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 relève de leur portée. Si l’utilisateur administrateur ne dispose pas des droits d’accès au produit, Commerce affiche un message d’information. 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.
  • Défini par l’utilisateur special_from_date, special_to_date, news_from_date, et news_to_date les valeurs ne sont pas remplacées lorsqu’un produit est modifié dans la portée de la vue du magasin.
  • Commerce affiche désormais le nom correct après le tri des produits par nom dans Admin > Category > Products in category dans les déploiements multimagasin où les noms de produit varient selon le magasin. GitHub-36208
  • Le addProductsToCart La mutation renvoie désormais des options personnalisables avec des données . Auparavant, elle renvoyait uniquement les options personnalisables vides. GitHub-37599
  • La position du produit et la sélection de l’ID s’affichent désormais correctement lorsqu’un utilisateur administrateur ajoute un nouveau produit à une catégorie après avoir effacé le cache mais sans recharger la page de catégorie. Auparavant, la position et la sélection du produit ne correspondaient pas et s’affichaient incorrectement.
  • Les commerçants peuvent désormais mettre à jour la date ou l’heure de début d’une modification planifiée pour un produit téléchargeable. Auparavant, Adobe Commerce générait cette erreur lors de la mise à jour de la date ou de l’heure de début future du produit téléchargeable : The downloadable link isn't related to the product. Verify the link and try again.
  • Le statut du produit en retard s’affiche désormais correctement sur le storefront. Auparavant, les produits disponibles à l'expédition étaient incorrectement identifiés comme en reliquat.
  • 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 du magasin, la faisant passer de la vue utilisée lors de la création du produit à une autre vue. Les prix des produits sont désormais convertis avec succès en prix flottant lorsqu’un utilisateur administrateur change l’affichage du magasin de toutes les vues de magasin à l’affichage du magasin par défaut. Auparavant, Adobe Commerce générait une erreur. GitHub-37519
  • Les produits exportés ont désormais le bon manage_stock valeur lorsque l’option use_config_manage_stock valeur égale à 1. Auparavant, cette valeur par défaut était incorrecte.
  • Adobe Commerce 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 des produits s’affichent désormais comme prévu dans l’e-mail d’alerte de stock de produits envoyé lorsqu’un produit est de nouveau en stock. Auparavant, cette image n’était pas affichée dans le courrier électronique d’alerte
  • Nombre de produits dans l’arborescence des catégories (Admin) Catalog > Category) est désormais précis. Auparavant, le nombre de produits de la catégorie ne pouvait pas être récupéré à partir du . catalog_category_product_index tableau. La faute de frappe qui a déclenché ce bogue a été corrigée. GitHub-35417
  • L’image principale du produit sur la page de détails du produit ne se déplace plus visiblement vers le bas lors du chargement de la page lorsque product_image_white_borders dans le thème view.xml est désactivé. Auparavant, l’image du produit se déplaçait visiblement vers le bas lors du 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 des produits lorsque le client est abonné aux alertes de baisse de prix. Auparavant, les notifications de baisse des 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 des attributs de produit par le biais de l’API web. Vous ne pouvez pas activer le Use in Layered Navigation Catalog champ lorsque le 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 appropriée une fois qu’un acheteur a ouvert la page, a 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, malgré leur statut et 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 de prix de produit lorsque plusieurs lignes étaient disponibles avec le même SKU et store_view_code générait des prix inexacts pour les portées d’affichage par défaut et Toutes les boutiques.
  • Les commerçants peuvent désormais ajouter une image de GIF à la galerie d’images d’un produit à partir de l’administrateur. Auparavant, Adobe Commerce affichait cette erreur : imagecolorsforindex(): Argument #2 ($color) is out of range.
  • Des vérifications ont été ajoutées pour gérer les erreurs résultant de clés de tableau non définies. Auparavant, une erreur s’était produite lors de la génération de la liste autorisée du schéma déclaratif.
  • Adobe Commerce 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 attendues. 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.
  • Adobe Commerce 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 de catalogue

  • Les règles de catalogue sont désormais correctement indexées lorsqu’elles sont activées par la mise à jour planifiée. Par conséquent, les prix actualisés 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 la première règle de catalogue ne soit terminée, les prix de remise de la règle de catalogue n’étaient pas générés pour la seconde règle de catalogue.
  • Les règles de catalogue sont désormais appliquées comme prévu dans un environnement multi-sites web.

Produits configurables

  • Les commerçants peuvent maintenant sélectionner Skip quantity at this time et Skip image uploading at this time lors de la configuration d’un produit configurable sans affecter la source des produits simples associés. Précédemment, en sélectionnant Skip quantity at this time ont entraîné la disparition de sources de produits.
  • Le 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 avec deux produits enfants ne sont plus marqués comme en rupture de stock lorsqu’un produit enfant est désactivé par une mise à jour planifiée.
  • Les performances des opérations d’enregistrement pour les produits configurables avec plusieurs options ont été améliorées. Auparavant, les expirations de délai pouvaient se produire pendant les opérations d’enregistrement du produit. GitHub-36928
  • L’affichage en storefront des prix des produits configurables change désormais comme prévu lorsqu’un acheteur sélectionne une option de produit. GitHub-37378

Coupons

  • Les codes promotionnels avec un nombre limité d’utilisations par client peuvent désormais être utilisés une seconde fois lorsque la commande pour laquelle ils étaient utilisés précédemment échoue. Auparavant, le code promotion n’était pas publié lorsque la commande précédente était annulée.
  • Les codes promotionnels contenant des espaces ne sont plus invalidés. Auparavant, si un code de coupon contenait un espace (avant ou après le code réel), la validation échouait. GitHub-38048
  • Les acheteurs peuvent désormais utiliser deux codes de coupon générés automatiquement distincts qui ont été générés par la même règle de prix de panier. Le Uses per Coupon le champ est désormais activé lorsque le type de coupon sélectionné est Auto (similaire pour le type de coupon =Specific Coupon) . Cela permet à l’acheteur d’appliquer plusieurs codes de coupon au même prix de panier si les codes sont différents.
  • La valeur du coupon à usage unique d’un acheteur est désormais restaurée comme prévu lorsque la commande à laquelle elle a été appliquée est annulée.
  • Le GET V1/coupons/<couponId> Le point d’entrée renvoie désormais la réponse attendue complète pour les coupons créés manuellement, comme pour les coupons générés automatiquement. Auparavant, certains champs étaient omis (par exemple, usage_limit, usage_per_customer, et created_at).

cron

  • Le aggregate_sales_report_bestsellers_data La tâche cron ne crée plus de très grandes tables MySQL temporaires et se termine désormais correctement. Cette tâche cron insère désormais des données par magasin, et non pour tous les magasins en même temps. Auparavant, cette tâche cron pouvait entraîner : No space left on device erreurs.
  • Nombre d’enregistrements en attente dans le cron_schedule Le tableau a été réduit en empêchant les tâches cron d’essayer d’acquérir des verrous de tâches cron inutiles. Auparavant, les tâches cron essayaient d’acquérir des verrous lorsqu’il était trop tard pour exécuter la tâche. Traitements cron dans cron_schedule n’ont pas été marqués comme manqués, même s’ils avaient déjà dépassé leur heure prévue. Commerce a également affiché cette erreur à plusieurs reprises 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
  • Le 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 le tableau des guillemets. Cette modification améliore les performances de la tâche cron lors du traitement de nombreux devis.
  • Les utilisateurs administrateurs peuvent désormais afficher la tâche bin/magento cron:run Le processus est 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

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

Segments clients

  • Les conditions de segment client chargent désormais tous les clients correspondants comme prévu. Auparavant, la liste des clients et clientes correspondant au segment client ne contenait pas tous les clients et clientes correspondants.

VAE

  • L’indexeur EAV ne nécessite plus la suppression des entités non visibles pendant le traitement par lots. Par défaut, l’indexeur ne regroupe plus de produits non visibles et les performances de l’indexeur se sont améliorées.

E-mail

  • Les e-mails contenant des signes diacritiques ou des accents (c’est-à-dire des e-mails utf8) sont désormais pris en charge pour les clients et les sociétés, ainsi que pour le passage de commandes par des invités et des clients enregistrés. Auparavant, Commerce n’enregistrait pas les enregistrements de clients contenant des signes diacritiques et affichait cette erreur : Something went wrong while saving the customer.
  • Les noms des expéditeurs d’e-mails ne peuvent plus contenir de deux-points. Une nouvelle règle de validation empêche désormais l’enregistrement des noms d’expéditeur qui contiennent les deux-points dans la section Stocker les adresses électroniques de l’administrateur Stores > General. Auparavant, les commerçants pouvaient enregistrer un nom d’expéditeur qui contenait un caractère deux-points, ce qui entraînait des erreurs de serveur de messagerie.
  • Les options d’image ne s’affichent plus comme balises de HTML dans les e-mails des clients de retour (modèle par défaut) pour les produits avec des options d’image personnalisées.
  • Les détails de l’administrateur d’entreprise sont désormais enregistrés comme prévu et les administrateurs sont correctement redirigés, lorsque les e-mails d’affectation d’administrateur d’entreprise contiennent un CMS Block URL variable.
  • Les adresses e-mail des clients peuvent désormais inclure des signes diacritiques. Auparavant, la validation front-end interdisait la création d’un utilisateur avec des signes diacritiques dans son adresse e-mail. GitHub-12075
  • Les e-mails 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 e-mails n’étaient pas traduits.
  • POST V1/order/notify-orders-are-ready-for-pickup envoie désormais un e-mail 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 n’est désormais déclenché que lorsque la demande a été honorée sans exception.

Framework

  • Amélioration du débogage en ajoutant le UNCACHEABLE lorsqu’un en-tête HTTP avec vernis est en cours d’utilisation. Auparavant, uniquement HIT ou MISS valeurs générées. GitHub-37912
  • Ajout de code pour prendre en charge la gestion par défaut de la compression Varnish. GitHub-38309
  • Le bin/magento varnish:vcl:generate La commande comprend 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 de Commerce. GitHub-37363
  • La prise en charge de Varnish 4.x et 5.x a été supprimée de la base de code. GitHub-38304
  • phpcodesniffer-composer-installer dans 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
  • Code refactorisé dans toute la base de code créée lors de l’utilisation du codage qui imposait que toute section de cache incluse dans le app/etc/env.php Le fichier doit inclure une section frontale. Cette refactorisation résout les problèmes potentiels lors de la mise à niveau des déploiements Commerce antérieurs à la version 2.4.4. GitHub-38363
  • Clarification du message d’erreur associé à StockItemValidator.php lorsqu’un ID 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 dans CompositeTagGenerator pour éviter les erreurs lors de la compilation de l’injection de dépendance. Auparavant, en exécutant la bin/magento setup:upgrade commande lorsque la Magento_DirectoryGraphQl et Magento_StoreGraphQl Les modules ont été désactivés, ce qui a provoqué une erreur. GitHub-38165
  • L’inutilisé AlgorithmProviderFactory La classe a été supprimée, ainsi que les dépendances de cette classe dans les classes , notamment JweAlgorithmManagerFactory.php, JweContentAlgorithmManagerFactory.php, et JwsAlgorithmManagerFactory. GitHub-37783
  • Le var/log/system.log le fichier ne contient plus main.INFO error messages. Le journal des entrées de menu a été déplacé du niveau INFO vers DEBUG. Auparavant, le var/log/system.log Le fichier a été inondé de messages comme celui-ci : Add of item with id Magento_Theme::design_config was processed … .
  • Le préchargement des redis n’échoue plus lorsque exec() renvoie false. La vérification a été ajoutée au processus de préchargement pour éviter array_combine de la réception false comme deuxième argument. Par conséquent, le préchargement continue de s’exécuter lorsque exec() renvoie false. GitHub-37509
  • A refactorisé le Magento_CatalogWidget module à remplacer $block fonctions d’échappement avec $escaper fonctions d’échappement. GitHub-37107
  • Swaziland a été mis à jour vers Eswatini dans toute la base de code. GitHub-37873
  • Ajout de la nouvelle monnaie nicaraguayenne (NIO) à la liste des monnaies disponibles.
  • A modifié le nom de reponseBody variable en responseBody dans app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php.GitHub-38093
  • Correction des erreurs d'arrondi du sous-total qui se produisaient dans les transactions pour les produits pour lesquels la quantité décimale a été activée. GitHub-37817
  • Le filtre de date de la grille de clients d’administration fonctionne désormais comme prévu en fonction du paramètre régional spécifié.
  • Le bin/magento setup:upgrade la commande n’échoue plus en raison de la $schemaPatch type de données de variable. Auparavant, la valeur de chaîne était transmise à . get_class qui a provoqué l'erreur. GitHub-37545
  • Échecs de lecture de base de données critique lorsque synchronous_replication est activé pour que les connexions esclaves sur Adobe Commerce Cloud ne se produisent plus.
  • 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 le consommateur. Auparavant, la connexion était interrompue.
  • Le magento/module-release-notification le module principal a été marqué comme obsolète dans le code 2.4-develop 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 de proxy génère désormais des fichiers proxy et d’usine comme prévu pour les déploiements s’exécutant en mode production. GitHub-35252
  • L'état indien du Ladakh est maintenant listé comme une option dans l'adresse de l'administrateur State menus déroulants. GitHub-33698
  • L’indicateur 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 du framework. GitHub-37245, GitHub-37246, GitHub-37249, GitHub-37263
  • Le sérialiseur JSON dans User Le module a été remplacé par un nouveau sérialiseur plus précis (JsonHexTag). Auparavant, Commerce se bloquait parfois lors de l’utilisation de données sérialisées par le sérialiseur standard lorsqu’elles contenaient des éléments sans é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 désormais fermées avant que le gestionnaire de processus ne crée des processus.
  • Le programme de validation des messages de la file d’attente valide désormais le sous-type de tous les éléments du tableau. Auparavant, Commerce avait généré 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 d’alerte de produit ne se générait pas correctement lorsqu’une nouvelle file d’attente de messages était créée avec un échange personnalisé. Si la connexion de file d’attente pour une rubrique a été configurée dans app/etc/env.php avec un échange personnalisé, une nouvelle liaison a été créée pour toutes les rubriques avec cet échange personnalisé. Les commerçants ne pouvaient pas traiter les alertes de produits.
  • Formats temporels marqués d’un /* mariadb-5.3 */ le commentaire ne provoque plus d’erreurs pendant 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 maintenant comme prévu pour remplacer l'implémentation de base du stockage de fichiers par défaut. Auparavant, les données pouvaient être endommagées lorsque ce pilote était configuré pour le stockage de fichiers. GitHub-37844
  • bin/magento config:show et set commandes qui utilisent $_ENV les variables prennent désormais en charge l’utilisation de codes de site web et de magasin qui contiennent des caractères camelcase ou majuscules.
  • Classes ajoutées avec !important comme utilisé dans Tailwind 3 pour la prise en charge de la disposition CSS. GitHub-37568
  • Un manquant jQuery une dépendance a été ajoutée à . trim-input.js fichier . GitHub-37683
  • Les détails spécifiques à l’événement sont désormais transmis en tant que deuxième attribut (context) du log méthode. GitHub-37879
  • Les valeurs de format ont été ajoutées aux images du catalogue et les scripts inutiles ont été supprimés de la structure de l’interface utilisateur. GitHub-37691
  • Les messages d’erreur révisés déclenchés par une configuration XML non valide seront plus informatifs. GitHub-37788
  • Code obsolète refactorisé lié à la création de propriétés dynamiques dans toute la base de code.
  • Les performances des indexeurs pour les grands magasins avec des bases de données de produits extrêmement actives se sont 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 des produits pouvaient être obsolètes sur le site web. GitHub-30012
  • mview_state le statut d'enregistrement indique désormais précisément l'état en fonction de l'activité du journal des modifications 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 lorsqu’il n’y avait aucune nouvelle entrée dans le journal des modifications.
  • Prise en charge ajoutée pour le precision option de format monétaire pour préserver la parité des fonctionnalités avec l’élément 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 Commerce est connectée au stockage S3. Auparavant, Commerce affichait cette erreur : Cannot create image resource. File not found. GitHub-35706
  • Adobe Commerce 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
  • Le Administrators Le nom a été supprimé de la requête utilisée pour récupérer un rôle d’administrateur lors de la création du rôle d’administrateur. GitHub-36998
  • Le bin/magento setup:config:set la commande 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 les 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 d'État au Costa Rica. GitHub-37382.
  • Amélioration du message d’erreur pour le scénario où l’utilisateur ou l’utilisatrice tente d’accéder à une URL non valide à partir de l’administrateur. GitHub-35682.
  • Param $options[position] pour les symboles de devise fonctionne désormais comme prévu et prend en charge la personnalisation de la position du symbole de devise. Auparavant, après la migration de Zend Framework 1, le toCurrency méthode ignorée position paramètre . Ce problème survenait dans l’interface d’administration.
  • Code obsolète refactorisé lié à la création de propriétés dynamiques dans toute la base de code.
  • Les formats de style personnalisés créés en étendant l’éditeur TinyMCE dans les versions d’Adobe Commerce et de Magento Open Source antérieures à la version 2.4.6 sont désormais disponibles dans le Créateur de page comme prévu text type de contenu. Auparavant, le format de style personnalisé était ignoré et seuls les formats par défaut étaient chargés après la mise à niveau vers Adobe Commerce 2.4.6-p1. GitHub-36950
  • Ajout de la note d’information suivante à la quote.php fichier : Important: This method also copies customer data to quote and removes quote addresses. GitHub-37400
  • L'instanciation du fournisseur de verrous passe maintenant par \Magento\Framework\Lock\Proxy classe. Le fournisseur de verrous est désormais configuré avec la variable lock configuration d’à l’aide de app/etc/env.php fichier .
  • Le mutex a été implémenté pour les commandes afin d’empêcher les conditions de concurrence lors de la mise à jour par des requêtes simultanées. Auparavant, les requêtes simultanées (conditions de concurrence) pour les annulations de commande entraînaient des entrées dupliquées dans le inventory_reservation tableau.
  • Le populateWithArray La fonction transforme désormais correctement les propriétés d’objet en casse de serpent, ce qui la rend compatible avec le AbstractModel getters et setters. Auparavant, la mise en forme de la casse de serpent était incorrecte lorsque le nom de l’attribut de données contenait plusieurs lettres majuscules à la suite.
  • La valeur d’incrémentation automatique dans catalog_product_entity_varchar Le tableau s’incrémente désormais correctement après l’enregistrement d’un produit. Auparavant, cette valeur augmentait de dix.
  • Adobe Commerce ne renvoie plus cette exception de système de fichiers lorsque vous tentez de vider le cache JavaScript/CSS : No such file or directory.
  • La valeur de value_id dans customer_entity_int est désormais incrémenté correctement. Une requête de mise à jour est exécutée à la place de insert on duplicate key update lors de la mise à jour d’une entité qui incorpore ces attributs. Par conséquent, les colonnes d’incrémentation automatique utilisées dans le modèle EAV augmentent désormais de manière linéaire. Auparavant, le processus d’incrémentation automatique pour les valeurs ignorées des colonnes en raison de l’échec des requêtes d’insertion. GitHub-28387
  • Suppression des espaces inutiles de id attributs qui ne le nécessitent pas. (Ce bogue a été introduit par un changement de code dans Adobe Commerce 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 nuanciers Helper a été restructuré pour 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 est resté 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 la file d’attente sont désormais traités dans l’ordre dans lequel ils sont publiés lorsque le client est démarré. Auparavant, le premier message était extrait de la file d’attente pour simplement vérifier si les messages étaient placés en file d’attente. Il était ensuite rejeté, ce qui entraînait le dernier traitement du premier message.
  • Adobe Commerce ne renvoie plus d’exception dans le fichier journal lorsqu’un utilisateur tente d’imprimer une étiquette d’expédition. Auparavant, si une extension modifiait les en-têtes de réponse contenant une pièce jointe, le système générait 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

  • A modifié le nom de reponseBody variable en responseBody dans app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php.GitHub-38093
  • La planification des mises à jour de produit n’efface plus les données d’attribut à 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’extension de la portée du magasin d’attributs inchangés lors du chargement avec ProductRepository. GitHub-8897
  • Les acheteurs peuvent désormais accéder aux pages configurées en tant que nœuds de hiérarchie lorsque les restrictions d’accès sont activées. Auparavant, une boucle de redirection infinie s’était produite et le navigateur a généré cette erreur : ERR_TOO_MANY_REDIRECTS.
  • Des messages d’erreur informatifs ont été ajoutés à la validation des champs personnalisés sur les pages de détails du produit. GitHub-38006
  • Les caractères spéciaux peuvent désormais être utilisés dans les champs de nom. Auparavant, l’esperluette (&) était limitée dans le programme de validation des noms, ce qui bloquait les opérations d’ajout ou de modification des clients lorsque le nom du client contenait une esperluette. GitHub-38080
  • Les utilisateurs administrateurs disposant d’un accès restreint à un magasin spécifique peuvent désormais utiliser une action de mise à jour en masse pour mettre à jour les révisions de produits. Auparavant, Commerce avait généré l’exception suivante : 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 de 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 aux sites web pour les acheteurs invités et ne contient pas de produits qui ont été ajoutés à partir des 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.
  • La règle de produit associée Est l'un de La condition fonctionne désormais correctement lorsqu’elle est configurée avec le Produits à faire correspondre paramètre . Auparavant, cette règle n’identifiait aucun produit.
  • La grille de pages CMS filtre désormais les pages en fonction de la vue de magasin affectée à l’utilisateur administrateur. Auparavant, la portée du rôle n’était pas appliquée.
  • Les mots de passe s’affichent désormais comme prévu lorsque le Show Password la case à cocher sur la page de connexion est active.
  • L’attribut système Jeton de réinitialisation de mot de passe de l’entité client (rp_tokenLa validation a été supprimée de la validation des attributs lors de la création du compte client et la validation des diacritiques est incluse uniquement dans l’e-mail du client qui en résulte. Auparavant, Commerce 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 administrateurs de l’entreprise peuvent désormais ajouter des utilisateurs de l’entreprise depuis le storefront. Auparavant, Commerce consignait cette erreur lorsque l’utilisateur administrateur tentait d’ajouter un nouvel utilisateur : report.CRITICAL: Error: Call to a member function __toArray() on null in app/code/Magento/LoginAsCustomerLogging/Observer/LogSaveCustomerObserver.php:123.
  • Les clients peuvent désormais se connecter avec un nouveau mot de passe depuis un appareil après avoir réinitialisé leur mot de passe sur un autre appareil.
  • Adresse du client administrateur État/Province Le champ conserve désormais la dernière valeur enregistrée comme prévu. Auparavant, lorsque vous supprimiez la valeur de ce champ, Commerce continuait à afficher la valeur supprimée dans le État/Province champ . GitHub-36846
  • Adobe Commerce ne renvoie plus d’erreur de violation de contrainte lorsque vous désélectionnez une page CMS pour la première fois, puis sélectionnez-la.
  • Une racine de site web de hiérarchie est désormais correctement affectée à une page CMS nouvellement créée. Auparavant, la sélection de la racine du site web de hiérarchie ne correspondait pas sur les pages CMS nouvellement créées.
  • Les erreurs ne se produisent plus lors des demandes de flux RSS pour les catégories lorsque RSS Feed Top Level Category est activé. Auparavant, la navigation dans la page de catégorie des flux RSS entraînait des Elasticsearch CRITICAL erreurs dans les fichiers journaux lorsque RSS Feed Top Level Category a été activé.
  • La valeur correcte est maintenant enregistrée pour . gws_store_groups lorsque l’étendue du rôle est modifiée lors de la création du rôle utilisateur. Auparavant, lorsque l’étendue du rôle était sélectionnée comme All, le gws_store_groups La valeur a été enregistrée comme nulle lors de la création de l’utilisateur mais pas lors de la modification du rôle. En outre, si la portée du rôle a été sélectionnée comme Custom, puis le gws_store_groups La valeur a toujours été enregistrée comme nulle.
  • Vous pouvez désormais accéder à la page Réinitialiser le mot de passe en cliquant sur le lien Réinitialiser le mot de passe administrateur sur la page Connexion administrateur lorsque Add Store Code to Urls Le paramètre est activé. Le lien Mot de passe réinitialisé par l’administrateur ouvrait précédemment la page de connexion ou la page 404.
  • La période du 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 converti en UTC afin de récupérer les données de la base de données.
  • Le filtre de hiérarchie CMS fonctionne comme prévu après avoir filtré une vue de magasin, puis cliqué sur Save on Admin Content > Hierarchy. Précédemment, en cliquant sur Save actualise la page, mais le contexte est perdu et la vue de magasin sélectionnée n’est plus affichée.
  • Cliquer sur le Send invitation bouton (Admin Marketing > Private sales > Invitation) envoie maintenant 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 à zéro octet peuvent désormais être copiés dans le stockage distant avec AWS S3.
  • Les utilisateurs administrateurs peuvent désormais ajouter une nouvelle adresse de client à partir de l’administration lorsque ce client a été créé pour un autre site web dont l’ID de magasin ne correspond pas à l’ID du site web. Auparavant, Adobe Commerce affichait ce message pop-up : Something went wrong. GitHub-36582
  • La page de l’éditeur de blocs CMS affiche désormais le widget approprié block_id valeur. GitHub-29644

Cartes-cadeaux et emballage

  • Les commerçants ne peuvent plus créer de carte cadeau avec une valeur négative.
  • Le setGiftOptionsOnCart mutation supprime désormais l’emballage-cadeau d’une commande comme prévu. La valeur de gift_wrapping_id n’est plus défini au niveau du panier. Auparavant, le gift_wrapping_id a été mis à jour à sa valeur précédente après le passage de la commande même lorsque cette valeur n’était pas définie au niveau du panier.
  • Les comptes de cartes-cadeaux restent maintenant actifs comme prévu lorsque le remboursement partiel d'un produit simple est traité à partir de la commande à laquelle la carte a été appliquée. Auparavant, le compte de carte cadeau était supprimé.
  • Le setGiftOptionsOnCart mutation met désormais à jour la base de données lors de la suppression d’un message cadeau du panier. Auparavant, les détails du message n’étaient pas mis à jour dans la base de données et le message cadeau n’était pas supprimé du panier.
  • Le registre des cadeaux Event Information Le libellé est maintenant traduit comme prévu.
  • Les sous-totaux sont désormais correctement calculés pour les montants de carte cadeau personnalisée.
  • Les cartes-cadeaux sont désormais correctement appliquées lors du passage en caisse avec plusieurs adresses. Auparavant, les montants des cartes-cadeaux étaient appliqués de manière incorrecte pour les envois multi-adresses, ce qui entraînait des montants de cartes-cadeaux non valides.
  • L’émulation commence désormais pendant send() appelle une fois l’émulation terminée pendant l’ getInfoBlockHtml() et aucune erreur n’est consignée. Auparavant, le system.log le fichier a été inondé avec cette erreur : main.ERROR: Environment emulation nesting is not allowed. GitHub-35603
  • Vous pouvez désormais utiliser le updateCartItems mutation pour mettre à jour une carte cadeau dans un panier. Auparavant, seul le montant de la carte pouvait être mis à jour dans le panier par cette mutation.
  • L’emballage du cadeau est désormais inclus comme prévu dans un devis basé sur des paniers fusionnés. Auparavant, les messages cadeaux étaient fusionnés avec succès, mais pas les sélections d’habillage.
  • Le addProductsToCart mutation ajoute désormais une carte cadeau à un panier. Auparavant, cette requête attendait le nom du destinataire de la carte cadeau, mais le nom de l’expéditeur était renvoyé à la place. Adobe Commerce a généré cette erreur : Please specify a recipient name. GitHub-36665

Google Tag Manager

  • Le module Google Tag envoie désormais les données correctes vers la couche de données. Auparavant, les données des impressions de page n’étaient pas transmises à la couche de données.

GraphQL

  • Le getCustomerWishlist la requête ne génère plus d’erreur de serveur interne lors de l’interrogation de listes contenant des produits configurables.
  • Le customerCart la requête renvoie désormais toutes les remises appliquées sur les produits groupés comme prévu. Auparavant, le total des remises appliquées à un produit groupé était renvoyé en tant que zéro.
  • Le getCustomerWishlist la requête 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, le cache et les tests associés ont été déplacés du . CustomerGraphQl module au NewsletterGraphQl module.
  • Le addProductsToCart la mutation ne signale plus d’erreurs sans rapport 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
  • Le products le filtre de produit de requête peut désormais renvoyer des résultats de correspondance partielle ainsi que des correspondances complètes. Le nouveau match_type L’attribut (PARTIAL, FULL) prend en charge la spécification du type de correspondance. Auparavant, la requête renvoyait uniquement les correspondances complètes.
  • Mutex a été ajouté à addConfigurableProductsToCart requête 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 de 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 du setShippingAddressForEstimate recherchez 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.
  • Le products requête ConfigurableProduct.configurable_options Le champ renvoie désormais uniquement les valeurs qui ont au moins un produit activé. Auparavant, ce champ renvoyait des produits simples désactivés.
  • Amélioration des performances du GetCategories query en réduisant le nombre de requêtes SQL inutiles qu’il génère.
  • La gestion des erreurs d’adresse pour les composants de bibliothèque GraphQL fonctionne désormais comme prévu.
  • Le products la requête renvoie désormais tous les détails de tarification storefront pertinents lorsque la tarification dynamique est définie sur non et que des remises sont appliquées. Auparavant, la fourchette de prix des produits n’était pas renvoyée. GitHub-35649
  • Les noms des transactions GraphQL incluent désormais uniquement les noms des requêtes de niveau supérieur dans les journaux New Relic. Auparavant, les noms de transaction incluaient également des noms de requête secondaires.
  • La gestion des erreurs d’adresse 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 basculé sur la Visibility: Catalog paramètre . GitHub-36591
  • Le customer la requête renvoie désormais une valeur 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 à présent, mappez à . FilterRangeTypeInput filtrer dans les requêtes de produits. Auparavant, ces attributs étaient mappés à . FilterMatchTypeInput. Suite à cette modification, les requêtes filtrent sur DateTime attributs requis from et to valeurs au lieu de valeurs correspondantes.
  • Le customer La requête renvoie désormais uniquement les avis clients liés à une vue de magasin spécifique comme prévu lorsqu’elle est filtrée par ID de magasin.
  • Le categories la requête ne renvoie plus d’erreur lorsque items.redirect_code la valeur de réponse contient une valeur nulle. GitHub-36675
  • Les produits liés aux règles se chargent désormais comme prévu dans les réponses de GraphQL après un nettoyage complet du cache. Auparavant, les attributs EAV du produit responsables des correspondances basées sur des règles n’étaient pas chargés pour l’entité demandée, bien qu’ils aient été chargés après le rechargement de la page du produit storefront.
  • Le changeCustomerPassword la mutation déclenche désormais l’e-mail comme prévu après la réinitialisation réussie d’un mot de passe.
  • urlResolver et route les requêtes renvoient désormais un résultat lorsque Target Path de réécriture d’URL est une URL absolue. Auparavant, le urlResolver La requête a renvoyé la valeur NULL lorsque vous l’avez utilisée pour récupérer les données de redirection.
  • Le products la requête renvoie désormais les libellés corrects lorsqu’il existe plusieurs vues de magasin. GitHub-29635
  • Le categoryList la requête renvoie désormais une valeur renseignée product de la section options bloquer les produits enfants des produits groupés comme prévu. Auparavant, aucune information sur les produits enfants du lot n’était renvoyée.
  • Le route la requête renvoie désormais des itinéraires pour les catégories et les produits comme prévu sans erreur de serveur interne. GitHub-36544
  • Le products la requête récupère maintenant . url_key valeurs lorsque plusieurs catégories sont sélectionnées.
  • product les requêtes renvoient désormais des agrégations uniquement pour les produits affectés au catalogue partagé spécifié. Auparavant, les données d’agrégation pour les produits non affectés à un catalogue partagé s’affichaient dans une navigation superposée.
  • Le OptionValueProvider classe get() La méthode renvoie désormais une valeur d’option d’attribut en fonction de la valeur donnée option_id comme prévu. Auparavant, il renvoyait une erreur. GitHub-35910
  • Le products La requête renvoie désormais toutes les agrégations (filtres) disponibles et leurs libellés correctement traduits. Auparavant, les libellés d’agrégation des prix et des 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 crosssell_products le ProductInterface. GitHub-29769
  • Le products la requête renvoie désormais les produits associés, de montée en gamme 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 des produits associés, triées par position. GitHub-33010
  • category_url_path a été ajouté à ProductAttributeFilterInput, qui prend en charge la demande de tous les produits d’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 exécutée avant la méthode qui gère la validation. GitHub-31336

Image

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

Importer/exporter

  • Le processus d’importation de produit analyse désormais les valeurs avec le séparateur correct. Auparavant, le processus d’importation utilisait l’opérateur de 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 les valeurs sont mises à jour par l’importation d’un fichier 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 chargement du taux de table est temporairement stocké jusqu'à l'exécution de la tâche cron du processeur de configuration asynchrone. Cette tâche cron récupère le nouvel emplacement du fichier et le traite en conséquence. Auparavant, les taux de mise à jour des tableaux 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, quel que soit l’horodatage. Auparavant, la grille n’affichait pas tous les fichiers exportés qui avaient la même date et heure. GitHub-36951
  • Les produits dotés d’options personnalisables peuvent désormais être importés. Auparavant, les données d’options étaient perdues lors de l’importation. GitHub-37598
  • Les caractères spéciaux dans les 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 client à l’aide de Customers and Addresses (single file) L’option est maintenant terminée.
  • L’importation du produit n’échoue plus en raison d’un manque de mémoire. Auparavant, l'importation d'un nombre illimité de produits dans une base de données contenant 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’existe aucune donnée valide à importer et Commerce affiche désormais cette erreur : There are no valid rows to import. Auparavant, la validation réussissait dans 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 ne remplace ou ne supprime plus les clés d’affichage de magasin par défaut existantes. Les réécritures d’URL ne sont désormais régénérées pour les vues de magasin que lorsqu’elles ne sont pas remplacées url_key valeur. Auparavant, l’importation de réécritures d’URL avec la même clé URL remplaçait la clé d’URL d’affichage de magasin par défaut existante. (key_store Les réécritures d’URL ont été supprimées, mais la réécriture d’URL au niveau d’affichage Boutique par défaut pour le produit était toujours définie sur key_store.)
  • Le nombre de produits ne change plus de manière inattendue lors de l’importation. Le vidage du cache est désormais reporté après le processus d’importation.
  • Le statut des actions d’importation planifiées représente désormais précisément la réussite ou l’échec de l’opération d’importation. Auparavant, toutes les actions étaient enregistrées comme réussies.
  • Commerce prend désormais en compte les Disable Automatic Group Change Based on VAT ID paramètre lors de l’import des enregistrements client. Auparavant, le disable_auto_group_change La valeur 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 fichier XML Excel code désormais les champs sous la forme d’un String. Auparavant, le rédacteur Excel codait ces valeurs comme suit : number, ce qui entraînait des fichiers non valides. GitHub-33422
  • Les commerçants peuvent désormais spécifier le paramètre régional dans lequel 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, Adobe Commerce utilise le paramètre régional de configuration par défaut (et non la vue de magasin par défaut) pour analyser les données. Dans les processus d’administration, d’importation et d’exportation 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 renvoient plus d’erreur de validation. Auparavant, cette opération d’importation pouvait entraîner une erreur de validation sur le country_of_manufacture attribut.
  • Les données sources de stocks sont désormais importées par le processus d’importation du magasin. Commerce affiche désormais un message de notification complet une fois le processus d’importation terminé. Auparavant, le message de notification était manquant.
  • L’invalidation de l’indexeur redondant a été supprimée lorsque les indexeurs sont en mode planifié.
  • Les produits exportés ont désormais le bon manage_stock valeur lorsque l’option use_config_manage_stock valeur égale à 1. Auparavant, cette valeur par défaut était incorrecte.
  • Adobe Commerce 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 du produit n’est plus interrompu lorsque les images du 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, Adobe Commerce affichait cette erreur : Maximum error count has been reached or a system error is occurred!.
  • Les performances de l’exportation des clients à partir de la grille des clients ont été améliorées dans les déploiements où le B2B est activé.
  • Le processus d’importation de produit ne renvoie plus d’erreur de validation lorsqu’une valeur d’attribut dans configurable_variations La colonne 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 Page Builder après l’exportation et l’importation du produit.
  • Les configurations non par défaut (site web ou étendue de magasin) ajoutées en tant que variables d’environnement n’interrompent plus la app:config:import processus avec une erreur de récursivité.
  • Les indexeurs de catalogue et de prix en mode Mise à jour lors de l’enregistrement ne sont plus invalidés après l’importation. Auparavant, la version du document de l'indexeur Elasticsearch était modifiée lors de l'importation de produits nouveaux et existants.
  • Les rapports de produit sont désormais exportés vers 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 ni n’arrêtent le processus d’exportation.

Index

  • Amélioration des performances du catalogrule_product indexer lorsqu’aucune règle de catalogue n’est définie. GitHub-34784
  • Les problèmes liés aux performances de l'indexeur des prix ont été résolus. Les performances de l’indexeur ne se dégradent plus progressivement. L'indexeur a été refactorisé pour augmenter la vitesse de traitement de l'indexeur en modifiant la façon dont les tables temporaires sont créées. Ces tables temporaires sont maintenant recréées au lieu d’être traitées par des instructions de DELETE plus longues.
  • Les performances de l’indexeur de prix ont été améliorées. Une indication d’index a été ajoutée à l’indexeur de prix pour améliorer les temps d’exécution des requêtes MySQL déclenchées lors de l’indexation.
  • Tous les indexeurs utilisent désormais les mêmes couleurs pour représenter leur état. GitHub-34648
  • Les performances de l’indexeur de produit de règles 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 n’entraîne plus la mise à jour de l’index. cron tâche à échouer. GitHub-36471
  • Les problèmes d’affichage de la page des détails du produit storefront qui étaient dus à l’indexation des autorisations du catalogue ont été résolus. Auparavant, Adobe Commerce effaçait d’abord la table d’index, puis la réindexait pendant une période complète catalogpermissions_product ou catalogpermissions_category processus d’indexation. Les autorisations de catalogue ne fonctionnaient pas comme prévu sur le storefront jusqu’à ce que la réindexation soit terminée.
  • bin/magento indexer:reindex customer_grid n’échoue plus avec une erreur MySQL lorsque la grille client inclut des attributs client personnalisés nouvellement créés. GitHub-36233
  • La modification du mode d’indexeur pour plusieurs indexeurs (c’est-à-dire un changement de mode d’indexeur à action en masse) ne modifie désormais le mode d’un indexeur que 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

Infrastructure

  • A ajouté un manquant return instruction au contrôleur d'activation de l'utilisation par l'administrateur. Auparavant, il n’existait aucun return et le contrôleur dans FrontendController La classe n’a pas été traitée correctement. GitHub-31374
  • MySQL remplacé CREATE TEMPORARY TABLE ... LIKE avec refactorisé CREATE TEMPORARY TABLE pour la conformité avec MySQL 8.x. GitHub-37926
  • Adobe Commerce n’inclut plus le chemin d’accès complet à la racine du serveur dans le message d’erreur qu’il affiche lorsqu’une requête HTTP incorrecte a été envoyée au serveur. Seules les chaînes sont désormais transmises au explode méthode comme deuxième 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 dont la taille était supérieure à la valeur configurée dans php.ini . GitHub-37281
  • Les options d’attribut fournies par le modèle de source de données et installées à l’aide du correctif de données de configuration (généralement à partir de modules tiers) peuvent désormais être utilisées avec les règles de segment client. Auparavant, cette combinaison ne renvoyait pas la liste des clients qui correspondaient au segment configuré.
  • Le moteur de modèle d’e-mail peut désormais traiter correctement certaines directives imbriquées (par exemple, {{if}}{{depend}}...{{/depend}}{{/if}}). GitHub-36438
  • product Les requêtes avec des données d’agrégation renvoient désormais les valeurs de libellé correctes pour les attributs de produit de type booléen. GitHub-29123
  • 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é. Des 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 membre getId() le int, qui déclenchait parfois une exception lorsqu’un client était affiché dans l’interface d’administration.
  • 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 repassent désormais automatiquement au statut En stock après une note de crédit qui inclut un retour de la quantité de produit. Auparavant, si un produit était en rupture de stock, mais qu'un avoir renvoyait du stock de ce produit, les commerçants devaient modifier manuellement le statut du stock du 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 sources par défaut.
  • Correction de problèmes liés à l’indexeur d’inventaire qui affectaient la précision de l’inventaire du stock de storefront des produits configurables. GitHub-36421
  • Mise à jour des articles d'origine de stock via REST V1/inventory/source-items fonctionne désormais plus rapidement. L’appel ne déclenche plus de réindexation ou d’opération de nettoyage du cache sur les produits d’inventaire inchangés.
  • REST V1/products/<sku> déclenche désormais une réindexation automatique des stocks lors de la mise à jour de l’état des stocks d’un produit. Auparavant, une réindexation de stock n’était pas déclenchée pour le produit mis à jour.
  • Le statut 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.
  • Le POST <store_code>/V1/inventory/source-items L’appel REST valide désormais la payload pour les espaces blancs dans les éléments sources d’inventaire renvoyés et envoie un message d’erreur sur la validation, le cas échéant.
  • Les commerçants peuvent désormais avertir les acheteurs qu’une commande est prête à être retirée lorsque No Manage Stock paramètre est activé pour un produit. Auparavant, lorsque ce paramètre était activé, Commerce affichait le message d’erreur suivant : Your order is not ready for pickup.
  • Les commerçants peuvent désormais créer un avoir 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 Commerce a lancé une TypeError exception.
  • Le nombre de sources de grille d’administration renvoie désormais des enregistrements valides après l’application d’un filtre. Auparavant, le getSourcesCount La méthode 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 d’administration lorsque vous triez des produits à l’aide de l’option « Déplacer les produits en rupture de stock vers le bas ». Le problème a été résolu en plaçant l'instruction de jointure SQL dans l'instruction conditionnelle uniquement après s'être assuré qu'elle n'est pas déjà incluse. Auparavant, la page était redirigée vers le tableau de bord d’administration avec le message :Invalid security or form key. Please refresh the page.
  • AUTO_INCREMENT du inventory_source_item le tableau n’est plus augmenté à chaque UPDATE opération. Auparavant, chaque mise à jour augmentait la AUTO_INCREMENT de ce tableau, qui a finalement provoqué la AUTO_INCREMENT valeur à être hors plage lors de l’ajout d’un nouvel enregistrement au inventory_source_item table. Par conséquent, les utilisateurs administrateurs ont reçu l’erreur suivante lorsqu’ils ont essayé de créer un nouveau produit à partir de l’administrateur : Numeric value out of range....
  • Les utilisateurs administrateurs peuvent désormais ajouter un produit à un panier client à partir de l’administration pour une portée d’affichage de magasin particulière 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.
  • La synchronisation entre l'inventaire et le catalogue ne repose plus sur Synchronize with Catalog paramètre de configuration. Auparavant, les produits n’étaient correctement synchronisés que lorsque ce paramètre était activé.
  • Adobe Commerce 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 se situe dans la plage de produits disponibles lors de la sélection de la source d’expédition.
  • Le statut du stock de produits configurables est désormais correctement mis à jour lorsqu’un produit configurable et ses produits enfants Stock Availability la valeur est mise à jour par une mise à jour du stock en masse. Auparavant, vous ne pouviez pas remettre en stock par mise à jour en masse un produit configurable et ses produits enfants.
  • Le type de données pour les sources non par défaut a été mis à jour vers . DECIMAL (12, 4) pour prendre en charge jusqu’à huit chiffres entiers, ce qui correspond à la même limite implémentée pour le stock par défaut. Cette valeur est désormais synchronisée avec les pages Admin Ajouter et modifier des produits , qui prennent en charge la validation des entrées jusqu’à huit chiffres pour tous les types de sources d’inventaire. Auparavant, l’entrée pour la variable Quantity Le champ (pour les sources non par défaut) était pris en charge jusqu’à six chiffres uniquement.
  • Les origines par défaut et non par défaut affichent désormais les informations correctes pour la quantité vendable du produit lorsqu'une origine non par défaut commandée auprès du storefront est traitée pour expédition. Auparavant, Adobe Commerce affichait un statut de stock incorrect pour les sources de produits.
  • \Magento\Catalog\Model\Product::getIsSalable() renvoie désormais le statut 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 du produit.

Journalisation

  • Mise à jour du format date et heure dans la fonction Rapports système afin d’inclure les enregistrements des fichiers journaux dans les rapports.
  • 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.

Login

  • La réinitialisation d’un mot de passe dans un navigateur et la connexion ultérieure via un autre navigateur n’entraînent 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.

Galerie de médias

  • Les commerçants peuvent désormais charger des images portant le même nom mais avec des majuscules et des minuscules différentes dans la Galerie de médias. Auparavant, les noms de fichiers image n’étaient pas sensibles à la casse dans Page Builder et les fichiers portant des noms autres que la casse étaient remplacés dans le stockage de médias Commerce hébergé sur des systèmes de fichiers sensibles à la casse.

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 Admin vers la liste des articles à commander sont désormais supprimés du panier comme prévu. GitHub-37538
  • Les commerçants peuvent maintenant créer des avoirs comme prévu pour le retour partiel des commandes qui ont été payées en partie par points de récompense. Auparavant, lorsqu'un commerçant créait un retour partiel, le statut de la commande était incorrectement identifié comme fermé, et la page de commande Admin n'affichait pas les options d'avoir.
  • La rotation du journal des actions d’administration fonctionne désormais comme prévu lorsque la fréquence d’archivage du journal de rotation est définie sur des intervalles hebdomadaires ou mensuels. Auparavant, lorsque des intervalles hebdomadaires ou mensuels étaient définis, les journaux n’étaient pas pivotés.
  • Commerce applique désormais le montant de remise correct aux commandes partiellement annulées. Auparavant, le montant de la remise était calculé dans le base_discount_cancelled La colonne n’a pas été correctement calculée lorsqu’un ordre a été modifié. La prise en charge des valeurs négatives a été ajoutée aux factures pour les commandes avec remise.
  • LE RESTE V1/orders Le point d’entrée applique désormais les cartes-cadeaux comme prévu lors de l’importation de commandes. Auparavant, les modifications apportées aux attributs d’extension de carte cadeau dans ce point d’entrée n’étaient pas enregistrées.
  • Commerce 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’Administration.
  • La page Admin - Grille des commandes client 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 cette table, la page se figeait et Commerce affichait une Request-URI Too Long erreur dans la console du navigateur.
  • Le statut de la commande est désormais marqué comme terminé plutôt que terminé lorsque le montant total de la commande a été remboursé avec un crédit en magasin et un mode de paiement supplémentaire. Auparavant, le statut de la commande était marqué comme terminé, car le montant remboursé était incorrectement calculé.
  • Amélioration des performances du OrderRepository::get() en réduisant le nombre de fois où il charge une commande depuis la base de données. Auparavant, cette méthode chargeait une commande plusieurs fois. GitHub-36636
  • Les commerçants peuvent désormais générer des avoirs pour les commandes contenant certains articles dont le total est égal à zéro lorsque d'autres articles de commande peuvent être remboursés. Auparavant, les commerçants 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 sont désormais affichés sur la page de commande lors de la 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 avoirs pour les commandes qui ne contiennent qu'un seul produit configurable sont désormais générés correctement. Auparavant, le isLast() fonction non renvoyée true comme prévu. GitHub-36722
  • Amélioration des performances du aggregate_sales_report_bestsellers_data traitement cron en optimisant la requête de données principale.
  • Adobe Commerce ne renvoie plus d’erreur lors de la création d’un avoir avec remboursement hors ligne à un solde client lorsque l’utilisateur administrateur n’a pas l’autorisation d’accéder au site web du client. Auparavant, Adobe Commerce générait cette erreur : More permissions are needed to view this itemet l'utilisateur administrateur n'a pas pu créer de remboursement de crédit de magasin.
  • Le statut de la commande est désormais correct lorsqu’un remboursement partiel a été effectué pour une commande contenant des produits groupés. Auparavant, le statut de la commande était indiqué comme terminée 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é aux autres commandes passées avec la fonctionnalité de réorganisation.
  • Les acheteurs ne peuvent plus enregistrer des statuts de commande incorrects sur la page de commande. Le statut de la commande passe de Terminé à Traitement lorsqu'un article est expédié. Auparavant, Adobe Commerce ne vérifiait pas le statut de la commande avant de l’enregistrer une fois qu’un acheteur avait saisi un commentaire. GitHub-36562
  • Adobe Commerce ne renvoie plus d’erreur sur la page de retour de commande du storefront lorsque le produit configurable renvoyé a été supprimé. Auparavant, Adobe Commerce consignait cette erreur : report.CRITICAL: Error: Call to a member function getShipmentType() on null in magento2ee/app/code/Magento/Rma/view/frontend/templates/return/create.phtml:52.
  • 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 de fuseau horaire générait une erreur lorsque le même fuseau horaire était fourni à la méthode .
  • Le tableau de bord Adobe Commerce affiche désormais les statistiques correctes des commandes au premier chargement. Auparavant, le tableau de bord affichait des informations de commande incorrectes, mais affichait 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 auprès de l’administrateur.
  • Le GET V1/orders/<OrderID> Le point d’entrée renvoie désormais des informations sur les produits configurables et simples dans la commande, quel que soit l’état de stock des produits simples. Les utilisateurs administrateurs peuvent passer des commandes maintenant uniquement si les articles sélectionnés (produits) sont en stock ou vendables. Auparavant, cette API renvoyait uniquement des informations sur les produits qui étaient en stock.
  • La page avoir ne se bloque plus lorsque la livraison gratuite est activée lorsque le prix d'expédition inclut la taxe et que les calculs de taxe sont appliqués après les remises. Auparavant, Adobe Commerce a lancé une Division by zero exception. GitHub-36800
  • Utilisation de rest/V1/orders/{id}/comments Le point d’entrée pour publier un commentaire sur une commande sans fournir de statut de commande n’affecte plus l’affichage de la commande. Auparavant, le statut de la commande était consigné comme NUL dans le sales_order et sales_order_grid et que la page Mes commandes ou la grille de commandes de l’administrateur n’affichaient pas la commande. GitHub-34180
  • Les factures, les livraisons et les avoirs peuvent désormais être replacés de l'archive avec leurs commandes associées lorsque les ID qu'ils incluent diffèrent des ID de commande. Auparavant, si une commande était déplacée vers l'archive, puis restaurée, les enregistrements de facture, d'expédition et d'avoir étaient absents de cette commande si les numéros d'identification ne correspondaient pas. GitHub-36847

Page Builder

  • Les images conservent désormais les proportions correctes lorsqu’elles sont redimensionnées dans Page Builder. GitHub-37493
  • Page Builder affiche désormais les messages d’erreur nécessaires lorsque vous essayez de charger une image dont la taille est supérieure à la taille de fichier 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 maximum spécifié.
  • Les curseurs de produit de 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 par HTML s’affiche désormais dans les modèles d’e-mail comme prévu lorsque Magento_AsyncConfig Le module est désactivé. Auparavant, les modèles d’e-mail contenaient uniquement du HTML brut.
  • Les performances des opérations d’enregistrement de Page Builder dans le navigateur Chrome ont été améliorées.
  • Vous pouvez désormais utiliser l’option Page Builder dans Admin > Content > Pages pour insérer du texte copié dans tous les styles à l’aide du text élément . Auparavant, Page Builder affichait uniquement du texte brut et n’enregistrait pas les styles.
  • Les erreurs CORS n’apparaissent plus lors de la modification du contenu du produit avec Page Builder lorsque l’utilisateur administrateur dispose d’une liste de contrôle d’accès spécifique. L’utilisateur administrateur peut désormais enregistrer le produit. Auparavant, Page Builder n’enregistrait pas le produit et le processus d’enregistrement était bloqué.
  • Des informations précises sur la taille du fichier sont désormais incluses dans l’aperçu d’image pour les images chargées dans Page Builder.
  • Les éléments de page Page Builder s’affichent désormais à une vitesse acceptable dans le navigateur Chrome (v112). Auparavant, l’enregistrement du contenu avec Page Builder s’exécutant dans le navigateur Chrome était lent, et Commerce a consigné cette erreur dans la console du navigateur : [ERROR] Page Builder was rendering for 5 seconds without releasing locks.
  • La lecture automatique de l’élément vidéo Page Builder fonctionne désormais comme prévu sur les navigateurs Safari mobiles sur iOS lorsque l’élément est directement lié à un fichier vidéo distant. Auparavant, aucune image d’aperçu ne s’affichait.
  • Page Builder fonctionne désormais comme prévu dans le navigateur Chrome. Auparavant, les modifications de contenu apportées dans ce navigateur n’étaient pas toujours enregistrées.
  • Le chargement d’une page d’édition de produit Admin sur un produit ne génère plus de Uncaught TypeError Erreur JavaScript.
  • Les images chargées par le biais de l’éditeur Page Builder sont désormais balisées selon leur utilisation sur . Content > Media Gallery. Auparavant, ces images étaient marquées comme non utilisé nulle part dans la Galerie de médias.
  • L’ajout d’un produit à un panier à partir du carrousel Page Builder ne duplique plus la quantité d’articles des pages avec deux widgets différents affichant les mêmes produits.
  • Page Builder 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 de Page Builder 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 le & caractère.
  • Le contenu de l’élément de texte Page Builder est désormais 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 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 Adobe Commerce 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 de Page Builder s’affiche désormais correctement.
  • Le filtrage de la description des métadonnées du produit lors de la création du produit à partir de l’administration a été amélioré. Auparavant, si Page Builder é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 de produit par défaut est désormais composé des éléments suivants : {{name}}. GitHub-36107
  • L’ajout d’un bloc dynamique sans contenu ne déclenche plus d’erreur.

Paiement

  • Commerce gère désormais correctement les erreurs 502 provenant 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 Commerce et ceux de PayPal.
  • Les transactions de paiement PayPal Express incluent désormais les SKU de produits enfants et les titres de produits complets. Le Magento/Paypal/Model/Cart.php Le fichier collecte désormais les SKU de produit enfants avec leur titre de produit parent afin d’identifier le titre du produit avec le SKU enfant. GitHub-36808
  • Le 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 le passage en caisse.
  • L’option Mode de paiement Vault n’apparaît plus dans le workflow de passage en caisse administrateur lorsque l’acheteur ne dispose pas d’un jeton de coffre. GitHub-36273
  • Le Venmo Le bouton peut maintenant être masqué lorsque les boutons PayPal sont activés. Auparavant, le 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 d’expédition lors de l’application du code de coupon lors du passage en caisse. Auparavant, dans ces conditions, Commerce générait une erreur et affectait des frais d’expédition forfaitaires à la commande.
  • Les problèmes liés au traitement en storefront 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 par les paiements Idéal 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 par Braintree sont désormais enregistrées par magasin. Les acheteurs ne voient désormais que les informations de carte qui ont été enregistrées dans le magasin dans lequel ils font leurs achats. Auparavant, les acheteurs pouvaient voir les informations de carte stockées de tous les magasins lors du passage en caisse. GitHub-34253
  • Les acheteurs peuvent désormais vérifier une commande envoyée à plusieurs adresses à l’aide d’un mode de paiement par Braintree lorsque le coffre pour les paiements 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 commerçants ont deux ID de compte marchand différents pour la même devise dans leur compte de Braintree.
  • Adobe Commerce ne renvoie plus d’erreur lors de la création d’une seconde facture partielle pour une commande payée par Braintree lorsque Enable Vault for Card Payments est activé. Auparavant, lorsqu’un commerçant tentait de créer une seconde facture, Adobe Commerce générait cette erreur : Your payment could not be taken. Please try again or use a different payment method. Payment method token is invalid.
  • L’option Mode de paiement du coffre de Braintree 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 le My billing and shipping address are the same Bouton.
  • Correction de problèmes liés à l'extraction avec PayPal par Braintree après la mise à niveau à partir 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 d’expédition contextuelle modale Google Pay . Auparavant, les numéros de téléphone étaient manquants.
  • Les commandes sont désormais passées avec Braintree lorsque la réponse du Braintree inclut une valeur vide pour threeDSecureInfo/eciFlag. Auparavant, une erreur PHP se produisait lors du passage en caisse lorsque cette valeur était vide.
  • Adobe Commerce ne renvoie plus d’erreur lorsqu’un acheteur applique un coupon sur la page de révision de la commande lors du passage en caisse avec Google Pay à partir du mini panier. Auparavant, les acheteurs étaient redirigés vers une page 404.
  • Les acheteurs peuvent désormais passer en caisse à l’aide de Braintree Payments et d’Adobe Commerce 2.4.6 avec ReCAPTCHA v2 ou v3 invisible. GitHub-37241
  • Les acheteurs ne peuvent plus cliquer sur le PayPal pour acheter un produit configurable sans sélectionner au préalable les options requises. Auparavant, les acheteurs pouvaient cliquer sur le lien PayPal et ont ensuite été redirigés vers la page produit avec une erreur :
  • Le PayPal Le bouton 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 le Ventes > Commandes le menu déroulant action en masse de la page ne génère plus de requêtes de POST multiples. 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 Contrôle du cache de la page contient . private . Auparavant, un état HTTP 200 avec private dans l’en-tête Cache-Control a été mis en cache et un statut HTTP 301 a été mis en cache sauf s’il contenait private dans son en-tête Cache-Control. GitHub-36492
  • A supprimé les inutilisés Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper de Magento\Catalog\Model\ProductRepository. Auparavant, ProductRepository a chargé cet helper , 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 groupés. GitHub-29409
  • Processus d’affectation de produits à des catégories à partir du Products in Category a été optimisé. Le Assign et Remove boutons dans Add Product by SKU Les onglets sont maintenant désactivés jusqu’à ce que les produits soient entièrement chargés dans la grille. Auparavant, les utilisateurs administrateurs ne pouvaient pas ajouter de produits par SKU dans les catalogues contenant des millions de produits enregistrés.
  • Les performances du addProductToCart La mutation lors de l’exécution avec de nombreux attributs de produit personnalisés a été améliorée. Auparavant, lorsque cette mutation était exécutée avec de nombreux attributs de produit ( environ 1 000), Commerce 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 pour les règles de panier actives sont désormais chargés.
  • Le bin/magento setup:perf:generate-fixtures setup/performance-toolkit/profiles/ee/small.xml La commande s’exécute désormais correctement lorsqu’elle est exécutée plusieurs fois. Auparavant, il générait cette erreur lorsqu’il était exécuté plusieurs fois : Coupon with the same code already exists.

Promotion

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

reCAPTCHA

  • reCAPTCHA v3 invisible 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 générait des erreurs JavaScript.
  • Le reCAPTCHA Google du workflow de passage en caisse fonctionne désormais comme prévu pour les chèques, les mandats 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 était affiché en haut de la page.

Rapports

  • Le rapport Commandes (REPORTS > Sales > Orders) inclut désormais des valeurs de commande correctes lorsque les commandes sont générées par des magasins qui utilisent des devises autres que celles par défaut. Auparavant, ce rapport incluait des valeurs incorrectes. GitHub-36742
  • Les informations trompeuses figurant dans le formulaire de rapport de commande client ont été révisées pour plus de clarté.
  • Les utilisateurs administrateurs peuvent désormais rechercher des enregistrements avec des e-mails contenant + (plus) signe à partir de la page Rapport sur les paniers abandonnés. GitHub-36560
  • Les noms des transactions GraphQL s’affichent désormais correctement une fois que New Relic est désactivé par Commerce Admin. GitHub-36112

Reviews

  • Les acheteurs ne peuvent plus envoyer rapidement des révisions de produit en double lorsque le reCAPTCHA v3 invisible est activé.

Récompenses

  • Les e-mails d’expiration de points de récompense ne sont plus envoyés après l’expiration des points. Le magento_reward_balance_warning_notification et magento_reward_expire_points les tâches cron ont été restructurées pour accroître la flexibilité et la capacité d'envoi des emails. Auparavant, les commerçants ne pouvaient pas envoyer beaucoup d’e-mails générés par ces tâches cron en peu de temps. Cela aurait pu entraîner des retards dans la diffusion des notifications urgentes.
  • Les points de récompense expirés sont désormais soustraits du solde actuel des points de récompense d’un acheteur comme prévu.
  • La notification par e-mail de mise à jour du solde des points de récompense prend désormais en compte le contexte actuel du magasin. Auparavant, le solde des points de récompense mettait à jour les paramètres de configuration des e-mails utilisés pour le magasin par défaut.
  • Les points de récompense peuvent désormais être remboursés après la création d'un avoir. Auparavant, les commerçants ne pouvaient pas rembourser les points de récompense après la création d'un avoir, et le statut de la commande restait Completed, pas Closed.

RMA

  • LE RESTE POST /V1/returns La demande crée désormais une RAM par produit. Auparavant, cette requête pouvait contourner la validation et renvoyer plusieurs RMA par produit.
  • Les attributs RMA sont désormais automatiquement ajoutés au formulaire EAV par défaut lorsque le Show on Storefront Attribut RMA défini sur non. Auparavant, la fenêtre contextuelle Détails de l’élément RMA était vide lorsqu’un attribut de retour personnalisé était créé et la Show on Storefront Attribut RMA défini sur non.
  • La valeur de Enable RMA l’attribut correspond désormais à la valeur spécifiée dans la configuration lorsque Use Config la case à cocher de la page de modification du produit est activée.
  • Le Enable RMA L’attribut au niveau du produit individuel respecte désormais la configuration des paramètres RMA du magasin. Auparavant, ce paramètre était désactivé par défaut lorsque vous ajoutiez un produit, quels que soient les paramètres de configuration du magasin.

Rechercher search-heading

  • Les suggestions de recherche de saisie automatique sur le mini front de recherche de l’en-tête fonctionnent désormais comme prévu. Auparavant, la saisie automatique ne remplissait pas ce champ lorsque cette fonctionnalité était activée. GitHub-37557
  • Les performances des requêtes effectuées à partir de la barre de recherche d’administration ont été améliorées par l’ajout d’un indexeur. Auparavant, plus le paramètre était grand search_query , plus la requête a mis de temps à se terminer.
  • Le tri alphabétique des produits par nom fonctionne désormais correctement pour les noms contenant des caractères turcs.
  • Le Use in Search Results Layered Navigation la propriété d’attribut de produit s’affiche désormais uniquement lorsque Use in Search paramètre est défini sur Yes.
  • Le prix de la recherche avancée et les filtres SKU fonctionnent désormais correctement lorsqu’ils sont appliqués ensemble dans une recherche avancée. GitHub-37581
  • Les champs de recherche vides ne sont plus recherchés. Cela permet de réduire la taille du search_query tableau. Auparavant, les requêtes incorrectes ou les requêtes sur des champs de recherche vides renvoyaient un jeu de données volumineux, ce qui augmentait la taille du . search_query et ont entraîné des problèmes avec /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 recherche affichent désormais les résultats pertinents en fonction du poids de recherche des attributs comme prévu.
  • Texte informatif sous le Search Weight de l’attribut Storefront Properties champ de saisie sur Admin Stores > Attributes > Product décrit maintenant les valeurs possibles. GitHub-36646

Expédition

  • Les règles de prix de panier fonctionnent désormais comme prévu lorsqu’un produit groupé est ajouté au panier lorsque les attributs de prix dynamiques sont désactivés. La livraison gratuite et le taux de 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.
  • Commerce passe désormais à une nouvelle page d’expédition comme prévu après la création d’une expédition partielle pour une commande. Auparavant, après avoir créé une expédition partielle, Commerce ne créait pas de page d’expédition complète pour les produits restants de la commande. GitHub-38063
  • Le montant total pour l'expédition d'une commande vers plusieurs adresses est désormais correctement calculé. Auparavant, lorsqu’un devis contenait plusieurs adresses de livraison, le collecteur total mettait à jour le montant de livraison pour l’adresse indiquée dans $quote->getShippingAddress() au lieu de le passer $shippingAssignment comme prévu. GitHub-37283
  • Commerce ne renvoie plus d’exception lors du passage en caisse avec plusieurs adresses d’expédition lorsque l’utilisateur administrateur a utilisé la fonctionnalité de connexion en tant que client.
  • Les produits sont désormais correctement répertoriés dans la grille Produits de la page Créer des packages lorsque vous ajoutez des produits à un package après la création de l’étiquette d’expédition.
  • Le cart la requête renvoie désormais les remises sur les livraisons discrètes sous la forme de remises sur les livraisons distinctes avec des étiquettes de remise uniques. Le nouveau applied_to la propriété de remise prend en charge la différenciation entre les remises appliquées à un article du panier. Auparavant, toutes les remises d’expédition étaient combinées en un seul code en dur Shipping Discount valeur.
  • Lorsqu’un utilisateur administrateur crée une nouvelle commande, les adresses de facturation et de livraison de la commande initiale renseignent automatiquement les champs pertinents lorsque l’utilisateur administrateur clique sur la commande Reorder bouton (Admin Sales > Orders > View ). Si les mêmes adresses sont enregistrées dans le carnet d'adresses de l'acheteur, la commande de nouveau contiendra toujours une version mise à jour de ces adresses. Auparavant, le champ Adresse d’expédition était prérempli avec les données mises à jour, mais pas le champ Adresse de facturation.
  • Le Shipping Policy La zone de texte est désormais visible dans la portée d’affichage Admin Store lorsque Apply custom Shipping Policy est activé et une politique d’expédition personnalisée est disponible. GitHub-36425
  • Le cart la requête renvoie désormais une valeur selected_shipping_method valeur correspondant à l’une des available_shipping_methods codes de porteuse et de méthode. Auparavant, lorsque l'un des modes d'expédition sélectionnés contenait un trait de soulignement, ces codes transporteur/méthode ne correspondaient pas. GitHub-36606
  • Le setShippingAddressesOnCart la mutation ne renvoie plus d’erreur lorsque la deuxième valeur du tableau de rue 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 commerçants peuvent désormais créer et enregistrer un produit sur leur site web id != 1 et le mode magasin unique est activé. Auparavant, l’action d’enregistrement échouait avec le message suivant : SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails. GitHub-35009

Évaluation

  • Les mises à jour intermédiaires des règles de vente ne sont plus dupliquées dans le tableau de bord intermédiaire.
  • Les produits groupés sont désormais correctement mis à jour si un acheteur les ajoute à son panier lorsqu’une mise à jour de planification est en cours. Auparavant, si un produit groupé avec des options était ajouté au panier lorsqu’une tâche de planification était en cours, Commerce générait l’exception suivante : Some of the products below do not have all the required options. Please select all required options.
  • Les mises à jour de planification conservent désormais les prix corrects pour les options de bundle. Auparavant, ces prix étaient remplacés par zéro pour des vues de site web ou de magasin spécifiques.
  • La mise à jour d'une mise à jour planifiée ne supprime plus la version précédente de l'élément échelonné si aucune date de fin n'est spécifiée. Auparavant, lorsqu’un élément intermédiaire était mis à jour, la version restaurée de l’élément était supprimée si aucune date de fin n’était spécifiée. Commerce n’a pas généré d’erreur ni averti les utilisateurs administrateurs avant la suppression.
  • Les valeurs des libellés d’affichage des magasins ne sont plus effacées après une mise à jour planifiée des règles de prix de panier. Auparavant, ces libellés étaient effacés même s’ils n’étaient pas spécifiés dans la mise à jour.
  • Les aperçus d’évaluation du contenu fonctionnent désormais correctement pour les pages liées. Auparavant, vous ne pouviez pas accéder aux pages liées dans l’aperçu de l’évaluation, mais étiez redirigé incorrectement vers les pages du storefront.
  • La modification d’une mise à jour d’évaluation n’entraîne plus la suppression des mises à jour planifiées affectées à une date ultérieure.
  • Les erreurs JavaScript ne se produisent plus lorsque vous ajoutez ou modifiez des mises à jour planifiées pour les catégories lorsque les Expériences de contenu Google Analytics sont activées.
  • Les commerçants peuvent désormais enregistrer une mise à jour de planning existante pour une catégorie après l’avoir consultée ou modifiée. Auparavant, Adobe Commerce générait une erreur dans system.log.
  • Les liens téléchargeables sont désormais conservés comme prévu lorsqu’une mise à jour planifiée est appliquée alors que les produits précédemment ajoutés se trouvent dans le panier. Auparavant, les liens téléchargeables disparaissaient de la page Mon compte (Mes produits téléchargeables) du client et de la page d'affichage des commandes de l'administrateur.
  • Les produits sont désormais visibles sur le storefront comme prévu après l’application d’une mise à jour d’évaluation qui active le produit. Auparavant, le produit était activé dans l’administration, mais n’était pas visible dans la catégorie storefront lorsque le mode indexeur de l’inventaire du catalogue était défini sur Mise à jour selon le calendrier. Une réindexation complète a résolu le problème.
  • Le staging.synchronize_entity_period file d’attente des clients dans magento_bulk le tableau n’augmente plus lorsqu’il n’y a aucune mise à jour intermédiaire à traiter. Auparavant, lorsque cron a été configuré pour s’exécuter toutes les minutes, un nouvel enregistrement associé au staging.synchronize_entity_period le consommateur était ajouté à ce tableau toutes les minutes.
  • Adobe Commerce ne renvoie plus d’erreur SQL lorsque vous créez une modification de planification pour un produit lors de l’enregistrement d’un autre produit. Auparavant, Adobe Commerce affichait cette erreur : The product with the SKU "%1" couldn't be added to the current update.

Règles de Target

  • Les règles Target fonctionnent désormais correctement avec différentes vues de magasin. Auparavant, des problèmes liés au cache des règles de produits associés empêchaient l’affichage des produits recommandés dans les déploiements multi-magasin.

Taxe

  • Les factures affichent désormais le sous-total correct lorsque les taxes sont configurées et que FPT est activé.
  • Commerce affiche désormais la valeur correcte pour le Regular Price valeur lorsqu’une option personnalisée est sélectionnée pour un produit qui comporte un Special Price valeur lorsque Price Display Settings est défini sur inclure la taxe.
  • La taxe est désormais incluse comme prévu dans le prix d’expédition du workflow de passage en caisse, tel que spécifié par les paramètres de configuration.
  • Le cart requête 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 fiscales étaient configurées.
  • Icône Réduire/Développer pour le Additional Settings lors de la création de la règle de taxe, fonctionne désormais comme prévu. Auparavant, seule l’icône Développer fonctionnait. GitHub-37922
  • Vous pouvez désormais modifier la valeur du pays et de la région du taux de taxe à partir de la page de modification de la règle de taxe comme prévu. Auparavant, les modifications apportées à partir de cette page n’étaient pas enregistrées.
  • Le montant de taxe dans la zone d’estimation du panier est maintenant actualisé comme prévu lorsque le mode d’expédition est mis à jour. Auparavant, le taux de taxe n’était pas mis à jour après le changement de pays d’un acheteur lors du passage en caisse.
  • Le tax class La valeur pour les 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 Vue du magasin. Auparavant, cette valeur était définie sur aucune. En conséquence, aucune taxe n'a été ajoutée à ces produits dans le panier et les clients ont été sous-facturés. GitHub-37180

Test

  • Amélioration du AdminCreateOrderWithVirtualProductFromDefaultSourceWithBackorders test pour éliminer les échecs causés par l’achèvement prématuré du champ e-mail.
  • StorefrontVerifyProductAfterPartialReindexOnSeveralWebsitesTest a été restructuré pour améliorer la fiabilité. GitHub-38359
  • Correction de AdminSimpleProductwithTextandVisualSwatch testez-les en introduisant une étape supplémentaire qui définit explicitement les attributs à utiliser dans la recherche.
  • Erreur de frappe corrigée dans le SortbyTest test unitaire. GitHub-37792
  • Suppression des références à des classes inexistantes dans les tests unitaires. GitHub-37636
  • Amélioration du AdminCreateOrderWithVirtualProductFromDefaultSourceWithBackorders test pour éliminer les échecs causés par l’achèvement prématuré du champ e-mail.
  • Refactorisé Magento\GraphQl\Catalog\ProductSearchTest::testFilterProductsBySingleCategoryId test pour gérer l’ordre aléatoire des catégories dans products réponses aux requêtes.
  • Problèmes de performances des baies volumineuses dans TableNameSniff ont été résolus.
  • Les tests d’intégration de la fonctionnalité de modification du registre des cadeaux ne dépendent plus des ID d’entité existants. Toutes les données requises sont désormais obtenues par le biais d'appareils. Auparavant, \Magento\GiftRegistry\Controller\Index\EditPostTest a échoué.
  • CollectionTest::testGetDateRangeFirstPart() prend désormais en compte l’heure d’été.
  • Avis d’obsolescence fixe pour StorefrontDeleteItemFromRequisitionListPrintView.

Framework de l’interface utilisateur

  • 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 Rue du formulaire de modification d’adresse du compte client de champ Rue sont désormais correctement enregistrés. Ces champs sont désormais triés correctement selon les clés données dans le formulaire. GitHub-37973
  • Correction du comportement du curseur dans le registre des cadeaux Message champ de texte.
  • Les valeurs du décalage de mise en page cumulé (CLS) ont été améliorées pour les pages de 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 pendant le rendu du modèle. Commerce affiche désormais un message informatif. Auparavant, Commerce affichait des fuites de HTML lorsqu’une erreur PHP se produisait.
  • Attributs client personnalisés (type File attached) fonctionne 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 et 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 du storefront lorsque le mode magasin unique est activé. Auparavant, Commerce 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 quelle que soit la position de chargement. Auparavant, les mixins jQuery n’étaient pas chargés de manière cohérente dans les navigateurs.
  • Les mots de passe s’affichent désormais comme prévu lorsque le Show Password la case à cocher sur la page de connexion est active.
  • Adobe Commerce affiche désormais des prix corrects pour les produits groupés fixes avec des prix spéciaux.
  • Mise à jour du lien vers la page de liste Problèmes GitHub dans le fichier de modèle de pied de page du storefront. GitHub-37214
  • Le widget Récemment consultés affiche désormais le montant correct de taxe dans les prix de produits groupés. GitHub-35881
  • Les utilisateurs administrateurs peuvent désormais glisser-déposer les options personnalisables créées pour le produit simple comme prévu. GitHub-36051
  • L’ordre des types d’attributs de liste déroulante de 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 nœud de chemin de navigation en définissant remove=true par le biais de la mise en page XML n’entraîne plus la suppression du titre de la page sur la page de catégorie. Auparavant, la suppression des chemins de navigation de cette manière supprimait le titre de la page de la page de catégorie.
  • Le formulaire d’enregistrement des clients se charge désormais comme prévu lorsqu’il inclut des attributs client à sélection multiple. Auparavant, Adobe Commerce a généré 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 correctement rendus 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é pendant le rendu du storefront. Adobe Commerce affichait également les erreurs de la console.
  • Adobe Commerce ne renvoie plus d’erreur lorsque vous tentez de modifier rapidement l’affichage entre l’historique des commentaires et les retours dans la page de commande d’administration. Auparavant, Adobe Commerce affichait cette erreur générique : A technical problem with the server created an error.
  • Les utilisateurs administrateurs disposant d’autorisations limitées à un site web peuvent désormais mettre à jour les attributs de produit spécifiques au site web en définissant sur une all stores view portée.
  • Le widget de la loupe se charge désormais comme prévu sur la page du produit.
  • Les options personnalisables multi-lignes sont désormais correctement rendues dans les documents de PDF de facture, d'expédition et d'avoir. Auparavant, le texte multiligne était précédé d’un saut de page inattendu et, si le texte dépassait la page, le texte était tronqué.
  • Les utilisateurs administrateurs peuvent désormais ajouter une nouvelle adresse de client à partir de l’administration lorsque ce client a été créé pour un autre site web dont l’ID de magasin ne correspond pas à l’ID du site web. Auparavant, Adobe Commerce affichait ce message pop-up : Something went wrong. GitHub-36582
  • Les détails de l’administrateur d’entreprise sont désormais enregistrés comme prévu et les administrateurs sont correctement redirigés, lorsque les e-mails d’affectation d’administrateur d’entreprise contiennent un CMS Block URL variable.
  • 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 Submit comment sans modifier le statut de la commande ni saisir de texte dans la zone de commentaire, Adobe Commerce a affiché le message suivant : The comment is missing. Enter and try again.
  • L’icône de calendrier s’affiche désormais comme prévu dans les champs de période de l’administrateur Marketing > Cart Price Rules après la sélection d’une date pour un champ. Auparavant, après avoir sélectionné une date pour un champ, l’icône de calendrier n’était plus affichée sur les autres champs et le texte d’espace réservé Adobe Commerce s’affichait. GitHub-36499
  • Les formulaires d’enregistrement de clients qui comprennent 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
  • Cliquez sur une miniature vidéo en mode plein écran de la galerie de produits pour afficher la vidéo comme prévu. Auparavant, la vidéo ne s’affichait pas et la console du navigateur affichait une erreur JavaScript. GitHub-36456
  • Ajout d’une variable à la ligne de copyright qui est automatiquement mise à jour chaque année. GitHub-36776
  • Le curseur d’image de la page de produit fonctionne désormais comme prévu dans la vue mobile. Auparavant, seule la première image s’affichait correctement. GitHub-37232

Réécritures d’URL

  • Le crossorigin attribut a été ajouté à linkTypes pour HEAD éléments.GitHub-32509
  • 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 non par défaut lorsque la visibilité du produit était définie sur non visible dans la portée de magasin par défaut.
  • Category::getUrl() ne récupère plus de redirection 301. GitHub-38152
  • Commerce ne génère plus de réécritures d’URL de produit pour les catégories racine et 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 d’URL canoniques reflètent désormais les modifications attendues après la mise à jour de la propriété Clé d’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
  • Commerce 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é. 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 via le chemin d’accès à la catégorie. Lorsqu’une nouvelle réécriture d’URL de produit est créée, les corrélations entre le produit, la catégorie et le magasin 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 du suffixe d’URL de produit et du suffixe d’URL de catégorie correspondent désormais aux suffixes dans le url_rewrite tableau. Auparavant, les conditions de concurrence lors de la mise à jour des configurations de suffixes d’URL étaient définies, et les suffixes d’URL configurés et url_rewrite le tableau ne correspond pas.
  • Adobe Commerce 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 de catégories s’affichaient. GitHub-36973
  • Les pages CMS nouvellement créées avec un nœud enfant sont désormais incluses dans la grille de filtre marketing (Marketing > URL rewrites). Auparavant, les réécritures d’URL n’étaient pas créées pour ces pages CMS.
  • 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-magasin 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 de la boutique, mais les pages CMS d’origine n’étaient pas redirigées.

Marchandiseur visuel

  • Vous pouvez désormais utiliser le Categories attribut pour les règles du marchandiseur visuel. Auparavant, Adobe Commerce a généré cette exception : Something went wrong while saving the category.

Framework d’API web

  • Commerce n’affiche plus de Integration not secure avertissement dans Admin System > Extensions > Integrations lorsque le Callback URL et Identity link URL champs vides. GitHub-36407
  • Ajout de 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 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 Le paramètre a été activé.
  • LE RESTE V1/orders/{id}/comments Le point d’entrée ne modifie plus le statut d’une commande lors de la tentative d’ajout d’un commentaire au statut d’une commande en attente. Il renvoie désormais une erreur informative. Auparavant, ce point d’entrée modifiait le statut de commande lors de l’ajout d’un commentaire.
  • API REST GET et POST V1/products/attributes le point d’entrée ne renvoie plus la même valeur pour le . is_filterable attribut pour les deux Filterable(with results) et Filterable(no results) options du Use in Layered Navigation option. Auparavant, ce point d’entrée renvoyait la même valeur, car la variable is_filterable la propriété d’attribut était de type . Boolean, qui n’autorisait pas la définition de cette propriété sur Filterable(no results). GitHub-37979
  • Les disparus media_gallery_entries Le champ a été ajouté au REST. V1/configurable-products/sku/children point d’entrée. Auparavant, cette fonction ne contenait pas le code nécessaire pour stocker et afficher media_gallery_entries. GitHub-37607
  • LE RESTE V1/carts/mine/estimate-shipping-methods La méthode valide désormais tous les niveaux de données de champ de payload et renvoie un code HTTP 400 pour les données non valides. Auparavant, seul le premier niveau de payload de l’API était validé, et si des données non valides étaient renvoyées dans des niveaux non validés de la payload, Commerce 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 jeux d’attributs se terminent désormais correctement. Auparavant, les produits avec des jeux d’attributs différents ne pouvaient pas être mis à jour de cette manière et Commerce affichait cette erreur : The product was unable to be saved. Please try again.
  • Le POST /V1/products/tier-prices le point d’entrée 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 de niveau . Auparavant, Adobe Commerce 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 requêtes réinitialisaient l’ID de groupe à la valeur par défaut.
  • Les clients créés à l’aide de l’API Bulk reçoivent désormais les e-mails d’enregistrement des clients dans la langue configurée sur leur site web. Auparavant, tous les e-mails é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é.
  • Le POST V1/guest-carts l’appel n’envoie plus de commandes d’invités lorsque Allow Guest Checkout est désactivé.
  • Vous pouvez désormais ouvrir une commande à partir de l’administrateur avec le statut Received quand AsyncOrder n’est pas activé. Auparavant, vous ne pouviez pas ouvrir la page des détails de la commande à partir de l’Administration lorsque le statut de la commande était modifié par . POST V1/orders.
  • Adobe Commerce renvoie désormais avec succès le . content attribut (code image base64) dans GET V1/products/sku/media Réponses de l’API des médias du produit. Le content l’attribut n’apparaissait pas auparavant dans la réponse.

Liste de souhaits

  • Commerce affiche désormais un message indiquant qu’un article a déjà été ajouté à une liste de souhaits lorsqu’un acheteur tente d’ajouter le même article à une liste de souhaits plusieurs fois. Auparavant, dans ces conditions, Commerce augmentait la quantité de produits figurant sur la liste de souhaits.
  • Adobe Commerce ajoute désormais à la liste de souhaits les produits avec les fichiers d’option personnalisables chargés requis. Auparavant, Commerce ajoutait deux produits à la liste de souhaits, et non un seul. GitHub-37437

Configuration requise

Notre pile technologique est construite sur PHP et MySQL. Pour plus d’informations, voir Configuration requise.

Instructions d’installation et de mise à niveau

Vous pouvez installer Adobe Commerce 2.4.7 en utilisant Compositeur.

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