Points forts d’Adobe Commerce 2.4.6

Recherchez les points forts suivants dans cette version.

Améliorations de la sécurité

Cette version comprend huit correctifs de sécurité et des améliorations de la sécurité de la plateforme.

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 d’une /admin
  • Bonne hygiène des mots de passe

Consultez le Bulletin de sécurité d’Adobe pour connaître la dernière discussion sur ces problèmes résolus.

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

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

  • Les lacunes des logs d’actions d’administration ont été corrigées par un audit plus spécifique des actions dans les vues de grille, les actions en masse et les exportations.

  • La validation reCAPTCHA n'échoue plus lors du passage en caisse lorsque des erreurs inattendues se produisent lors du traitement des paiements. GitHub-35093

  • Nouvelle configuration système pour exiger une confirmation par e-mail lorsqu’un utilisateur administrateur modifie son e-mail. Pour réduire la vulnérabilité du site, un nouveau paramètre de configuration du système (désactivé par défaut) a été ajouté pour exiger une confirmation par e-mail lorsqu’un utilisateur administrateur modifie son adresse e-mail : Stores > Settings:Configuration > Customers > Customer Configuration > Account Information Options > Require email confirmation if an email has been changed. Lorsque cette option est activée, l’application demande une confirmation par e-mail chaque fois que l’utilisateur administrateur modifie son adresse e-mail. Le module suivant est affecté par cette modification : Magento_Customer.

Améliorations de Platform

Adobe Commerce 2.4.6 introduit la prise en charge de PHP 8.2. PHP 8.1 reste entièrement pris en charge.

La prise en charge de PHP 7.4 a été supprimée de cette version. Vous ne pouvez pas exécuter Adobe Commerce 2.4.6 sur PHP 7.4.

Adobe Commerce 2.4.6 prend désormais en charge :

  • Compositeur 2.2.x. Le compositeur 1.x a été supprimé.

  • Redis 7.0.x. Bien que la compatibilité avec Redis 6.2 soit toujours présente, nous vous recommandons de déployer cette version avec Redis 7.0.x, car Redis 6.2 devrait atteindre sa fin de vie en 2024.

  • OpenSearch est désormais pris en charge comme moteur de recherche par défaut pour les déploiements sur site et dans le cloud d’Adobe Commerce. Il est pris en charge en tant que moteur de recherche indépendant pour Magento Open Source. Cette version prend en charge OpenSearch v2.x et a été testée avec OpenSearch 2.5. Bien que la compatibilité avec OpenSearch 1.x soit toujours présente, nous vous recommandons d’utiliser cette version avec OpenSearch 2.x. Vous pouvez installer et exécuter Adobe Commerce et Magento Open Source 2.4.6 avec OpenSearch 2.x sur Cloud et sur site Conditions préalables pour les moteurs de recherche.

  • Elasticsearch 8.x. Voir Mise à niveau d’Elasticsearch.

  • MariaDB 10.6 (version LTS). Cette version est toujours compatible avec MariaDB 10.4, mais nous vous recommandons de la mettre à niveau vers MariaDB 10.6.

Autres mises à niveau et remplacements

  • Le schéma DHL a été migré de la v6.2 vers la v10.0.

  • Les bibliothèques JavaScript obsolètes ont été mises à jour vers leurs dernières versions et les dépendances obsolètes ont été supprimées. Ces modifications sont rétrocompatibles.

  • La compatibilité PHP 7.4 a été supprimée du code de base de Commerce.

  • Les dépendances Symfony ont été mises à niveau vers la nouvelle version de LTS. Les dépendances sont les suivantes

    • friendsofphp/php-cs-fixer
    • symfony/console
    • symfony/event-dispatcher
    • symfony/finder
    • symfony/process
    • web-token/jwt-framework
  • jquery-migrate a été supprimé de la base de code Commerce. GitHub-21406

  • Mise à niveau de la bibliothèque jQuery/fileUpload vers la version 10.32.

  • Les composants Zend Framework (ZF1) qui ont atteint leur fin de vie ont été supprimés de la base de code. Voir Modifications non rétrocompatibles mises en évidence.

  • Les dépendances Laminas ont été mises à jour pour prendre en charge PHP 8.2.

  • Le plug-in laminas/laminas-dependency-plugin Composer a été supprimé. GitHub-36515

  • Zend_Filter remplacé par laminas/laminas-filter.

  • Mise à niveau de web-token/jwt-framework vers la version 3.0.5. (dernière version)

  • Mise à niveau de allure-framework/allure-phpunit vers v2.x.

  • Mise à niveau de la bibliothèque Chart-js vers la version 3.9.1

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

  • Amélioration des performances des opérations affectant de nombreux segments de clients. Les commerçants peuvent améliorer les performances des opérations impliquant plus de 100 segments de clients en activant un nouveau paramètre de configuration. Le paramètre Real-time Check if Customer is Matched by Segment peut être désactivé selon les besoins afin de réduire le temps de traitement en réduisant la validation de chaque segment client par rapport aux clients. Voir Validation des segments clients.

  • Nouveau paramètre de configuration système pour limiter le nombre de produits affichés dans la grille de produits. Les commerçants peuvent utiliser le nouveau paramètre de configuration Limit Number of Products in Grid pour améliorer les performances de la grille de produits. Cette limite est configurée pour 20000 par défaut et affecte uniquement les collections de produits utilisées par les composants de l’interface utilisateur. La limitation du nombre de produits affichés peut améliorer les performances des opérations pour les grilles contenant plus de 200 000 produits. Voir Limiter le nombre de produits dans la grille

  • Amélioration des performances des importations (jusqu’à 100 000 enregistrements par minute). Les commerçants peuvent utiliser le nouveau point d’entrée de l’API REST POST /rest/<store_view_code>/V1/import/csv pour importer des données dans Adobe Commerce. Ce point d’entrée fournit les mêmes fonctionnalités que la fonction d’importation Admin et prend en charge l’utilisation d’un fichier CSV pour créer, mettre à jour et supprimer des produits, la tarification des produits et les entités client. Voir Importer des données.

  • Amélioration des performances de traitement des commandes à haut débit grâce à l’équilibrage de charge. Les clients Adobe Commerce 2.4.6 sur les infrastructures cloud qui ont un volume élevé de commandes simultanées (1 000 commandes par minute) peuvent désormais améliorer les performances de traitement des commandes en équilibrant la charge sur leur base de données sur différents nœuds. Les commerçants peuvent rééquilibrer cette charge en activant des connexions secondaires pour la base de données MySQL et les instances Redis. Voir Traitement des commandes à haut débit

Métapaquet d’extension Adobe Commerce

Cette version introduit le métapaquet Extension Adobe Commerce v1.1.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 conserveront des plannings de publication indépendants.

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

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

Adobe I/O Events pour Adobe Commerce

Adobe I/O Events for Adobe Commerce capture les événements Commerce et transfère les données d’Adobe Commerce vers d’autres systèmes Adobe. Les développeurs peuvent créer des applications natives cloud dans Adobe Developer App Builder qui s’abonnent à des événements Commerce tels que des mises à jour d’inventaire, des changements de statut de commande et des mises à jour de prix. Les développeurs peuvent utiliser cette fonctionnalité pour échanger des données pour l’orchestration de l’ensemble du parcours des acheteurs sur leurs systèmes critiques.

Mises à jour de l’accessibilité

L’objectif de cette version était de créer une expérience de storefront sur Venia (PWA) plus perceptible, plus exploitable, plus compréhensible et plus robuste. Ces améliorations comprennent :

  • Le libellé de texte visuel du bouton Sign in correspond désormais à son nom accessible. (Il est recommandé que le nom accessible d’un élément de l’interface utilisateur commence par le texte du libellé visible.)
  • Des noms accessibles descriptifs ont été ajoutés aux boutons dans tout le storefront.
  • Des libellés descriptifs verbaux ont été ajoutés aux cases à cocher Has Video dans les filtres de recherche.
  • Les utilisateurs utilisant uniquement le clavier peuvent désormais accéder à toutes les fonctionnalités de page sur le storefront. Auparavant, les acheteurs ne pouvaient pas accéder aux liens de sous-navigation en utilisant uniquement les touches.

Intégration d’Adobe Commerce avec Adobe IMS

Les modules Adobe IMS suivants ont été découplés du code principal d’Adobe Commerce 2.4.6 et sont désormais placés dans un métapaquet distinct :

  • adobe-ims
  • adobe-ims-api
  • admin-adobe-ims

La nouvelle version v2.2.0 d’adobe-ims-metapackage est fournie avec Adobe Commerce 2.4.6. Aucune fonctionnalité n’a été modifiée dans cette version.

B2B

La fonctionnalité Commandes fournisseur pour les entreprises est désormais entièrement exposée par l’API GraphQL. Cette version présente deux schémas GraphQL :

  • Le schéma GraphQL de bon de commande couvre l’utilisateur de la société B2B qui achète des fonctionnalités Order Management telles que la création, la modification et la suppression de bons de commande. Voir Commandes fournisseur (B2B).
  • Le schéma GraphQL des règles de commande permet de créer, modifier et supprimer des règles d'approbation et de valider manuellement des commandes. Voir Règles d'approbation des commandes (B2B).

Cette version comprend plusieurs correctifs. Voir Notes De Mise À Jour B2B.

