Mise en évidence d’Adobe Commerce 2.4.7

Recherchez les points forts suivants dans cette version.

Amélioration de la sécurité

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

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

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

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

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

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

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

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

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

  • Modifications de la stratégie de sécurité du contenu (CSP) : mise à jour et améliorations de la configuration des stratégies de sécurité du contenu (CSP) Adobe Commerce pour se conformer aux exigences PCI 4.0. Pour plus d'informations, reportez-vous à la section Stratégies de sécurité du contenu du Guide du développeur PHP de Commerce.

    • La configuration par défaut de la CSP pour les pages de paiement pour l’administrateur Commerce et les zones de storefront est désormais le mode restrict. Pour toutes les autres pages, la configuration par défaut est le mode report-only. Dans les versions antérieures à la version 2.4.7, la CSP était configurée en mode report-only pour toutes les pages.

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

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

      NOTE
      La mise à jour de la configuration CSP vers le mode restrict peut bloquer les scripts intégrés existants sur les pages de paiement dans l’Admin et le storefront, ce qui entraîne l’erreur de navigateur suivante lors du chargement d’une page : Refused to execute inline script because it violates the following Content Security Policy directive: "script-src. Corrigez ces erreurs en mettant à jour la configuration de la liste blanche pour autoriser les scripts requis. Voir Dépannage dans le Guide du développeur PHP de Commerce.
  • Un nouveau paramètre de configuration du cache de la page entière peut aider à atténuer les risques associés au point de terminaison HTTP {BASE-URL}/page_cache/block/esi. Ce point de terminaison prend en charge les fragments de contenu sans restriction et chargés dynamiquement à partir des poignées de disposition Commerce et des structures de bloc. Le nouveau paramètre de configuration Handles params size définit la valeur du paramètre handles de ce point de terminaison, qui détermine le nombre maximal autorisé de gestionnaires par API. La valeur par défaut de cette propriété est 100. Les vendeurs peuvent modifier cette valeur à partir de l’administrateur (Stores > Settings:Configuration > System > Full Page Cache > Handles params size). Voir Configuration de l’application Commerce pour utiliser le vernis.

  • Limite de débit native pour les informations de paiement transmises par les API REST et GraphQL. Les commerçants peuvent désormais configurer la limite de débit pour les informations de paiement transmises à l'aide de REST et GraphQL. Cette couche de protection supplémentaire prend en charge la prévention des attaques par carte et peut éventuellement réduire le volume des attaques par carte qui testent de nombreux numéros de carte de crédit en même temps. Il s’agit d’une modification du comportement par défaut d’un point de terminaison REST existant. Voir Limitation du taux.

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

Améliorations de la plateforme

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

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

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

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

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

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

  • Prise en charge du cache de vernis 7.4. Cette version est compatible avec la dernière version de Varnish Cache 7.4. La compatibilité reste avec les versions 6.0.x et 7.2.x, mais nous avons recommandé d'utiliser Adobe Commerce 2.4.7 uniquement avec la version 7.4 ou la version 6.0 LTS du cache de vernis.

  • Compatibilité avec Elasticsearch 8.11

  • OpenSearch 2.12 et OpenSearch 1.3 prennent en charge

  • Redis 7.2

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

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

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

Mises à niveau supplémentaires

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

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

  • L’ intégration d’Adobe Commerce avec FedEx a été migrée des anciens services Web WSDL de FedEx vers les dernières API RESTful de FedEx. Le suivi des services web FedEx, la validation des adresses et la validation des codes postaux WSDLS sera retiré en mai 2024.

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

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

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

Commerce 2.4.7 comprend les améliorations suivantes des performances et de l’évolutivité de Commerce :

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

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

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

  • Le format JSON est désormais pris en charge pour l’ API d’import REST. Les vendeurs peuvent désormais importer jusqu’à 100 000 enregistrements par minute dans Adobe Commerce au format JSON.

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

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

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

Serveur d’applications GraphQL

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

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

NOTE
Le serveur d’applications GraphQL n’est actuellement pas compatible avec Amazon Simple Storage Service (AWS S3). Les clients Adobe Commerce sur l’infrastructure cloud qui utilisent actuellement AWS S3 pour l’espace de stockage distant ne peuvent pas utiliser GraphQL Application Server tant que l’Adobe n’a pas publié un correctif plus tard en 2024.

Métaphorage de l’extension Adobe Commerce

Cette version introduit le métapaquet d’extension Adobe Commerce v2.0.0, qui regroupe automatiquement les extensions d’Adobe Commerce sélectionnées avec cette version principale. Les versions de ces extensions incluses dans ce métapackage sont installées lors de l’exécution de composer update, 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 maintiennent des calendriers de publication indépendants.

Le module Adobe Commerce Extension pour Adobe Commerce 2.4.7 comprend les extensions suivantes :

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

Webhooks Adobe Commerce

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

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

Adobe Stock

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

B2B

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

