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.