Braintree

  • Le bouton Pay Later et les bannières (messages) pour l’Italie et l’Espagne ont été activés pour Braintree.
  • La messagerie PayLater avec PayPal Vault a été activée.
  • Ajout de la protection contre la fraude et des hooks web ACH. Le hook web de protection contre la fraude est déclenché lorsqu’une décision relative aux risques a été prise dans Braintree. Le hook web ACH est déclenché lorsque le statut d'un paiement ACH est mis à jour à settled ou settlement decline.
  • Ajout du hook web LPM (Local Payment Methods).

GraphQL

Les améliorations apportées aux performances de GraphQL sont les suivantes :

Amélioration du temps de réponse lors de l’interrogation de catégories avec les autorisations de catégorie activées. Les temps de réponse se sont améliorés lors de l’interrogation de produits dans des catégories pour lesquelles les autorisations de catégorie sont activées et qui contiennent de nombreux groupes de clients ou catalogues partagés. Les modifications de code qui prennent en charge cette amélioration des performances incluent :

  • Le fonctionnement du résolveur GraphQL a été optimisé.
  • Le fournisseur de données ne réinitialise plus les données mises en cache à l’exécution pour chaque nouveau produit en cours de traitement, ce qui a amélioré les performances.
  • Le traitement des autorisations de produit a été optimisé dans le résolveur GraphQL. Les autorisations de produit sont désormais appliquées aux collections de produits et non plus sur une base par produit.
  • Autorisations optimisées lues dans les catalogues partagés dans la mutation addProductsToCart.
  • Les autorisations de produit ont été optimisées avec les fragments intégrés de produit.

Performances optimisées du rendu de l’arborescence des catégories. La requête categoryList a été optimisée pour prendre en charge les clients avec un grand nombre de catégories. Les commerçants qui utilisent cette requête pour rechercher plus de 1 500 catégories avec jusqu’à cinq niveaux de sous-catégories imbriquées remarqueront une amélioration des performances. Le chargement des enfants de catégorie par refactorisation du code a été amélioré en supprimant les appels de méthode inutiles, en améliorant la mise en cache de l’arborescence de catégorie et en chargeant les données de catégorie de manière récursive. Les modifications de code qui prennent en charge cette amélioration des performances incluent :

  • La récupération des métadonnées des attributs personnalisés pour les modèles de catégorie a été améliorée.
  • La récupération de l’ID de catégorie a été améliorée et les appels getChildren ont été réduits.
  • Le chargement des enfants de catégorie a été amélioré.

Temps de réponse des requêtes d’opérations de panier en vrac réduits. Les mutations d’ajout de produit ont été optimisées pour améliorer les performances des requêtes lors de l’ajout de jusqu’à 500 produits simples et configurables. Les produits groupés ne sont pas affectés. Les mutations optimisées comprennent addProductsToCart, addConfigurableProductsToCart, addDownloadableProductsToCart, addSimpleProductsToCart, addVirtualProductsToCart, addWishlistItemsToCart et updateCartItems.

la requête client prend désormais en charge le tri des commandes. L’objet de sortie orders de la requête customer contient désormais un champ de tri. Vous pouvez désormais trier les commandes par numéro de commande ou date de création, et par ordre croissant ou décroissant.

Nouvelles mutations :

deleteCustomer

Page Builder

Page Builder v.1.7.3 est compatible avec Adobe Commerce 2.4.6.

PWA Studio

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

Problème connu

Problème : New Relic n'est pas actuellement compatible avec PHP 8.2. Les déploiements exécutant New Relic peuvent exécuter Adobe Commerce 2.4.6 sur PHP 8.1, mais pas PHP 8.2. Solution de contournement : exécutez Adobe Commerce 2.4.6 sur PHP 8.1 jusqu’à ce qu’une nouvelle version de New Relic soit disponible et prenne en charge PHP 8.2. Cette version est prévue pour l’été 2023.

Problèmes résolus

Nous avons corrigé des centaines de problèmes dans le code principal d’Adobe Commerce 2.4.6. Un sous-ensemble des problèmes résolus inclus dans Adobe Commerce 2.4.6 est décrit ci-dessous.

Installation, mise à niveau, déploiement

  • Le déploiement de contenu statique n’expire ni n’échoue lors de déploiements standard ou compacts avec plusieurs paramètres régionaux et sites web.
  • La stratégie compacte ne provoque plus de référence non valide à un domaine externe lors de l’exécution du déploiement de contenu statique (bin/magento set:static-content:deploy -f --strategy compact).
  • L’exécution de bin/magento setup:di:compile -vvv (ou avec les options -v ou -vv) renvoie désormais un message informatif en cas d’échec. GitHub-35391
  • Adobe Commerce ne renvoie plus l’exception suivante lorsque vous exécutez la commande bin/magento setup:upgrade dans un déploiement exécutant déjà l’outil de migration de données : PHP Fatal error: Declaration of Migration\Logger\Logger::addRecord(int $level, string $message, array $context = []): bool must be compatible with Monolog\Logger::addRecord(int $level, string $message, array $context = [], ?Monolog\DateTimeImmutable $datetime = null): bool in /var/www/html/vendor/magento/data-migration-tool/src/Migration/Logger/Logger.php on line 34. GitHub-35604
  • La commande bin/magento setup:db:status n’échoue plus dans les environnements exécutant MySQL 8.0.29. Auparavant, la sortie de commande indiquait à tort que le schéma déclaratif était obsolète. GitHub-35671
  • La commande composer install ne remplace plus les fichiers .gitignore. GitHub-32888
  • L’exécution de bin/magento sampledata:remove pour supprimer les exemples de données après la mise à niveau sur Alpine Linux n’échoue plus avec cette erreur : Undefined constant "MagentoHackathon\Composer\Magento\Deploystrategy\GLOB_BRACE. GitHub-36062
  • bin/magento setup:upgrade s’exécute maintenant correctement après la première exécution de composer install --no-dev. GitHub-36351
  • Les exceptions et les entrées de trace de pile d’exceptions sont désormais incluses dans var/log/exception.log. GitHub-36054
  • Adobe Commerce renvoie désormais une erreur de validation de paramètre lorsque vous utilisez la ligne de commande pour définir une connexion Redis sans mot de passe.

Accessibilité

  • Les boutons Proceed to Checkout, Review Order et Place Order du workflow de passage en caisse fonctionnent désormais comme prévu avec une entrée au clavier.
  • L’indication visuelle du focus sur les boutons lors de l’utilisation de TAB ou de SHIFT + TAB pour parcourir les commandes de page fonctionne désormais comme prévu.

Lecteurs d’écran

  • Le lecteur d’écran de la page d’historique des commandes lit désormais la description correcte de l’image.

Les lecteurs d’écran annoncent maintenant :

  • Nombre total d’éléments trouvés dans les résultats de recherche comme prévu
  • Nom de l’utilisateur connecté lorsqu’un utilisateur se connecte avec succès à l’aide des commandes du clavier
  • L’en-tête de la page de résultats de recherche de produit lit désormais la valeur correcte pour l’élément <title>
  • Indique si les champs de saisie sont obligatoires
  • État actuel correct des éléments d’accordéon (réduits et développés)
  • Lorsque le contenu de la page a été actualisé après que l’utilisateur a cliqué sur le bouton Create an account

Lots de produits

  • La mise à jour du produit groupé via l’API pour une vue de magasin spécifique ne remplace désormais pas les autres données de vues de magasin pour le même produit groupé. Auparavant, les titres des options de produit groupées étaient remplacés par le titre de la première option pour d’autres affichages de magasin.
  • Les produits groupés peuvent désormais être filtrés avec succès à partir de Admin Catalog > Products lors de l’utilisation d’un paramètre régional néerlandais. Auparavant, Adobe Commerce affichait cette erreur lorsque vous tentiez d’effectuer un filtrage sur Type: Bundle Product : Something went wrong with processing the default view and we have restored the filter to its original state. GitHub-35704
  • La grille de produits ne renvoie plus d’exception lorsque le prix spécial des produits groupés dépasse 1 000. Auparavant, lorsque vous recherchiez le produit par SKU ou accédiez à Catalog > Products, Adobe Commerce générait cette erreur : Non Numeric value encountered. GitHub-36284)
  • Les colonnes des fichiers PDF des avoirs et des factures pour les commandes contenant un mélange de produits groupés et simples sont désormais correctement rendues. Auparavant, les colonnes étaient déformées ou mal alignées.
  • Dans les requêtes GraphQL qui contiennent un fragment de BundleProduct, l’objet items.options.product contient les données attendues. Auparavant, l’objet pouvait être nul dans certains cas.
  • Les quantités décimales des options de lot sont désormais correctement rendues lorsque Quantity uses decimals est activé. Auparavant, seule la partie entière de la quantité était rendue, et non le composant fractionnaire. Par exemple, une quantité de 1,5 a été rendue sous la forme 1,0. GitHub-35964
  • Les requêtes de produit GraphQL renvoient désormais uniquement les options de produit groupé dans la portée du magasin interrogé.
  • Les produits qui ne sont pas affectés à des catégories, mais qui sont des options de produit pour des produits groupés ou groupés sont désormais renvoyés dans les réponses lorsque le paramètre de configuration Allow Category Browsing est activé pour le client qui envoie la requête.