Braintree

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

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

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

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

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

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

  • Express Paymentboutons en haut de la page passage en caisse : pour accélérer le passage en caisse, nous avons introduit des options Express Payment au début de la passage en caisse. Les clients peuvent désormais payer par PayPal, PayPal Pay Later, Apple Pay et Google Pay Express paiements.

  • Braintreenotes de mise à jour et liens d’assistance dans la configuration de l’administrateur : les vendeurs peuvent désormais directement lier l’administrateur Commerce à l’assistance des Braintree et aux notes de mise à jour en ligne.

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

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

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

  • WebHooks de litige : lorsqu’un client conteste une transaction en Braintree, le statut du litige est désormais transmis à Commerce. Il peut faire l’objet d’une recherche dans la grille Sales > Order et est associé à chaque commande.

Intégration de Commerce avec Adobe IMS

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

GraphQL

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

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

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

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

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

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

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

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

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

Nouveaux champs pour les mutations existantes

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

  • Ajout des champs suivants aux mutations setBillingAddressOnCart et setShippingAddressesOnCart :

    • fax
    • middlename
    • prefix
    • suffix

Nouvelles requêtes et mutations

Requêtes et mutations obsolètes

Inventory management

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

Paiements

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

  • La valeur des cartes de crédit a été améliorée pour tous les modes de paiement, à l’exception de Venmo. Les acheteurs peuvent désormais sauvegarder ou enregistrer leurs paiements ACH et les afficher ou les supprimer de la page de leur compte. Les vendeurs peuvent activer et désactiver les paiements en valeur ACTIVE auprès de l’administrateur.

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

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

PWA Studio

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

Structure de l’API web

Utilisation de plusieurs coupons par panier

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

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

Renvoie tous les codes de bon associés à un panier :

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

Ajoutez un code coupon à un panier :

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

Remplacez les codes de bon dans un panier :

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

Supprimez les codes de bon d’un panier :

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

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

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

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

Problèmes résolus

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

Installation, mise à niveau, déploiement

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

Interface utilisateur d’administration

  • Les tableaux sont désormais désactivés par défaut dans le tableau de bord. GitHub-38430
  • Le menu Ventes d’administrateurs affiche désormais correctement les sous-menus. Auparavant, les sauts de colonne ne fonctionnaient pas correctement et certains sous-menus ne s’affichaient pas. GitHub-37812
  • Les options du menu déroulant Select sont désormais visibles sur Admin Content > Pages lorsque plusieurs pages sont sélectionnées dans la grille. GitHub-35386
  • Correction du chemin d’accès à la valeur par défaut system/dashboard/enable_charts dans les paramètres de configuration. Les graphiques s’affichent désormais comme prévu dans l’Administration. GitHub-37668
  • Correction d’un problème d’affichage avec les grilles d’administration du client. Auparavant, les colonnes de la grille n’étaient pas entièrement contenues dans la page affichée.
  • Les couleurs de survol sont désormais appliquées comme prévu sur les lignes des grilles statiques d’administration. GitHub-35358
  • Le workflow de passage en caisse n’affiche plus d’avertissement lorsqu’un acheteur saisit un code postal pour la Grèce qui ne contient pas d’espace vide. GitHub-36676
  • Le lien Admin It's time to change your password redirige désormais vers la page Modifier le mot de passe administrateur comme prévu. GitHub-37902
  • Les titres de sous-menu indiquent désormais les frères, quel que soit le niveau d’accès attribué à l’utilisateur. Auparavant, ces informations étaient masquées aux utilisateurs administrateurs disposant d’un accès limité, même s’il existait plusieurs groupes frères pour le sous-menu.
  • Les suffixes de titre de page sont désormais inclus dans la balise title et la balise meta title pour les pages de produit. GitHub-37680
  • La condition d’état du stock de produit est désormais correctement appliquée pour les règles de produits connexes.
  • Le bouton Login as Customer s’affiche désormais correctement sur les appareils mobiles.
  • Adobe Commerce n’affiche plus le bouton Admin Add new customer group si l’utilisateur administrateur connecté n’est pas autorisé à ajouter un nouveau groupe de clients.
  • Un utilisateur administrateur disposant d’autorisations restreintes peut désormais enregistrer un produit enfant dont le produit parent est affecté à une autre portée. Auparavant, Commerce invalidait le cache d’un produit parent qui n’était pas affecté à la portée dans laquelle le produit enfant était modifié.
  • Les utilisateurs administrateurs peuvent désormais basculer entre les vues de filtre d’administration sans que les données d’affichage soient corrompues ou perdues. GitHub-37529
  • La grille de commande archivée est désormais mise à jour de manière asynchrone avec de nouveaux statuts de commande, comme prévu. Une approche basée sur les événements permettant de mettre à jour l’état de la commande dans la grille d’archivage produit un état de commande précis, y compris les remboursements de mémo après crédit.
  • Le menu déroulant des actions de la grille d’administration peut désormais pointer comme prévu sur un lien sélectionné pour Content > Pages (et les catalogues partagés dans le module B2B). Auparavant, ce menu était essentiellement masqué et les utilisateurs administrateurs devaient faire défiler l’écran pour afficher les options. GitHub-36710

Analytics

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

Bannière

  • Refactorisation du chargement du contenu de la bannière afin de supprimer les requêtes de base de données excessives, ce qui a pour effet d’améliorer les temps de chargement du panier.

Lot de produits

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