Cache

  • Le cache de pleine page n’est plus vidé après l’exécution de la commande, sauf si le produit commandé est en rupture de stock. Auparavant, le cache était purgé pour la catégorie chaque fois qu’une expédition était créée.
  • Les données sont désormais mises en cache avec succès lorsque le cache L2 est configuré et que les données distantes sont partiellement évincées. Auparavant, après avoir vidé uniquement le cache de données sans hachages de ces données, le nouveau cache n’était pas enregistré tant que les hachages de données existaient.
  • Correction de défauts dans les CatalogUrlResolverIdentity et les CmsUrlResolverIdentity qui empêchaient la mise en cache. Cela affectait la mise en cache des requêtes d’itinéraire sur plusieurs requêtes.

Panier et passer en caisse

  • Les acheteurs peuvent désormais ajouter un article supplémentaire à leur panier lorsque celui-ci contient la quantité minimale du produit simple.
  • Les appels d’API REST pour récupérer les données du panier renvoient désormais les mêmes valeurs de grand_total et de base_grand_total lorsque la devise du magasin et la devise de base sont identiques. GitHub-34649
  • La valeur exportée de Maximum Qty Allowed in Shopping Cart correspond désormais à la valeur par défaut définie dans le paramètre de configuration Admin.
  • Adobe Commerce calcule désormais correctement le total général pour les remboursements des commandes avec une remise pour l’expédition.
  • Google reCAPTCHA fonctionne désormais comme prévu pour les commandes de storefront. Auparavant, Adobe Commerce affichait ces erreurs lorsque Google ReCAPTCHA n’était pas sélectionné avant qu’un acheteur ne tente de passer une commande : ReCaptcha validation failed, please try again et No such cart with id = ID.
  • L’actualisation d’image CAPTCHA respecte désormais le paramètre de configuration Admin et n’est pas déclenchée lorsque le paramètre est désactivé. Auparavant, l’actualisation était déclenchée à chaque modification du mode de paiement, que le paramètre soit activé ou désactivé. GitHub-34855
  • Adobe Commerce affiche désormais une fenêtre contextuelle de confirmation comme prévu avant de rediriger un acheteur vers la page suivante lorsque l’acheteur modifie la quantité de produit sur la page du panier sans mettre à jour le panier, puis tente d’accéder à la page suivante.
  • Les acheteurs peuvent désormais réduire la quantité d’un produit de leur panier après sa diminution dans l’administration. Auparavant, Adobe Commerce générait l’erreur suivante lorsqu’un acheteur tentait de réduire la quantité de produit : The requested qty is not available. GitHub-35780
  • Adobe Commerce ne renvoie plus d’erreur dans la console JavaScript lorsque la quantité de produits dépasse la valeur maximale configurée lors du passage en caisse avec expédition multiple. À la place, Adobe Commerce affiche désormais un message d’erreur informatif. GitHub-36184
  • La quantité d’articles sur la page du panier n’est plus représentée sous la forme d’un nombre négatif lorsqu’un acheteur utilise la touche fléchée vers le bas de son clavier pour modifier la quantité de produits. GitHub-36299
  • Les acheteurs ne peuvent plus ajouter au panier un produit d’une catégorie qui est désormais interdite après avoir modifié le groupe de clients auquel l’acheteur appartient. Adobe Commerce vérifie désormais l’accès aux autorisations des groupes de clients pour des catégories spécifiques lorsque les paramètres de configuration des autorisations ont été modifiés.
  • Les paniers des clients ne sont plus vidés avant la création de la commande de l’administrateur et le contenu du panier est désormais restauré en cas d’annulation ou d’abandon de la commande. Les articles ne sont désormais supprimés du panier qu’après la création de la commande. Auparavant, chaque fois qu’un utilisateur administrateur tentait de créer une commande sur la page Admin Gérer le panier , le panier était vidé.
  • Le mini panier affiche désormais les images correctes des produits après l’exécution de bin/magento catalog:image:resize. Auparavant, toutes les images étaient remplacées par l’image d’espace réservé de produit par défaut. GitHub-35535
  • Le passage en caisse peut maintenant se terminer avec succès lorsque l’adresse de livraison contient un attribut d’extension. Auparavant, Adobe Commerce générait cette erreur : Object of class Magento\Quote\Api\Data\AddressExtension could not be converted to string. GitHub-34202
  • La mutation addBundleProductsToCart n’ajoute plus de produits à un devis si une option de produit requise n’a pas de valeur. GitHub-25676
  • Adobe Commerce renvoie désormais un message informatif lorsqu’une mutation addProductsToCart échoue lors de l’ajout d’un produit au panier avec des autorisations insuffisantes.
  • Adobe Commerce ne renvoie plus d’erreur sur la page du panier lorsque la commande rapide est utilisée pour ajouter un produit dont la quantité dépasse le stock disponible.
  • La mutation setGiftOptionsOnCart nécessite désormais l’autorisation du client pour les opérations de panier client.

Règle de prix du panier

  • Les options d’expédition gratuite de la règle de prix du panier définies lors de la création de la règle sont désormais appliquées aux commandes comme prévu. Auparavant, les options de livraison gratuite appliquées lors de la création de la règle étaient ignorées lors du passage en caisse et la livraison gratuite n’était pas autorisée lorsque la règle était appliquée. GitHub-35013
  • La colonne discount_percent de la table sales_order_item d'un produit est maintenant renseignée comme prévu avec le pourcentage de remise lorsque la quantité de remise d'article n'est pas définie ou est supérieure ou égale à la quantité d'article de commande. Auparavant, cette colonne n’était pas renseignée lorsqu’une règle de prix de panier était appliquée à ce produit.

Catalogue

  • Le widget Liste de produits n’affiche plus les prix incorrects ou mis en cache pour un acheteur connecté. Le prix affiché dans le widget de la page d’accueil correspond désormais à l’adresse de l’acheteur et est mis à jour lorsque l’acheteur met à jour l’adresse. Auparavant, le cache du navigateur ne mettait pas à jour les prix des produits sur la page d’accueil en fonction des règles fiscales du groupe de clients.
  • La fonction Comparer les produits fonctionne désormais correctement dans un déploiement multi-site web et dépend du site web.
  • Adobe Commerce n’affiche plus les données de la page précédente lorsque vous rechargez une page de détails d’un produit. Auparavant, lorsque la page des détails du produit était rechargée, les données du premier onglet étaient fusionnées avec les données nouvellement chargées pendant une fraction de seconde.
  • Les catégories comportant des sous-catégories peuvent désormais être développées dans le menu principal sur les appareils mobiles comme prévu. Auparavant, les acheteurs ne pouvaient pas ouvrir ni développer des catégories avec des sous-catégories dans les déploiements mobiles. GitHub-35329
  • Les listes de catégories sont désormais mises à jour comme prévu lorsqu’un produit est affecté à un nouveau site web ou magasin. Auparavant, l’indexeur de prix de produit n’était pas marqué comme non valide et il a ensuite été redéclenché lors d’une exécution de cron comme prévu. Par conséquent, l'entrée de prix du produit était manquante dans le tableau de l'indice des prix et n'était pas affichée dans le nouveau magasin ou site Web.
  • Le nombre d’inventaires de storefront est désormais exact lorsque le paramètre de configuration Display Out of Stock Products est activé. GitHub-35899
  • La page de catégorie n’est plus vide lorsque le paramètre Allow All Products Per Page est activé. GitHub-35900
  • L’option de configuration Display Out of Stock Products fonctionne désormais comme prévu une fois activée. Auparavant, tous les produits s’affichaient comme étant en rupture de stock sur le storefront lorsque cette option était activée sur l’administrateur. GitHub-35898
  • Les clients affectés à un groupe de vente en gros peuvent désormais ajouter un produit regroupé à leur panier lorsqu’ils sont autorisés par les autorisations de catégorie. Si cette autorisation n’est pas définie pour un groupe de clients, le paramètre de configuration est prioritaire.
  • Le tri des produits par attributs booléens fonctionne désormais comme prévu. GitHub-36390
  • Les remises de règle de prix catalogue ne sont plus appliquées aux options de produit personnalisées à prix fixe, mais sont appliquées uniquement au prix d'origine du produit.
  • Les produits associés sont désormais récupérés avec succès sur la page des détails du produit storefront lorsqu’ils sont générés par la règle de produit associé pour les attributs de produit alphanumériques. GitHub-36285
  • Les règles de prix de catalogue prennent désormais en compte la portée sélectionnée et sont appliquées aux produits uniquement pour les sites web pour lesquels l’attribut dispose d’une valeur d’option correspondant à la règle. Auparavant, la règle ne prenait pas en compte la portée sélectionnée dans les déploiements multisites. GitHub-36049
  • Les attributs de couleur et de taille des options d’échantillon sont désormais présélectionnés dans la page des détails du produit lorsqu’un acheteur modifie le produit configurable à partir de la page Mon panier. (La version jQuery 3.x prend désormais en charge le nom du widget swatchRenderer, qui est désormais en casse mixte.) Auparavant, l’option d’échantillon n’était pas présélectionnée.
  • Les clients sont désormais avertis des baisses de prix de produits lorsque le client est abonné à l’alerte de baisse de prix. Auparavant, les notifications de baisse de prix n’étaient pas toujours envoyées en raison de la mise en cache au niveau de l’application.
  • Les règles de catalogue basées sur des SKU avec la condition is not one of fonctionnent désormais comme prévu.
  • Adobe Commerce ne suppose plus par erreur qu’une catégorie est la catégorie parente d’une autre en fonction du chemin d’accès à la catégorie. Auparavant, lorsque deux catégories étaient adjacentes et qu’un ID de catégorie commence par l’ID de catégorie d’une autre catégorie, Adobe Commerce supposait que les catégories avaient la même catégorie parente. GitHub-32464

Produits configurables

  • Adobe Commerce ne renvoie plus d’erreur lorsqu’un utilisateur administrateur ajoute manuellement des produits à un produit configurable auquel sont déjà affectés de nombreux produits simples. Auparavant, Adobe Commerce affichait cette erreur : Something went wrong with processing the default view and we have restored the filter to its original state.
  • Les acheteurs ne peuvent plus ajouter de produits configurables avec une quantité vendable de 0 à leur panier dans les déploiements avec les commandes en souffrance désactivées. Adobe Commerce indique maintenant que le produit est en rupture de stock. GitHub-35319
  • La création d’un nouveau produit par l’importation d’un produit configurable avec de nombreuses options à partir d’une vue de magasin différente entraîne désormais une copie exacte du premier produit comme prévu. Auparavant, l’ordre de tri des options configurables du nouveau produit était incorrect, et les titres n’étaient pas traduits dans les paramètres régionaux de la nouvelle vue de magasin dans les déploiements avec plusieurs vues de magasin et paramètres régionaux. GitHub-35200
  • Les produits configurables avec tous les produits enfants en rupture de stock sont désormais affichés comme en rupture de stock sur le storefront.
  • Les SKU et noms de produits configurables s’affichent désormais avec précision. Auparavant, les noms et SKU s’affichaient comme non définis après le déplacement d’un groupe d’attributs au-dessus du groupe Détails du produit dans Stores > Attribute set. GitHub-36309

Coupons

  • Une logique de validation a été ajoutée au workflow Gérer les codes coupon pour appliquer les paramètres de code coupon lors de la génération des coupons. Auparavant, la génération du code de coupon ignorait le paramètre Code Length lorsque la valeur Qté du coupon était supérieure à 2 500.
  • Les points de récompense sont désormais ajoutés au compte d'un client comme prévu lorsqu'un coupon de récompense est appliqué lors du passage en caisse avec la méthode de paiement PayPal Express.
  • Vous pouvez désormais appliquer un code de coupon lors de la création d’une commande administrateur lorsque la règle de prix du panier comporte le poids comme condition. Auparavant, les codes de coupon n’étaient pas définis si d’autres champs n’étaient pas sélectionnés pour le produit. GitHub-36271
  • Vous pouvez désormais filtrer les rapports de coupon en fonction de plusieurs règles de prix de panier. GitHub-36272
  • Les options personnalisées sont désormais appliquées et enregistrées lorsqu’un utilisateur administrateur appuie sur Enter lors de la configuration d’un produit avec des options personnalisées. Auparavant, vous pouviez sélectionner des options et ajouter le produit à une commande, mais les options n’étaient pas enregistrées et l’utilisateur administrateur était invité à sélectionner à nouveau les options du produit. GitHub-35284
  • Les codes promotionnels peuvent désormais être exportés au format XML Excel. Auparavant, le fichier généré ne contenait pas tous les codes coupon sélectionnés, mais uniquement le nombre d’éléments sélectionnés dans le sélecteur d’éléments par page.GitHub-36073

cron

  • La tâche cron catalog_index_refresh_price s’exécute maintenant correctement. Auparavant, Adobe Commerce consignait cette erreur pendant l’exécution cron : report.ERROR: Cron Job catalog_index_refresh_price has an error: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens.

Devise monétaire

  • Un espace manquant entre les symboles de devise personnalisée et les prix a été ajouté aux prix des produits storefront et admin. La condition et l’expression régulière appropriées ont été ajoutées pour permettre un NBSP personnalisé dans les symboles de devise. Par exemple, IDRx 105.00 s’affichait auparavant sous la forme IDRx105.00.

Segment client

  • Le filtre Oui/Non de la grille Segments de clients administrateurs lors de la création d’une nouvelle règle de prix de panier fonctionne désormais comme prévu.

E-mail

  • Adobe Commerce n’envoie plus d’e-mails en double à un client après la création d’une commande à partir de l’administrateur.
  • Les e-mails de commande de l’administrateur ne sont plus envoyés lorsque le paramètre Email order confirmation est désactivé. GitHub-36256
  • Les options d’image ne s’affichent plus comme balises HTML dans l’avoir, la confirmation de commande et les e-mails des clients de facture (modèle par défaut) pour les produits avec des options personnalisées.

Frameworks

  • Les utilisateurs administrateurs peuvent désormais ouvrir la page Admin Store > Configuration lorsqu’aucun pays ne figure dans le paramètre Pays de l’Union européenne (Stores > Configuration > General > Country options > European Union Countries). Auparavant, lorsqu’un utilisateur administrateur tentait d’ouvrir cette page, Adobe Commerce générait l’erreur suivante : TypeError: explode(): Argument #2 ($string) must be of type string, null given in /var/www/php/folder/vendor/magento/module-config/ViewModel/CountryFilter.php:46. GitHub-35901
  • Les dépendances jquery.cookie fonctionnent désormais comme prévu avec les dépendances JavaScript. Auparavant, vous ne pouviez pas utiliser d’alias pour les jquery/jquery.cookie. GitHub-35913
  • La commande bin/magento i18n:collect-phrases inclut désormais <title> texte dans le fichier CSV exporté. GitHub-35462
  • Magento\Framework\Code\Reader\ArgumentsReader::getParentCall() prend désormais en charge les arguments de constructeur nommés. Vous pouvez désormais appeler une fonction en définissant les paramètres par leur nom.
  • Les erreurs sont désormais consignées comme prévu dans le fichier exception.log. Auparavant, bien que les erreurs étaient consignées dans le fichier system.log, elles ne l’étaient pas var/log/exception.log.
  • Les commerçants peuvent désormais spécifier un fournisseur SMTP externe personnalisé. GitHub-26104
  • Les intégrations OAuth peuvent désormais être réautorisées comme prévu sur les déploiements exécutant Adobe Commerce 2.4.3-p2. Auparavant, la réautorisation échouait avec cette erreur : The attempt to post data to consumer failed due to an unexpected error. Please try again later. Adobe Commerce a également tenté de déchiffrer des valeurs non chiffrées. GitHub-35313
  • Le paramètre de rowId correct est désormais transmis lorsque le urlKey de catégorie est enregistré pour les catégories qui ont des catégories enfants. Auparavant, le mauvais categoryId était transmis lors de l’enregistrement du URLKey de catégorie.
  • Le code d’attribut de produit event a été ajouté à la liste des codes d’attribut de produit réservés, ce qui élimine les erreurs associées à l’utilisation d’un attribut avec ce nom sur le storefront. Auparavant, l’application générait cette erreur sur les pages de détails du produit et de recherche/liste de produits lorsque event était utilisé : report.CRITICAL: Error: Call to a member function getStatus() on string in /home/mer33515/public_html/ee24develop/magento2ee/app/code/Magento/CatalogEvent/Observer/ApplyIsSalableToProduct.php:23.
  • Les messages d’erreur de validation de Storefront qui se produisent lors du placement de la commande s’affichent désormais de manière cohérente. Auparavant, les messages s’affichaient, étaient réduits, puis réapparaissaient. GitHub-35651
  • Les consommateurs AMQP n’échouent plus en raison d’une fonction trim() obsolète sur les déploiements exécutant PHP 8.1. Auparavant, lorsque le client AMQP démarrait après l’installation, Adobe Commerce générait cette erreur : Deprecated Functionality: trim(): Passing null to parameter #1 ($string) of type string is deprecated in .../vendor/magento/framework-amqp/Config.php on line 143. GitHub-35380
  • La méthode getFilteredTimerIds fonctionne désormais comme prévu. La classe Magento\Framework\Profiler\Driver\Standard\Stat est désormais compatible avec PHP 8.1. Auparavant, Adobe Commerce renvoyait une exception lorsque cette méthode était appelée. GitHub-35307
  • Suppression de la dépendance sur la bibliothèque imagemin-svgo.
  • Le processus du modèle de minimisation traite désormais correctement les commentaires consécutifs lorsque le premier commentaire commence par //. GitHub-34880
  • Correction d'une requête de base de données émise par le module BundleGraphQl qui renvoyait cette erreur : "debugMessage": "Notice: Undefined offset: 16 in vendor/magento/module-bundle-graph-ql/Model/Resolver/Options/Collection.php on line 130".GitHub-34991

Correctifs généraux

  • Adobe Commerce affiche désormais une période précise lorsqu’un utilisateur administrateur sélectionne l’option Last 24 Hours dans le tableau de bord des statistiques d’administration. Auparavant, Adobe Commerce affichait une période incorrecte. Cette erreur est due au fait que le fuseau horaire de la base de données est resté inchangé.
  • Des avoirs peuvent maintenant être générés pour les quantités entières et décimales. Auparavant, seules les quantités entières étaient prises en charge.
  • La règle de validation d’entrée du code postal client pour le type numérique uniquement fonctionne désormais comme prévu dans le champ Edit Customer Address (Store > Attribute > Customer Address). Auparavant, les informations d’adresse du client étaient enregistrées sans validation de code postal.
  • Les utilisateurs administrateurs disposant d’un accès limité à un site web peuvent désormais se connecter à l’administrateur à l’aide de la fonctionnalité Connexion en tant que client .
  • Les comptes clients partagés à l’échelle mondiale possèdent désormais des adresses qui sont validées par rapport à la liste des pays autorisés pour le site web actuel et enregistrées avec succès. Auparavant, ces comptes étaient incorrectement validés par rapport aux pays autorisés du site web dans lequel le client était enregistré.
  • Les chemins de navigation de la hiérarchie de page CMS ne s’affichent plus lorsque Enable Hierarchy Functionality est désactivé. Auparavant, les chemins de navigation s’affichaient et lorsque les acheteurs cliquaient dessus, une page 404 s’affichait. GitHub-35513
  • La suppression d’un produit de tous les sites web via l’administrateur ne provoque plus l’erreur suivante : SQLSTATE[42000]: Syntax error or access violation. GitHub-35133
  • Les clients qui dépassent le nombre maximal d’échecs de tentative de connexion peuvent désormais se connecter après la réinitialisation du mot de passe. GitHub-34981
  • Le composant de lignes dynamiques se comporte désormais comme prévu lorsqu’un utilisateur administrateur ajoute un nouvel élément. Auparavant, le composant de ligne ne se comportait pas correctement lorsqu’un nouveau produit simple était ajouté à un produit groupé. GitHub-34850
  • Correction des fautes de frappe et de la grammaire incorrecte dans le fichier app/code/Magento/Backend/etc/menu.xsd.
  • Le fichier app/code/Magento/Authorization/README.md a été mis à jour pour décrire avec précision la création de la table.
  • La méthode recordLogin a été mise à jour afin de définir des valeurs de connexion sur le modèle utilisateur et de conserver les valeurs correctes dans les champs logdate et lognum de la table admin_user. Auparavant, les tentatives de connexion des utilisateurs administrateurs mis à jour n’étaient pas enregistrées.
  • Les modèles de problème GitHub ont été convertis en formulaires de problème pour les problèmes d’expérience des développeurs et les demandes de fonctionnalités.
  • L’attribut du client Is required est désormais correctement implémenté par portée de site web pour le formulaire de modification du client Admin.
  • Le champ Grid Filter Condition Type des attributs de client et d’adresse du client n’est plus visible sur la page de modification des attributs lorsque le paramètre Use in Filter Options est désactivé.
  • Adobe Commerce affiche désormais un message d’erreur informatif si un commerçant ne saisit pas de valeur d’attribut de SKU facultative lors de la création d’un produit. Auparavant, l’application générait cette exception lorsque l’attribut était facultatif : Deprecated Functionality: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/mg244/project-community-edition/vendor/magento/module-eav/Model/Entity/AbstractEntity.php on line 932. GitHub-35810
  • Le filtre Show my quotes sur la page My Quotes fonctionne désormais comme prévu. Auparavant, les résultats du filtre incluaient des citations d’autres utilisateurs administrateurs.

Cartes cadeaux

  • Les montants des produits des cartes-cadeaux restent désormais identiques au montant spécifié dans un fichier CSV lors de l’importation. Des vérifications pour les options existantes ont été ajoutées et les anciennes valeurs sont désormais mises à jour en fonction d’une clé unique. Auparavant, les montants des cartes-cadeaux étaient doublés lorsque celles-ci étaient importées plusieurs fois.

Emballage cadeau

  • Le prix de l’emballage-cadeau s’affiche désormais comme prévu dans le bloc de résumé de la commande lorsque l’emballage-cadeau a été appliqué au niveau de la commande à une commande contenant des produits physiques et virtuels. Auparavant, Adobe Commerce n’affichait pas le prix de l’emballage du cadeau.

GraphQL

  • Les Types qui implémentent plusieurs interfaces dans le code GraphQL peuvent désormais être séparées par un signe & et , conformément à la spécification GraphQL @doc.
  • La mutation setShippingAddressesOnCart prend désormais en charge la définition des codes de région numériques comme region. Auparavant, cette mutation ne fonctionnait pas correctement pour les valeurs numériques de code de région.
  • La requête products renvoie désormais uniquement les révisions associées à la portée spécifiée. Auparavant, les requêtes renvoyaient des avis de tous les magasins.
  • Les autorisations de catégorie sont désormais respectées lors des demandes GraphQL.
  • La requête customer filtre désormais correctement les commandes avec une plage de from et de to spécifiée. GitHub-31537
  • La requête product renvoie désormais des données de catégorie correctes dans l’agrégation. Auparavant, attribute_code.category_uid renvoyait la valeur de category_id au lieu de category_uid.
  • La requête customerOrders ne renvoie plus d’erreur \"model\" value should be specified. GitHub-35852
  • La requête customer filtre désormais les commandes en fonction de la portée. Vous pouvez désormais spécifier si la requête doit filtrer les commandes par magasin, site web ou globalement.
  • La requête categoryList renvoie désormais un nombre précis de produits pour les catégories parentes ancrées et non ancrées. Le nouvel attribut is_anchor a été ajouté à la liste Colonnes sélectionnées de la collection de catégories. Auparavant, les requêtes renvoyaient un nombre de produits égal à 0. GitHub-36300
  • La mutation generateCustomerTokenAsAdmin fonctionne désormais comme prévu lors de la création d’un jeton pour la connexion à un magasin autre que le magasin par défaut dans un déploiement multi-magasin. GitHub-35084
  • La mutation createEmptyCart renvoie désormais une exception comme prévu lorsqu’un jeton expiré est utilisé. GitHub-26112
  • Les messages d’erreur de requête de panier ont été rendus plus informatifs. GitHub-34546
  • Les données d’agrégation dans la réponse d’une requête products incluent désormais des valeurs correctes pour l’attribut de type de prix attribute_code et label. GitHub-28878
  • La requête products renvoie les informations de catégorie attendues lorsque le préfixe de la base de données a une valeur non nulle. Auparavant, elle renvoyait une Internal server error. GitHub-36117
  • Correction du type de retour de la méthode getCustomerIsGuest. GitHub-29529
  • Le plug-in Magento\CatalogGraphQl\Plugin\DesignLoader a été refactorisé.
  • Le rechargement du panier est désormais déclenché une seule fois comme prévu lorsque le panier est initialisé par des mutations de GraphQL. Auparavant, le chargement du panier déclenchait une revalidation inutile du panier par rapport à l’inventaire des stocks, ce qui consommait d’importantes ressources chaque fois que le panier était chargé.
  • Ajout du type de gift_message au OrderItemInterface. GitHub-29418
  • Les options de produit renvoyées dans les réponses de GraphQL incluent désormais uniquement les produits qui se trouvent dans le catalogue auquel appartient l’utilisateur. Si l’utilisateur appartient à un catalogue partagé, seuls les produits des catalogues partagés sont renvoyés. Si l’utilisateur est un invité ou ne fait pas partie d’un catalogue partagé personnalisé, seuls les produits du catalogue public sont renvoyés.

Google ReCAPTCHA

  • Une erreur reCAPTCHA dans le fichier var/log/exception.log pour la connexion d’administrateur reCAPTCHA de Google V3 a été résolue, et aucun message d’erreur n’est consigné. Auparavant, l’erreur suivante était générée toutes les quelques secondes lorsqu’un utilisateur administrateur configurait ses paramètres Configuration > Security > Google reCAPTCHA Admin Panel : main.ERROR: Can not resolve reCAPTCHA parameter. {"exception":"[object] (Magento\Framework\Exception\InputException(code: 0): Can not resolve reCAPTCHA parameter. at /home/xxxxxxx/public_html/vendor/magento/module-re-captcha-ui/Model/CaptchaResponseResolver.php:25)"} []. GitHub-34975

Image

  • Mise à jour des recommandations sur la taille du logo pour le bordereau de facture PDF.

Importer/exporter

  • L’importation d’un produit avec la même clé URL numérique qu’un produit existant, mais sans son caractère alphabétique terminal, ne provoque plus d’erreur de validation lorsque la Product URL Suffix est définie sur vide dans l’administrateur.
  • La commande bin/magento app:config:import importe désormais avec succès le contenu d’un fichier config.php lorsqu’il contient certaines expressions cron. Auparavant, l’importation échouait avec cette erreur : Import failed: Notice: Trying to access array offset on value of type null in [..]/vendor/magento/module-config/Model/Config/Backend/Currency/Cron.php on line 66. GitHub-31428
  • L’exportation complète fonctionne désormais correctement lorsqu’AWS S3 est utilisé comme stockage distant. Auparavant, l’exportation échouait en raison de la taille du fichier chargé.
  • Le statut du produit est désormais correctement importé lorsque les colonnes de données d’inventaire du fichier CSV sont manquantes. Auparavant, après l’importation du produit, l’origine par défaut était automatiquement attribuée au produit, sa quantité était définie sur zéro et son statut était répertorié comme étant en rupture de stock lorsque les colonnes de données de stock du fichier CSV étaient manquantes.
  • L'importation de valeurs de prix d'avance fournit désormais le nombre correct d'enregistrements nouveaux et mis à jour lorsque l'importation inclut plus de 100 enregistrements. Auparavant, le message de réussite de l’importation indiquait un nombre incorrect.
  • Les fichiers CSV exportés contiennent désormais les chemins d’accès corrects aux noms de catégorie enregistrés dans plusieurs langues. Un ID de magasin a été ajouté pour la collecte de catégories. Auparavant, les fichiers exportés contenaient des chemins mixtes avec des langues différentes au lieu d’un chemin de catégorie dérivé de la vue de magasin par défaut.
  • La mise à jour des options personnalisées d’un produit dans une vue de magasin spécifique via l’importation s’effectue désormais correctement. Auparavant, une erreur de serveur interne était générée si des lignes liées à un produit étaient fractionnées en plusieurs lots.
  • Le service d’importation de Fixer.io fonctionne désormais comme prévu. Les taux de change ont été correctement importés. GitHub-36010

Index

  • La batch_size de l’indexeur pour l’index catalogpermissions_category est maintenant remplacée par la valeur fournie dans le fichier env.php comme prévu. Auparavant, une faute de frappe dans le chemin d’accès pour le remplacement du batch_size de l’indexeur empêchait de modifier la taille du lot sur la valeur fournie dans env.php. GitHub-652
  • La réindexation des prix s’exécute désormais correctement lorsque le catalogue contient des produits groupés qui ne sont affectés à aucun site web. Auparavant, l’erreur suivante se produisait lorsque l’indice des prix des produits s’exécutait : Warning: Undefined array key <bundel product id > in vendor/magento/module-bundle/Model/ResourceModel/Indexer/Price/DisabledProductOptionPriceModifier.php on line 117. GitHub-35796

Infrastructure

  • Ajout d’un nettoyage des valeurs DATE et DATETIME dans les vidages de base de données pour la prise en charge d’Adobe Commerce. Auparavant, les champs de type datetime n’étaient pas assainis pour les tables client/devis/commande dans la table de sauvegarde de la base de données.
  • La fonction escaper.js escapeHtml convertit désormais le caractère spécial esperluette (&) en "$amp;" selon la règle InnerHtml. Cette solution générique résout les problèmes de conversion de caractères spéciaux et de références de caractères dans la zone de saisie du titre et enregistre la valeur exacte telle qu’insérée. Auparavant, les esperluettes (&) étaient incorrectement codées dans les noms de nœud de la hiérarchie du contenu.
  • Les problèmes liés au module colinmollenhour/php-redis-session-abstract tiers et à PHP 8.1 ont été résolus. GitHub-35634

Galerie de médias

  • L’ancienne Galerie de médias est désormais désactivée par défaut. Auparavant, Enable old Media gallery était défini sur Yes.
  • La Galerie de nouveaux médias a été optimisée pour améliorer le chargement de l’arborescence du répertoire dans la page de catégorie.

Journalisation

  • Vous pouvez désormais générer des rapports système pour les fichiers journaux de 0 octet. Auparavant, Adobe Commerce générait une erreur lors de la génération d’un rapport pour une collection de fichiers journaux lorsqu’un ou plusieurs fichiers étaient vides.

Ordre

  • La page Admin avoir commande client affiche désormais le total général correct pour les commandes créées avec le crédit de magasin et plusieurs factures. Auparavant, le calcul du total général était incorrect et l'utilisateur ne pouvait pas générer d'avoir.
  • Le préfixe de commande transmis dans le script d’installation est désormais correctement ajouté à l’ID de commande.
  • La page Détails de la commande se charge désormais correctement lorsque la commande contient un produit avec une longue valeur de texte personnalisée. Auparavant, la page Détails de la commande ne se chargeait pas et la valeur de la colonne sales_order_item.product_options n’était pas stockée correctement si un produit contenait une valeur longue pour une option texte personnalisé.
  • Le statut de la commande Storefront est désormais correct pour les commandes partiellement remboursées. Auparavant, une commande restait à l’état de traitement après l’expédition lorsqu’un remboursement partiel était appliqué. GitHub-35528
  • Le groupe de clients est désormais représenté avec précision comme Non connecté pour une commande créée par un utilisateur invité. Auparavant, le groupe de clients était NUL dans les résumés des commandes des invités, ce qui affectait les e-mails de confirmation et l’exportation des commandes. GitHub-35440
  • Un statut de Closed est désormais attribué aux commandes virtuelles comme prévu après l'émission d'un avoir et le remboursement du client. Auparavant, les produits virtuels s’affichaient sous la forme Complete dans le menu déroulant Statut , mais Closed dans le pied de page des commentaires de commande lorsque le commentaire était ajouté à partir de l’administration. GitHub-35283
  • Les clients peuvent désormais passer des commandes pour des produits dont la quantité est inférieure à un, et la quantité de produits est désormais strictement saisie en tant que float. Auparavant, comme la quantité de produit était strictement saisie en tant que int, les commandes pour une quantité de produit inférieure à un échouaient avec le message suivant : Some of the products are disabled. GitHub-36060
  • Les remboursements d’expédition sont désormais correctement calculés lorsque l’option de configuration Apply discount on prices est définie sur including taxes.
  • Les grilles Facture, expédition et avoir sont désormais mises à jour de manière asynchrone une fois les commandes archivées.
  • Les commandes en double ne résultent plus de requêtes GraphQL identiques simultanées. Les guillemets sont maintenant verrouillés pendant 10 secondes au maximum pour empêcher la création de commandes en double. La deuxième demande échoue avec les erreurs suivantes : The cart isn't active ou The order has already been placed and is currently processing. Cette valeur de verrouillage peut être configurée via di pour le paramètre de lockWaitTimeout de classe Magento\Quote\Model\PlaceOrderMutex. GitHub-36274
  • L’ajout d’un commentaire à une commande archivée ne la renvoie plus à la grille des commandes non archivées tout en conservant son statut archivé.
  • Les valeurs d’attribut d’entreprise s’affichent désormais comme prévu dans les sections Adresse de facturation et d’expédition du workflow de passage en caisse. Auparavant, les attributs de société ne s’affichaient pas correctement sur la page des détails de la commande, car les magasins n’étaient pas correctement définis lors de la création de la commande. Les valeurs d’attribut n’étaient stockées correctement que lorsque la propriété Afficher la société était définie sur optional pour Site web principal dans les déploiements multi-magasin.
  • La valeur customer_address_id est maintenant définie comme prévu pour une nouvelle adresse de facturation lorsque My billing and shipping address are the same case est cochée. Une condition supplémentaire a été introduite pour identifier si l’adresse de facturation est identique à l’adresse d’expédition avant de définir l’ID d’adresse du client pour l’adresse d’expédition.
  • Les problèmes de simultanéité avec le placement de commande ont été résolus. Auparavant, si deux commandes étaient passées à partir de navigateurs différents au même moment, ou presque au même moment, les deux commandes se voyaient attribuer le même ID de commande. GitHub-35833
  • Passer une commande facturée automatiquement pour un produit gratuit lorsque l’indexation asynchrone est activée fonctionne désormais comme prévu. Aucune entrée n'est ajoutée à la table sales_order_grid or sales_invoice_grid pour ces commandes. Auparavant, Adobe Commerce générait une exception car l’application tentait d’indexer les grilles lors de l’enregistrement des commandes au lieu de s’appuyer sur cron. GitHub-36334

Page Builder

  • Vous pouvez désormais utiliser la fonction de glisser-déposer de Page Builder pour importer en bloc des images dans la galerie.
  • Les problèmes liés à la règle CSS du curseur du Générateur de page ont été résolus. GitHub-34527
  • Les attributs Dropdown, Text area et Text field sont désormais disponibles dans la liste des attributs de produit Page Builder. Auparavant, seuls les attributs Dropdown et Text area étaient disponibles.

Paiement

  • Le mode de paiement du contre-remboursement n'est plus rendu sur le workflow de passage en caisse du storefront lorsque le contre-remboursement est exempté pour le pays spécifié dans les adresses d'expédition et de facturation. Auparavant, les paramètres de configuration d’administration pour cette fonctionnalité n’étaient pas implémentés.
  • Les informations de paiement Vault ne s’affichent plus dans la section Paiement du workflow de création de commande administrateur si l’acheteur n’a pas enregistré de jeton. GitHub-33954
  • Les prix personnalisés ne sont plus doublés après l’application d’une remise par règle de prix de panier. GitHub-35154
  • Le nouveau statut de commande en attente est désormais honoré comme prévu lorsqu’une commande est passée à l’aide du mode de paiement Passage en caisse avec sous-total zéro.
  • Les paramètres d’e-mail des invités sont désormais respectés lors de la création de la commande pour un acheteur invité avec PayPal Express via GraphQL. Auparavant, l’adresse e-mail définie était remplacée par celle définie dans le compte PayPal.

Braintree

  • Les ID de commande sont désormais ajoutés aux demandes de règlement pour les transactions de paiement.
  • Adobe Commerce ne renvoie plus l’erreur suivante lorsqu’un commerçant clique sur Reports > Braintree Settlement : Error: Undefined constant Braintree\PaymentInstrumentType::ANDROID_PAY_CARD in /var/www/html/vendor/paypal/module-braintree-core/Ui/Component/Report/Listing/Column/PaymentType.php:49. GitHub-35434
  • La requête customerPaymentTokens ne renvoie plus de jetons Braintree lorsque le coffre est désactivé par l’administrateur.
  • Le bouton Pay Later et les bannières ont été activés pour l'Italie et l'Espagne.
  • Les utilisateurs administrateurs peuvent désormais créer une commande ou la réorganiser lorsque le mode de paiement Braintree est activé. Auparavant, Adobe Commerce générait cette erreur : report.CRITICAL: Error: Call to a member function getMethodInstance() on null in /app/vendor/paypal/module-braintree-core/Block/Form.php:174.
  • Le passage en caisse à l’aide du mode de paiement Braintree se termine désormais correctement lorsque Braintree PayPal est activé et Enable Card Payments est désactivé. Auparavant, la barre de progression n’était jamais résolue et Adobe Commerce affichait cette erreur de console : adapter.js:66 Uncaught TypeError: Cannot read properties of undefined (reading 'clientToken')at Object.getClientToken (adapter.js:66:66). GitHub-35961
  • Protection contre la fraude, paiement par CCA et hooks Web de méthode de paiement local ont été mis en œuvre. Le hook web de protection contre les fraudes n’est déclenché que si une décision relative aux risques a été prise dans Braintree. Le hook web ACH n'est déclenché qu'après la mise à jour d'un paiement ACH vers settled ou settlement decline.
  • Les champs de configuration Tagline et Layout ont été supprimés de tous les boutons PayPal de la section Style d’administration .
  • L’option Mode de paiement Braintree Vault reste 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 bouton My billing and shipping address are the same.
  • Les éléments de ligne sont désormais transmis pour les transactions PayPal lorsque le paramètre de configuration Send Line Items est activé à partir de l’administrateur.
  • La logique de validation du champ Account Number du mode de paiement ACH prend désormais en charge le texte à 4 à 17 chiffres.
  • La requête customerPaymentTokens ne renvoie plus de jetons Braintree lorsque le coffre est désactivé par l’administrateur.
  • Les utilisateurs administrateurs peuvent désormais passer une commande ou une nouvelle commande pour les clients lorsque le mode de paiement Braintree est activé. Auparavant, Adobe Commerce générait cette erreur : report.CRITICAL: Error: Call to a member function getMethodInstance() on null in /app/vendor/paypal/module-braintree-core/Block/Form.php:174
  • Les acheteurs peuvent désormais utiliser la méthode de paiement Braintree dans les vitrines où Enable Card Payments a été désactivé. Auparavant, Adobe Commerce générait cette erreur JavaScript : _adapter.js:66 Uncaught TypeError: Cannot read properties of undefined (reading 'clientToken')at Object.getClientToken (adapter.js:66:66).

Performances

  • L’indexeur de prix supprime désormais les données obsolètes comme prévu après le remplacement des enregistrements lors de la réindexation partielle des catalogues volumineux. Auparavant, le processus de réindexation supprimait les enregistrements obsolètes avant de les remplacer, ce qui entraînait parfois la disparition temporaire des produits du storefront. GitHub-35616
  • Les performances de la commande bin/magento/setup:upgrade ont été améliorées. Auparavant, cette commande recréait les déclencheurs de base de données, ce qui provoquait un temps d’arrêt important lors de l’exécution de la commande. En outre, les indexeurs n’ont pas retrouvé le mode planifié et sont restés en mode d’enregistrement. GitHub-33386
  • La mise à jour des prix de niveau par API s’exécute désormais plus rapidement. Auparavant, la mise à jour des prix de niveau générait des requêtes de SELECT inutiles, ce qui retardait l’exécution lorsque de nombreux groupes de clients étaient affectés à un produit.
  • Le chargement des pages qui incluent la liste de produits du widget de catalogue a été optimisé. Auparavant, les attributs non globaux étaient chargés directement à partir de la base de données.

Rapports

  • Le rapport Journal d’administration affiche désormais une valeur de Value before change précise lorsqu’une règle de catégorie est mise à jour.
  • Les dates du rapport Total des commandes de et à s’affichent désormais correctement après avoir été sélectionnées à partir du sélecteur de date.
  • La constante ANDROID_PAY_CARD dans Braintree/Ui/Component/Report/Listing/Column/PaymentType.php a remplacé GOOGLE_PAY_CARD. Cela résout les problèmes liés au rapport Braintree.

Autorisations de retour de marchandises (RMA)

  • Le champ de commentaire RMA (Orders > Return) ne contient plus d’espace redondant. (Les balises <textarea> et <?php se trouvent désormais sur une seule ligne.
  • La case à cocher Use Config Settings du champ Enable RMA enregistre désormais sa valeur comme prévu lorsqu’un produit est enregistré.

Examens

  • Les utilisateurs administrateurs disposant d’un accès limité à une portée spécifique peuvent désormais supprimer les révisions de produit comme prévu.

Rôles

  • Ajout d’une liste de contrôle d’accès manquante pour Stores > Configuration > Services > OAuth. Auparavant, vous ne pouviez pas définir l’accès à ce paramètre de configuration OAuth lors de la configuration des autorisations de rôle.

Rechercher

  • Les recherches de chaînes entre guillemets fonctionnent désormais comme prévu lorsque le paramètre de configuration Minimum Terms to Match est activé. Auparavant, Adobe Commerce générait cette erreur : {"error":{"root_cause":[{"type":"parsing_exception","reason":"[match_phrase] query does not support [minimum_should_match]' ....
  • Le filtre de recherche Point d'inscription pour les enregistrements client dans les grilles client de la commande client fonctionne désormais comme prévu lors de la création de la commande.
  • La qualité des suggestions de recherche a été améliorée pour les requêtes à plusieurs mots.
  • Les résultats de recherche incluent désormais des sorties d’option en rupture de stock pour tous les produits disponibles lorsque Display Out Of Stock Products est activé GitHub-36055

Expédition

  • Les taux d'expédition pour FedEx, USPS et UPS sont calculés correctement lorsque la règle Panier d'expédition gratuit est définie pour correspondre uniquement à un sous-ensemble d'articles du panier.
  • La page d’expédition Admin n’affiche plus l’option d’expédition gratuite lorsque le total de la commande est inférieur au montant minimum de commande spécifié éligible à l’expédition gratuite. GitHub-33697
  • Adobe Commerce respecte désormais le paramètre de configuration du Show Company client d’administration lors de l’affichage de l’adresse d’expédition ou du client. Lorsque ce paramètre est désactivé, la société de livraison n’est plus incluse dans l’enregistrement de commande d’expédition, d’adresse du client ou de base de données. Auparavant, les informations s’affichaient même si vous aviez défini la désactivation. GitHub-33729
  • Suppression d'une opération d'enregistrement superflue sur les devis lors de l'estimation des frais d'expédition.
  • storeId portée est désormais appliquée directement à partir de $request->getStoreId() pour vous assurer que la portée n’est pas perdue lorsqu’un devis est créé par un utilisateur administrateur. Auparavant, des problèmes survenaient parfois avec les méthodes d’expédition lorsqu’un devis était créé à partir de l’administration à l’aide de modules tiers.
  • Des URL compatibles avec les moteurs de recherche sont désormais générées pour les produits dont le paramètre url_key est remplacé au niveau de la vue du magasin. Auparavant, les URL de produits de catégorie n’étaient pas redirigées vers des URL compatibles avec l’optimisation du moteur de recherche.
  • Adobe Commerce ne renvoie plus d’erreur de montant minimum de commande lorsqu’une remise est appliquée aux frais d’expédition.
  • Les remboursements d'expédition sont désormais correctement calculés lorsque la taxe est appliquée après qu'une remise a été appliquée à l'expédition.
  • Toutes les promotions applicables pour un panier demandé via la requête de cart GraphQL sont renvoyées ensemble. Les promotions incluent des remises sur les lignes, des règles/remises sur le panier, des coupons, des cartes-cadeaux et des crédits en magasin. GitHub-35545
  • Ajout des types price_excl_tax et price_excl_tax à la sortie de la mutation setShippingMethodsOnCart. GitHub-31206
  • Des identifiants d’expédition uniques sont désormais transmis dans les réponses GraphQL comme prévu avec les détails d’expédition pour les commandes envoyées à plusieurs adresses pour les requêtes GraphQL.

Évaluation

  • La replanification de la date de fin d'une mise à jour d'évaluation n'entraîne plus d'erreur une fois la mise à jour terminée. Auparavant, les administrateurs ne pouvaient pas ouvrir les pages de produits et les grilles de produits, et Adobe Commerce a généré cette erreur : report.CRITICAL: Exception: Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "1" already exists.
  • Le tableau de bord de staging affiche désormais le nombre total correct d’enregistrements. La pagination du tableau de bord fonctionne désormais comme prévu. Précédemment. le tableau de bord affichait un maximum de 20 enregistrements.
  • Les aperçus d’évaluation de contenu se chargent désormais plus rapidement dans les déploiements avec de nombreux magasins. La prévisualisation de la réindexation réindexe désormais uniquement les magasins sélectionnés.
  • Vous pouvez désormais ajouter des produits au panier en mode de prévisualisation de la planification. La mise à jour des liens de chemin de navigation en mode d’aperçu de planification avec ces paramètres a corrigé ce problème : version, timestamp et signature.

Taxe

  • Le paramètre de configuration Display Zero Tax Subtotal s’applique désormais comme prévu aux commandes dans les déploiements offrant plusieurs méthodes d’expédition. Auparavant, le champ TVA nulle était visible sur la page du panier lors du passage en caisse avant qu’une méthode d’expédition ne soit sélectionnée même lorsque ce paramètre était désactivé. GitHub-35561
  • Adobe Commerce peut désormais afficher les produits groupés avec taxe sur la page de catégorie storefront dans les déploiements exécutant PHP 8.1. Auparavant, Adobe Commerce n’affichait pas de liste de produits et a généré l’exception suivante : main.CRITICAL: Exception: Deprecated Functionality: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/m24/vendor/magento/module-tax/Pricing/Render/Adjustment.php on line 188 in /var/www/m24/vendor/magento/framework/App/ErrorHandler.php:61. GitHub-35500
  • Les commerçants ne peuvent plus déplacer une mise à jour planifiée vers une autre mise à jour contenant le même ID de règle. Auparavant, les mises à jour de planification des règles de prix de panier créaient des planifications en double lorsqu’une mise à jour était déplacée vers une autre mise à jour contenant le même ID de règle.
  • L'affectation automatique des groupes de clients fonctionne désormais lorsqu'aucun numéro de TVA n'est associé à l'adresse du client. Si l'adresse ne contient pas d'ID TVA, elle est traitée comme appartenant à un client non enregistré TVA et Adobe Commerce transforme le groupe de clients en un groupe non TVA. Auparavant, lorsque Enable Automatic Assignment to Customer Group était activé, le compte client n'était pas automatiquement affecté au customerGroup lorsque le numéro de TVA était supprimé du compte client.
  • Les blocs dynamiques corrects s’affichent désormais pour les règles de catalogue intermédiaires en mode d’aperçu intermédiaire. Auparavant, des blocs dynamiques non liés étaient affichés.
  • Plusieurs taxes sont désormais correctement rendues dans la section Synthèse des taxes des factures et des avoirs lorsque la livraison multiple est appliquée lors du passage en caisse.
  • Les remises ne sont plus appliquées lorsqu'un sous-total de commande incluant la taxe ainsi que le montant de taxe de produit fixe dépasse la condition de règle du panier sur la page du panier. Auparavant, les remises étaient appliquées même lorsque le total dépassait la condition de règle du panier.
  • Vous pouvez désormais spécifier une vat_id lors de l’utilisation de GraphQL pour ajouter ou mettre à jour l’adresse d’un client invité.

Test

  • Correction des erreurs de tests unitaires pour différentes versions des bibliothèques ICU et libxml.
  • L’équipe de développement peut désormais demander au système d’exécuter une structure de données dans une vue de magasin spécifique. Le nouveau paramètre facultatif scope accepte un string qui correspond à l’alias de l’ablocage du magasin.
  • Ajout de la possibilité de générer plusieurs instances d’une structure de données à l’aide du paramètre facultatif count.
  • Suppression de la fonction array_first non native des dépendances de développement dans le framework MFTF.

Traductions et paramètres régionaux

  • La traduction en ligne fonctionne désormais correctement avec les caractères spéciaux, y compris les caractères Unicode étendus dans les expressions situées dans les balises SCRIPT. Auparavant, les caractères japonais étaient incorrectement rendus dans le script modifié lors de l’utilisation de la traduction en ligne.
  • Le caractère ñ d’un nom de produit est désormais converti en n lors de la génération de la clé de l’URL.
  • La sortie du bin/magento i18n:collect-phrases en cours d’exécution inclut désormais les traductions de modèles de courrier dans les constructions depend comme prévu. GitHub-35449
  • Les caractères japonais peuvent désormais être saisis directement dans le jeu d’attributs de la page de produits (zone de liste). Auparavant, la saisie directe de caractères japonais dans cette zone de liste modifiait ou supprimait des caractères lors de l’exécution du navigateur Firefox sur MacOS. L’attribut textInput HTML, qui peut mieux gérer la conversion des caractères japonais dans tous les navigateurs, a remplacé les attributs Value et valueUpdate.
  • La méthode getOptions récupère désormais correctement les valeurs de libellé d’attribut price en fonction de la vue du magasin. Auparavant, l’attribut price était traduit lors des opérations GraphQL pour la vue de magasin incorrecte.

Interface utilisateur

  • La devise spécifique au site Web est désormais utilisée comme prévu pour les colonnes Prix spécial, Coût et MSRP dans la grille de produits d’administration. Auparavant, le symbole de devise correct ne s’affichait pas dans la grille de produits du catalogue d’administration lors du filtrage par vue de magasin pour un prix spécial.
  • La fonctionnalité de glisser-déposer des options personnalisées de produit fonctionne désormais comme prévu. Vous pouvez désormais déplacer une option personnalisable d’une page à une autre lorsqu’il y a plusieurs pages disponibles dans la grille d’options personnalisables.
  • Les graphiques des tableaux de bord d’administration affichent désormais les intervalles de temps cumulés sur l’exercice entre le début de l’année civile en cours et la date actuelle comme prévu. Auparavant, les périodes étaient incluses sur 12 mois.
  • Une favicon manquante a été ajoutée à la page d’accueil du storefront. GitHub-35493
  • L’administrateur affiche désormais avec succès la dernière date de connexion de chaque utilisateur administrateur. Auparavant, lorsqu’un utilisateur administrateur se connectait pour la première fois à l’administrateur, une valeur de date de connexion vide s’affichait sur la grille d’utilisateurs administrateur.
  • La fonctionnalité de prévisualisation du modèle d’e-mail (Marketing > Communications > Email Templates) affiche désormais correctement les modèles. Auparavant, l’image d’aperçu était tronquée. GitHub-35697
  • Ajout de la classe new-shipping-address-modal pour prendre en charge la mise en forme du modal nouvelle adresse de livraison.
  • Ajout d’un texte informatif sous le champ d’entrée Storefront Properties de l’attribut Search Weight dans Admin Stores > Attributes > Product.
  • Les aperçus d’e-mail s’ouvrent désormais dans un onglet distinct au lieu d’une fenêtre contextuelle, qui offre une vue plus large du contenu de l’e-mail. Auparavant, le contenu des e-mails était tronqué.
  • La fonction de filtrage de la grille des rôles utilisateur (Admin System > Permissions > User roles > Administrators) fonctionne désormais comme prévu. La valeur du tableau est désormais gérée séparément. Auparavant, lorsque vous tentiez de saisir une requête dans cette grille, Adobe Commerce générait cette erreur de console, et la page ne se chargeait pas : Uncaught TypeError: Cannot read properties of null. GitHub-35993
  • La validation des valeurs d’attribut a été ajoutée lors de la création d’un client via l’API REST. Le processus de création échoue désormais lorsque des valeurs d’attributs non valides sont fournies. Auparavant, il n’y avait aucune validation pour le genre, qui n’est pas un champ obligatoire. Lors de la création du client, la valeur qui a été transmise pour le genre a été enregistrée dans le tableau customer_entity.
  • Les adresses ajoutées pendant le passage en caisse conservent désormais le format attendu. Auparavant, les lignes vides étaient ignorées.
  • La modification de la vue Grille des colonnes de la grille de produit et la sélection de nouvelles colonnes pour une vue personnalisée ne déclenchent plus d’action Sélectionner toutes les colonnes de la grille . Auparavant, la zone de colonne disparaissait et les produits de la grille étaient sélectionnés ou désélectionnés. GitHub-36302
  • Les utilisateurs administrateurs peuvent désormais effacer le journal des tâches terminées par l’administrateur avec succès. Auparavant, l’administrateur affichait cette erreur : Something went wrong. GitHub-36255
  • Le paramètre d’en-tête du thème Welcome Text peut désormais contenir un guillemet simple. Auparavant, Adobe Commerce générait cette erreur JavaScript : Uncaught SyntaxError: Unable to process binding "ifnot: function(){return customer().fullname }".

Réécritures d’URL

  • Le fait de définir la visibilité du produit sur Not Visible Individually dans la portée globale Toutes les vues de boutique supprime désormais les réécritures d’URL uniquement pour les vues de boutique qui n’ont pas remplacé l’attribut de visibilité. Cette modification de la visibilité du produit génère également des réécritures d’URL pour toutes les vues de magasin, y compris celles qui ont remplacé l’attribut de clé d’URL (mais pas le paramètre de visibilité). Auparavant, les règles de réécriture d’URL n’étaient pas appliquées lorsque les paramètres de visibilité étaient modifiés.

Marchandiseur visuel

  • Vous ne pouvez plus modifier manuellement la position des produits dans les listes des catégories de marchandiseur visuel lorsque des produits sont associés par règle.
  • Les utilisateurs administrateurs disposant d’un accès limité à un seul magasin ne peuvent plus faire glisser et déposer des produits d’une catégorie dans Visual Merchandiser. Il peut désormais utiliser la colonne Position pour réorganiser la position du produit. Auparavant, ces utilisateurs pouvaient uniquement modifier la position du produit dans une catégorie par glisser-déposer.
  • La section Produits dans la catégorie de la page de modification de catégorie affiche désormais la quantité correcte de produits configurables. La colonne correcte du tableau est désormais utilisée pour récupérer la quantité configurable de produits.