Magento Open Source 2.4.7 Faits saillants
Recherchez les points forts suivants dans cette version.
Améliorations de la sécurité
Cette version comprend les mêmes correctifs de sécurité et améliorations de la sécurité de la plateforme que ceux inclus dans Adobe Commerce 2.4.6-p5, 2.4.5-p7 et 2.4.4-p8. Consultez le Bulletin de sécurité d’Adobe pour connaître la dernière discussion sur ces problèmes résolus.
Aucune attaque confirmée liée à ces problèmes ne s’est produite à ce jour. Cependant, certaines vulnérabilités peuvent potentiellement être exploitées pour accéder aux informations sur les clients ou prendre le contrôle de sessions d’administration. La plupart de ces problèmes nécessitent qu’un attaquant obtienne d’abord l’accès à l’administrateur. Par conséquent, nous vous rappelons de prendre toutes les mesures nécessaires pour protéger votre administrateur, y compris, mais sans s’y limiter, ces efforts :
- Liste d’adresses IP autorisées
- authentification à deux facteurs
- utilisation d’un VPN
- utilisation d’un emplacement unique plutôt que
/admin
- bonne hygiène des mots de passe
Améliorations de la sécurité supplémentaires
Les améliorations apportées à la sécurité dans cette version améliorent la conformité aux dernières bonnes pratiques de sécurité.
-
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 qui sont définies via la syntaxe de la directive de modèle ou les
setCacheKey
méthodes OUsetData
.) - Les clés de cache non générées pour les blocs ne doivent désormais contenir que des lettres, des chiffres, des traits d’union (-) et des traits de soulignement (_).
- 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 qui sont définies via la syntaxe de la directive de modèle ou les
-
Limitations du nombre de codes de coupon générés automatiquement. Magento Open Source limite désormais le nombre de codes promo générés automatiquement. La valeur maximale par défaut est de 250 000. Les commerçants peuvent utiliser la nouvelle Code Quantity Limit option de configuration (Stores > Settings:Configuration > Customers > Promotions) pour éviter de surcharger potentiellement 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 plus grande randomisation, ce qui rend les URL générées moins prévisibles.
-
Un nouveau paramètre de configuration du cache de pages entières peut contribuer à atténuer les risques associés au point d’entrée HTTP
{BASE-URL}/page_cache/block/esi
. Ce point d’entrée prend en charge des fragments de contenu chargés dynamiquement et sans restriction à partir des poignées de disposition et des structures de bloc Commerce. Le nouveau paramètre de configuration de Handles params size définit la valeur du paramètrehandles
de ce point d’entrée, qui détermine le nombre maximal autorisé de descripteurs par API. La valeur par défaut de cette propriété est 100. Les commerçants peuvent modifier cette valeur à partir de Admin (Stores > Settings:Configuration > System > Full Page Cache > Handles params size). Voir Configuration de l’application Commerce pour utiliser Varnish. -
Ajout de la prise en charge de l’intégrité des sous-ressources (SRI) pour se conformer aux exigences PCI 4.0 pour la vérification de l’intégrité des scripts sur les pages de paiement. La prise en charge de l’intégrité des sous-ressources (SRI) fournit des hachages d’intégrité pour toutes les ressources JavaScript résidant dans le système de fichiers local. La fonction SRI par défaut est implémentée uniquement sur les pages de paiement pour les zones Admin et Storefront. Cependant, les commerçants peuvent étendre la configuration par défaut à d’autres pages. Voir Intégrité des sous-ressources dans le Guide du développeur de Commerce PHP.
-
Modifications apportées à la politique de sécurité du contenu (CSP) : mises à jour et améliorations de la configuration des politiques de sécurité du contenu (CSP) d’Adobe Commerce pour se conformer aux exigences PCI 4.0. Pour plus de détails, consultez Politiques de sécurité du contenu dans le Guide du développeur de Commerce PHP.
-
La configuration CSP par défaut pour les pages de paiement des zones Commerce Admin et Storefront est désormais en mode
restrict
. Pour toutes les autres pages, la configuration par défaut est le modereport-only
. Dans les versions antérieures à la version 2.4.7, CSP était configuré en modereport-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 à usage unique pour chaque requête. Les chaînes sont ensuite associées à l’en-tête CSP.
-
Ajout d’options permettant de configurer des URI personnalisés pour signaler des violations de CSP pour la page Créer une commande dans l’administration et la page Passage en caisse dans le storefront. Vous pouvez ajouter la configuration à partir de l’administration ou en ajoutant l’URI au fichier
config.xml
.REMARQUE
La mise à jour de la configuration du CSP en moderestrict
peut bloquer les scripts intégrés existants sur les pages de paiement dans Admin et Storefront, ce qui entraîne l’erreur de navigateur suivante lorsqu’une page se charge :Refused to execute inline script because it violates the following Content Security Policy directive: "script-src
. Corrigez ces erreurs en mettant à jour la configuration de la liste autorisée pour autoriser les scripts requis. Voir Dépannage dans le Guide du développeur de Commerce PHP.
-
-
Limitation de taux native pour les informations de paiement transmises via les API REST et GraphQL. Les commerçants peuvent désormais configurer la limitation de taux pour les informations de paiement transmises à l’aide de REST et de GraphQL. Cette couche de protection supplémentaire permet de prévenir les attaques par carte et de réduire potentiellement le volume d’attaques par carte qui testent plusieurs numéros de carte de crédit à la fois. Il s’agit d’une modification du comportement par défaut d’un point d’entrée REST existant. Voir Limitation de débit.
-
Le comportement par défaut de 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 des
true
. Les commerçants peuvent activer le comportement d’origine en définissant l’option Activer la connexion au passage en caisse des invités dans l’interface d’administration suryes
, mais cela peut exposer les informations du client à des utilisateurs non authentifiés.
Améliorations de Platform
Les mises à niveau de Platform pour cette version améliorent la conformité aux dernières bonnes pratiques de sécurité.
Magento Open Source 2.4.7 comprend les mises à niveau de plateforme suivantes :
- Compatibilité PHP 8.3. Cette version introduit la prise en charge de PHP 8.3. Magento Open Source prend désormais en charge PHP 8.3 et 8.2. PHP 8.2 sera pris en charge jusqu’à sa date de fin de service (EOS) en décembre 2025. Après décembre 2025, tous les commerçants exécutant des déploiements 2.4.7 doivent migrer vers PHP 8.3.
Magento Open Source 2.4.7 est toujours compatible avec PHP 8.1, uniquement pour la mise à niveau. PHP 8.1 n'est pas pris en charge et n'est pas recommandé. Magento Open Source code de base 2.4.7, toutes les extensions groupées et toutes les extensions et services SaaS appartenant à Adobe sont compatibles avec PHP 8.3.
-
Prise en charge de RabbitMQ 3.13. Cette version est compatible avec la dernière version de RabbitMQ 3.13. La compatibilité reste avec RabbitMQ 3.11 et 3.12, qui est pris en charge respectivement jusqu’en août 2024 et décembre 2024, mais Adobe a recommandé d’utiliser Magento Open Source 2.4.7 uniquement avec RabbitMQ 3.13.
-
Composer 2.7.x. La compatibilité avec Composer 2.2.x reste.
-
Prise en charge du cache de vernis 7.4. Cette version est compatible avec la dernière version de Varnish Cache 7.4. La compatibilité reste avec les versions 6.0.x et 7.2.x, mais nous avons recommandé d’utiliser Magento Open Source 2.4.7 uniquement avec Varnish Cache version 7.4 ou version 6.0 LTS.
-
de compatibilité Elasticsearch 8.11
-
de prise en charge d’OpenSearch 2.12 et d’OpenSearch 1.3
-
Redis 7.2
-
La
extjs
bibliothèque a été remplacée par la dernière version dejsTree
. -
jquery/fileUpload
La bibliothèque a été supprimée.
Toutes les bibliothèques JavaScript et les dépendances NPM dans le code principal Magento Open Source ont été mises à jour vers les dernières versions disponibles. Toutes les dépendances de la bibliothèque Laminas ont été mises à jour vers la dernière version compatible avec PHP 8.3.
Mises à niveau supplémentaires
-
La passerelle API XML de Commerce UPS a été migrée vers la nouvelle API REST Commerce UPS pour prendre en charge les mises à jour apportées par UPS à son modèle de sécurité d’API. (UPS met en œuvre un modèle de sécurité OAuth 2.0 (bearer tokens) pour toutes les API.) Toutes les API XML UPS Commerce précédentes ont été supprimées de la base de code Magento Open Source 2.4.7.
-
L’intégration🔗 Magento Open Source avec FedEx a été migrée des anciens services Web FedEx WSDL vers les dernières API FedEx RESTful. Les services Web FedEx pour le suivi, la validation des adresses et la validation des codes postaux WSDLS seront retirés en mai 2024.
-
Ajout de la prise en charge de la nouvelle méthode d'expédition USPS Ground Advantage. Il s'agit d'une intégration prête à l'emploi avec la nouvelle méthode d'expédition d'USPS, USPS Ground Advantage, publiée en juillet 2023. Cette nouvelle intégration peut être utilisée pour récupérer les tarifs d'expédition et planifier les livraisons et les retours via le service d'expédition USPS. La méthode d'expédition USPS Ground Advantage remplace ces méthodes d'expédition, qui ont été abandonnées lorsque la méthode d'expédition USPS Ground Advantage a été lancée :
- USPS Retail Ground
- Service De Package De Première Classe
- Sélection de parcelle sol
-
Les modules d’expédition Temando ont été supprimés de la base de code Magento Open Source principale. Cette fonctionnalité a été abandonnée dans Magento Open Source 2.4.4.
Améliorations des performances et de l’évolutivité
Magento Open Source 2.4.7 comporte les améliorations suivantes en termes de performances et d’évolutivité de Magento Open Source :
-
Gestion améliorée de l’indexeur. La nouvelle commande
indexer:set-status
prend en charge la gestion dynamique du statut de l’indexeur. Les utilisateurs administrateurs peuvent utiliser cette commande pour modifier le statut de l’indexeur ensuspended
,invalid
ouvalid
. Cette fonctionnalité est particulièrement utile pour gérer les performances du système lors d’opérations en bloc importantes, telles que des importations ou des mises à jour de produits, en permettant de contrôler le moment où les indexeurs sont automatiquement déclenchés par les tâches cron du système. Voir Gestion des indexeurs. -
Page de liste de produits pour les produits complexes avec de nombreuses options. Le temps de chargement s’est amélioré pour les pages de liste de produits qui incluent des produits complexes avec plus de 100 options. Les performances des requêtes GraphQL pour répertorier les produits par catégorie ont également été améliorées.
-
Amélioration des performances des règles de vente. Amélioration des performances des déploiements d’entreprise avec un grand nombre (environ 100 000) règles de vente actives. Les déploiements d’entreprise qui implémentent fortement les promotions déploient souvent de nombreuses règles de panier actives. Ces types de déploiements d’entreprise exécutant Magento Open Source 2.4.7 ne verront aucune dégradation des performances liée au nombre de règles de prix de panier configurées pendant les opérations de paiement.
-
Opérations de sauvegarde plus rapides 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 de plus de 500 magasins peut prendre beaucoup de temps. Le nouveau module de configuration asynchrone permet des opérations d’enregistrement de configuration asynchrone en exécutant une tâche cron qui utilise un consommateur 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
bin/magento cache:clean config
commande préchauffe 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 avant d’écrireconfig_scopes
des données dans le cache, ce qui réduit également le temps pendant que d’autres demandes sont verrouillées pendant l’écriture des données de configuration.
Braintree
-
Vaulted PayPalet Pay Later modifications : les clients connectés qui ont précédemment stocké/stocké leur compte PayPal ont la possibilité de payer avec :
- Pay Now (sans avoir à se connecter à son PayPal compte, l’utilisateur peut payer avec sa carte par défaut)
- Payer avec une autre source d’approvisionnement
- Payer avec un compte différent
- Bouton PayPal Pay Later ou PayPal Credit
-
Prise en charge de 3DS pourGoogle Pay : prise en charge de la vérification 3DS pour les cartes Google Pay non segmentées en unités lexicales. Pour plus d’informations🔗 consultez la documentation de Braintree .
-
Vault Apple Pay Payments: autorisez les clients connectés à enregistrer/stocker leurs Apple Pay paiements sur leur compte Boutique Commerce afin de les utiliser lors de transactions futures. Cela réduit le nombre d’étapes à la caisse et crée une expérience de paiement plus rapide pour le client de retour.
-
Vault Google Pay Payments: autorisez les clients connectés à enregistrer/stocker leurs Google Pay paiements sur leur compte Boutique Commerce afin de les utiliser lors de transactions futures. Cela réduit le nombre d’étapes à la caisse et crée une expérience de paiement plus rapide pour le client de retour.
-
Vault Venmo Payments: autorisez les clients connectés à sauvegarder/stocker leurs Venmo comptes sur leur compte Boutique Commerce pour les utiliser lors de transactions futures. Cela réduit le nombre d’étapes à la caisse et crée une expérience de paiement plus rapide pour le client de retour.
-
Vault ACH Payments: autorisez les clients connectés à sauvegarder/stocker leurs paiements ACH sur leur compte Boutique Commerce afin de les utiliser lors de transactions futures. Cela réduit le nombre d’étapes à la caisse et crée une expérience de paiement plus rapide pour le client de retour.
-
Express PaymentBoutons en haut du passage en caisse : pour encourager un passage en caisse plus rapide, nous avons introduit Express Payment des options au début du passage en caisse. Les clients peuvent désormais payer par PayPal, PayPal Pay Later, Apple Payet Google Pay Express les paiements.
-
Braintreeles notes de mise à jour et les liens d’assistance dans la configuration d’administration les commerçants peuvent désormais accéder directement à l’assistance et aux notes de mise à jour de Braintree à partir de Commerce Admin.
-
Prise en charge de GraphQL pour tous les modes de paiement Braintree à l’exception deVenmo : d’autres configurations sont exposées dans l’API GraphQL. Cela s’avère particulièrement utile pour les applications découplées.
-
Vaultingles paiements dans la zone de compte—Les clients connectés peuvent désormais coffre/magasin de nouvelles cartes de crédit/débit et de nouveaux comptes PayPal dans la zone de compte client. Auparavant, les clients ne pouvaient mettre leurs paiements en chambre forte que lorsqu’ils les enregistraient pour une utilisation ultérieure lors de l’exécution d’une transaction lors du passage en caisse. Désormais, ils peuvent mettre en chambre forte les nouvelles cartes de crédit/débit et les nouveaux comptes PayPal sans avoir à créer de nouvelle transaction.
-
Transactions sans frottement : les transactions sans frottement accélèrent le processus de paiement en réduisant le nombre de clics/étapes des clients pour effectuer une transaction par carte de crédit/débit en ligne. Auparavant (lorsque la 3DS était activée), chaque client était confronté à un défi 3DS. Grâce à la nouvelle fonctionnalité Transactions sans friction, les clients ne sont sollicités pour la 3DS que lorsque la banque le demande. Cela réduit les abandons de panier, augmente les taux de conversion et conduit à plus de ventes.
-
Webhooks de litige : lorsqu’un client conteste une transaction dans Braintree, l’état du litige est désormais transmis au service Commerce. Il est consultable dans la grille de Sales > Order et attaché à chaque commande.
GrapheQL
Magento Open Source 2.4.7 inclut des capacité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 tête et une mise en cache améliorée du résolveur.
-
Gestion des paniers plus flexible. La
clearCart
mutation efface désormais le contenu d’un panier spécifié en une seule action. Elle remplace laclearCustomerCart
mutation, qui a été abandonnée. -
Améliorations apportées à la création de mutations de panier. La mutation
createGuestCart
a été ajoutée pour remplacer la mutationcreateEmptyCart
obsolète. Auparavant, si vous utilisiezcreateEmptyCart
, vous ne pouviez pas déterminer si le panier était pour un invité ou un client connecté. -
Les éléments de commande incluent désormais des images de produit.
OrderItemInterface
expose les images des produits, ce qui permet de les associer aux produits commandés et de les charger plus efficacement. GitHub-32369 -
Prise en charge étendue de la mise en cache du résolveur. Les résolveurs de requêtes GraphQL suivants peuvent désormais être mis en cache dans le cache GraphQL Resolver Results, ce qui améliore les performances lorsque des requêtes sont soumises avec des requêtes 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, en passant son identifiant et un motif d’annulation.
- Les champs Nouveau
order_cancellation_enabled
champ etorder_cancellation_reasons.description
champ de réponse dansstoreConfig
Prise en charge des requêtes Demandes d’annulation de commande initiées par l’utilisateur. Voir Requête sur la configuration d’annulation de commande d’une boutique
- Les champs Nouveau
-
Amélioration de la prise en charge des attributs personnalisés. La prise en charge des attributs personnalisés GraphQL a été améliorée en enrichissant les données API pour prendre en charge tous les types d’attributs. Le schéma Attributs EAV GraphQL prend désormais en charge l’extension des attributs du client et des objets d’adresse du client dans l’administration et leur récupération à l’aide de GraphQL. Les domaines spécifiques d'amélioration comprennent :
- extension/ajout de la prise en charge des attributs personnalisés à des zones spécifiques telles que l’adresse du client
- ajout de la mise en cache pour les attributs personnalisés
- prise en charge améliorée des attributs personnalisés existants pour les produits
-
Les fonctionnalités de mise en cache GraphQL améliorées améliorent la vitesse de chargement des pages. La fonctionnalité de mise en cache a été ajoutée à ces requêtes, améliorant ainsi la vitesse 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. Il est maintenant appelé 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 de commande rapide est activée. -
Ajout des champs suivants aux mutations
setBillingAddressOnCart
etsetShippingAddressesOnCart
:fax
middlename
prefix
suffix
Nouvelles requêtes et mutations
attributeForms
requêteattributesList
requête- requête
guestOrder
- requête
guestOrderByToken
- requête
recaptchaFormConfig
cancelOrder
mutation- requête
customAttributeMetadataV2
- mutation
applyCouponsToCart
- mutation
confirmEmail
- mutation
createGuestCart
- mutation
estimateShippingMethods
- mutation
estimateTotals
- mutation
removeCouponsFromCart
Requêtes et mutations obsolètes
clearCustomerCart
mutationcreateEmptyCart
mutation- requête
attributesMetadata
- requête
customAttributeMetadata
Inventory management
Inventory management (v1.2.7) fournit des outils de gestion de l’inventaire des produits. Cette fonctionnalité développée par la communauté est fournie avec le code principal Adobe Commerce et Magento Open Source.
Métapaquet d’extension Magento Open Source
Cette version comprend le métapaquet Extension de Magento Open Source v1.0.0, qui regroupe automatiquement certaines extensions de Magento Open Source avec cette version principale. La version de cette extension incluse dans ce métapaquet est installée lorsque composer update
est exécuté, ce qui simplifie le processus de mise à niveau de l’extension lors de la mise à niveau vers la dernière version de base. Cette extension conserve un planning de publication indépendant.
Le métapaquet Extension de Magento Open Source pour Magento Open Source 2.4.7 comprend les extensions suivantes :
Les futures versions de ce métapaquet d’extension contiendront des extensions supplémentaires.
PWA Studio
PWA Studio v14.0 est compatible avec Magento Open Source 2.4.7-beta1. 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 de Magento Open Source compatibles.
Framework d’API web
Cette version introduit deux nouveaux points d’entrée REST qui offrent une solution pour une limitation de l’GET
de l’API REST et des points d’entrée POST V1/products/attributes
. Ces points d’entrée 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 n’autorise pas la définition de cette propriété sur Filterable(no results)
.)
Deux nouveaux points d’entrée REST ont été implémentés comme solution :
PUT /V1/products/attributes/{attributeCode}/is-filterable/{isFilterable}
. Paramètres de chemin :attributeCode
(String
) etisFilterable
(int
les valeurs sont : 0 est No ; 1 estFilterable (with results)
; 2 estFilterable (no results)
).GET /V1/products/attributes/{attributeCode}/is-filterable
. Paramètres de chemin :attributeCode
(String
).
Problèmes résolus
Nous avons corrigé des centaines de problèmes dans le code de base Magento Open Source 2.4.7. Un sous-ensemble des problèmes résolus inclus dans cette version est décrit ci-dessous.
Installation, mise à niveau, déploiement
- Les manipulations inutiles du cache ont été supprimées du processus de configuration. Auparavant, Magento Open Source écrivait inutilement sa configuration sur le disque lorsqu’elle
bin/magento setup:db-data:upgrade
était exécutée, cebin/magento setup:upgrade
qui causait des problèmes avec les modules som lors de l’installation. GitHub-38124
- Les problèmes de déploiement dus à une mémoire insuffisante et à des tables volumineuses ont été résolus. La
bin/magento setup:upgrade
commande n’échoue plus en raison d’erreurs de dépassement de mémoire liées aux tables MySQL volumineuses.
bin/magento setup:install
se termine maintenant correctement aprèsapp/etc/config.php
a été supprimé. Auparavant, le fichier manquant n’était pas régénéré pendant l’installation et Magento Open Source générait une erreur. GitHub-37805
bin/magento setup:upgrade
a été restructuré pour s'exécuter correctement lors de l'installation d'un nouveau module qui installe les tables et les indexeurs demview
associés. GitHub-37304
- La restauration de la base de données n’échoue plus en raison d’une erreur de délimiteur. Auparavant, Magento Open Source générait cette erreur lors de l’exécution de
bin/magento setup:rollback --db
: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 lasetup:upgrade
.
- La génération d’une sauvegarde de base de données fonctionne désormais comme prévu à partir d’Admin et de la ligne de commande. Auparavant, Magento Open Source 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 fichierenv.php
.
- La configuration du vernis a été mise à jour afin d’empêcher les utilisateurs invités d’accéder au contenu mis en cache associé à d’autres groupes de clients.
bin/magento setup:upgrade
s’exécute maintenant correctement lors de l’installation d’un nouveau module qui installe les tables et les indexeurs demview
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 graphiques sont désormais désactivés par défaut sur le tableau de bord. GitHub-38430
- Le menu Admin Sales affiche maintenant correctement les sous-menus. Auparavant, le saut de colonne ne fonctionnait pas correctement et certains sous-menus n’étaient pas affichés. GitHub-37812
- Select Les options du menu déroulant sont désormais visibles sur les > Pages d’administration Content lorsque plusieurs pages sont sélectionnées dans la grille. GitHub-35386
- Correction du chemin d’accès à la valeur par défaut dans les paramètres de
system/dashboard/enable_charts
configuration. Les graphiques sont maintenant affichés dans l’interface administrateur comme prévu. GitHub-37668
- Correction d’un problème d’affichage avec les grilles du client d’administration. Auparavant, les colonnes de la grille n’étaient pas entièrement contenues dans la page affichée.
- Les couleurs de pointage sont maintenant appliquées, comme prévu, aux lignes des grilles statiques Admin. 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 suffixes de titre de page sont désormais inclus dans la
title
balise et dans la balise pour les pages demeta title
produits. GitHub-37680
- La condition d’état des stocks de produits est désormais correctement appliquée aux règles de produits associés.
- Le Login as Customer bouton 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 étendue différente. Auparavant, Commerce invalidait le cache d’un produit parent qui n’était pas affecté à l’étendue dans laquelle le produit enfant avait été modifié.
- Les utilisateurs administrateurs peuvent désormais basculer entre les vues de filtre d’administration sans que les données de vue ne soient corrompues ou perdues. GitHub-37529
Lots de produits
- La requête
customerCart
renvoie désormais toutes les remises appliquées sur les produits groupés comme prévu. Auparavant, le total des remises appliquées à un produit groupé était renvoyé en tant que zéro.
- Les pages Détails du produit affichent désormais le prix correct pour les produits groupés pour lesquels une remise de 100 % a été appliquée. Auparavant, Magento Open Source n’appliquait pas de remise de 100 % aux prix des lots de produits.
- Les règles de prix de panier sont désormais appliquées aux offres groupées de produits au lieu de chaque produit enfant pour les produits groupés à prix dynamiques.
- Correction d’une erreur qui se produisait lorsque vous utilisiez le point d’entrée
POST V1/shipment
pour créer une expédition contenant un produit groupé. Le point d’entrée ajoute maintenant les éléments comme prévu et ne renvoie plus cette erreur :The shipment couldn't be saved
.
- Vous pouvez désormais utiliser l’itinéraire
GET V1/shipment/
API pour créer un envoi avec un produit groupé lorsque le type d’envoi du produit est 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 groupé dans leur panier de storefront. Auparavant, Adobe Commerce ne gérait pas les valeurs nulles pour les
ItemId
lorsque les produits étaient modifiés dans le panier du storefront et affichaient une erreur. GitHub-37696
- Vous pouvez désormais ajouter des produits groupés à une commande d’administration à l’aide de SKU qui contiennent une barre oblique (
/
). Auparavant, les utilisateurs administrateurs ne pouvaient pas utiliser cette méthode pour ajouter des produits à une commande administrateur et Magento Open Source a généré une erreur JavaScript.
- Les utilisateurs administrateurs peuvent désormais définir des valeurs décimales par défaut pour les options de lot nouvellement ajoutées lorsque Qty Uses Decimal est activé pour le produit simple correspondant. Auparavant, les valeurs décimales ne pouvaient être définies que pour les sélections enregistrées.
- Performances optimisées pour l’enregistrement des produits groupés avec un grand nombre d’options
- Les produits groupés sont désormais importés sans duplication des références SKU dans les options de produit. Auparavant, Magento Open Source créé plusieurs SKU en double dans les options de produit lorsque vous importiez des produits groupés avec des entrées en double.
- Le prix du bundle du produit 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 groupés s’affichent désormais comme étant en rupture de stock lorsque le dernier de leurs produits enfants requis est acheté. Auparavant, les produits groupés étaient affichés comme étant en stock sur le storefront lorsque leurs produits simples étaient en rupture de stock.
- Les problèmes de performances liés à l’ajout au panier de produits groupés avec des options non requises à 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 à la requête.
- Les produits groupés créés avec
POST V1/products
réussissent désormais lorsque l’étendue de prix catalogue est définie surwebsite
. Auparavant, une violation de contrainte d’intégrité se produisait. GitHub-35595
Cache
- Les catégories sont désormais visibles pour les acheteurs dans les magasins où le cache est défini sur Fast CDN (Caching Application=Fastly CDN). Cela affectait à la fois les clients invités et les clients enregistrés.
- Les cookies de mise en cache après connexion sont désormais les mêmes après la navigation sur le site web. Auparavant, le contrôleur de connexion envoyait un cookie de mise en cache incorrect et les pages pouvaient avoir été mises en cache plusieurs fois.
- Les réponses de GraphQL GET opérations sur les pages CMS qui contiennent des blocs CMS sont maintenant effacées comme prévu dans le cache Fastly. Les mises à jour planifiées suivantes affichent désormais un contenu de mise à jour précis pour ces pages.
- Le cache de page est maintenant effacé comme prévu pour un produit parent lorsque l’un de ses produits enfants a été enregistré de l’administrateur. Une vérification du plug-in a été introduite pour atteindre l’invalidation du cache pour les variantes configurables, similaires à d’autres types de produits, quel que soit l’état de l’indexeur (planifié ou en temps réel). Auparavant, les prix n’étaient pas correctement mis à jour sur le storefront après la mise à jour d’une variation configurable à partir de l’administrateur.
- Ajout d’un mécanisme de mise en cache pour les informations d’identification AWS. Un fournisseur d’informations d’identification utilise désormais le cache de Commerce pour mettre en cache les informations d’identification récupérées d’AWS pour la configuration EC2.
- Le plug-in dont l’objectif est d’ajouter la balise de cache configurable lorsqu’un produit simple associé à un produit configurable est enregistré fonctionne désormais comme prévu. Toutes les balises de cache configurables pertinentes sont supprimées comme prévu lorsqu’un produit simple est mis à jour par
POST V1/products
. Auparavant, tous les prix n’étaient pas mis à jour sur le storefront et les caches devaient être effacés manuellement. GitHub-36726
Panier et passer en caisse
- Magento Open Source optimise désormais les performances en ne chargeant pas les données de devis spécifiques à l’utilisateur lors de la génération de pages pouvant être mises en cache en page entière, telles que les pages de détails du produit (PDP) et les pages CMS lorsque le panier persistant est activé. Auparavant, le système chargeait inutilement les données de session et de devis spécifiques à l’utilisateur ou à l’utilisatrice lors de la génération de ces pages, ce qui affectait les performances.
- Les attributs personnalisés des adresses sont désormais enregistrés comme prévu dans la base de données. Auparavant, les valeurs d’attribut enregistrées dans la base de données étaient précédées du code d’attribut.
- La génération du texte de filtre des règles de panier pour les attributs de produit a été améliorée. Les produits individuels ne sont plus chargés plusieurs fois.
- Magento Open Source affiche désormais un message d’erreur informatif lorsqu’une erreur se produit lors du passage en caisse et ne ramène plus l’acheteur à une étape de paiement antérieure. Auparavant, l’acheteur était renvoyé à la page d’expédition.
- La
cart
requête ne renvoie plus le mode d’expédition et l’adresse pour les paniers virtuels. Auparavant, lorsqu’un panier contenait à la fois des produits physiques et virtuels et que tous les produits physiques étaient supprimés, la réponse à la requête de panier continuait d’inclure des informations d’expédition.
- Magento Open Source affiche désormais des messages informatifs lorsqu’une action d’ajout au panier est déclenchée. Auparavant, le
The requested qty is not available
n’était pas toujours affiché comme nécessaire sur le storefront.
- Les temps de chargement des pages de passage en caisse ont été améliorés pour les clients avec des carnets d’adresses volumineux. Magento Open Source traite désormais uniquement le nombre d’adresses client spécifié dans le paramètre Customer Addresses Limit. Auparavant, Magento Open Source chargeait le carnet d’adresses entier.
- La quantité de produit peut maintenant être modifiée dans le panier comme prévu pour les articles en stock lorsqu’un article est en rupture de stock. Auparavant, les acheteurs ne pouvaient pas modifier la quantité de produits de n’importe quel article lorsqu’un article était en rupture de stock.
- Le filtre d’attribut de produit
AdvancedSalesRule
fonctionne désormais correctement avec le type principal d’attribut décimal. Par conséquent, les règles du panier avecCoupon Type
défini sur No Coupon fonctionnent désormais comme prévu.
- Le montant total d’une remise panier entier est désormais appliqué comme prévu aux paniers qui contiennent à la fois des produits groupés et configurables.
- Les cookies de la section client respectent désormais le paramètre de domaine du cookie. Auparavant, le mini-panier n’était pas mis à jour comme prévu dans les magasins contenant des sous-domaines, même si la session était partagée.
- L’expédition d’une commande à plusieurs adresses ne déclenche plus d’erreur pendant le traitement de l’identifiant de région.
- Les montants de remise fixes appliqués au niveau du panier sont maintenant corrects.GitHub-37496
- Les coupons sont maintenant appliqués avec succès à une commande lorsqu’un acheteur applique le coupon après avoir sélectionné la méthode d’expédition forfaitaire où une règle de prix de panier avec la méthode d’expédition définie comme condition s’applique. Auparavant, la page du panier affichait l’erreur Coupon n’est pas valide et le coupon n’était pas appliqué. GitHub-34866
- Les coupons sont désormais appliqués avec succès à une commande lorsqu’un acheteur applique le coupon après avoir sélectionné la méthode d’expédition à taux forfaitaire dans laquelle une règle de prix de panier avec la méthode d’expédition définie comme condition s’applique. Auparavant, sur la page du panier affichée l’erreur Coupon non valide s’affichait et le coupon n’était pas appliqué. GitHub-34866
- La My billing and shipping address are the same case à cocher reste désormais cochée par défaut lorsqu’un acheteur utilise la saisie semi-automatique Chrome pour remplir son adresse de livraison, puis clique sur Suivant avant que le bloc des modes d’expédition ne soit rechargé. GitHub-33725
- La
applied_rule_ids
valeur duquote_item
tableau comprend désormais une liste correcte des ID de règle appliqués. Auparavant, cette valeur ne contenait que le dernier identifiant de règle appliquée.
- Les données de mini-panier et de client dans le stockage local se réinitialisent désormais lorsqu’une session est supprimée du serveur. Auparavant, ces données s’affichaient toujours lorsque le fichier de session était supprimé.
- Les paniers distincts ne sont plus fusionnés par erreur à partir de l’administration lorsque le panier persistant est activé.
- L’estimateur de taxe et d’expédition du panier reflète désormais avec précision la configuration de destination par défaut. Auparavant, lorsque vous configuriez les paramètres de calcul de destination de taxe par défaut et que vous spécifiiez l’état/la région et le code postal, seule la valeur ZIP s’affichait dans le panier sous Estimate Tax and Shipping. Cela résultait de Magento Open Source définissant l’ID de région sur undefined avant d’appeler l’instruction conditionnelle qui définissait l’ID de région par défaut de l’administrateur.
- Magento Open Source ne renvoie plus cette erreur lors du passage en caisse lorsque le panier persistant est activé :
Invalid state change requested
. Auparavant, lorsque cette erreur était générée, plusieurs commandes avec le mêmequote_id
étaient parfois créées.
- Le mini-panier affiche désormais les prix des produits groupés qui reflètent les paramètres de configuration de la taxe du panier. Auparavant, le mini-panier incluait toujours les taxes dans les prix des produits groupés.
- L’estimation des frais d’expédition fournie à partir de la page du panier est maintenant exacte.
collectShippingRates
est maintenant défini une seule fois. Auparavant, l’estimation d’expédition était dupliquée. GitHub-36648
- La requête
cart
ne renvoie plus d’erreur lorsqu’un produit du panier spécifié est en rupture de stock. Auparavant, les acheteurs qui utilisaient cette requête pour effectuer un achat ne pouvaient pas terminer leur achat lorsqu’un article était en rupture de stock et leur page de passage en caisse était vierge.
- Les requêtes d’API invitées à
POST V1/guest-carts/<cartId>/shipping-information
ne renvoient plus de statutcancel
si la page se recharge lors de la connexion dans un environnement mobile. Auparavant, Magento Open Source générait une erreur 500 et consignait cette exception :TypeError: Argument 2 passed to Magento\CustomerCustomAttributes\Model\Plugin\ProcessCustomerShippingAddressCustomAttributes::beforeSaveAddressInformation() must be of the type string, null given
.
- L’éligibilité d’expédition gratuite est désormais calculée comme prévu lorsque la condition de Subtotal (Excl. Tax) des règles de panier est appliquée. GitHub-36760
- La requête
cart
renvoie désormais la tarification de niveau correcte pour un produit. GitHub-29655
- Des messages d’erreur informatifs ont été ajoutés à la page de passage en caisse pour guider les acheteurs lorsque l’application d’un bon sur la page d’expédition entre en conflit avec la méthode d’expédition sélectionnée. Auparavant, un message demandait aux acheteurs de revenir à la page précédente.
- La fenêtre contextuelle d’authentification est désormais initialisée uniquement lorsqu’elle est nécessaire plutôt que chaque fois que l’extraction d’invité est activée. Il est maintenant initialisé lorsque l’acheteur invité tente de passer à la caisse et que le paiement invité est désactivé. GitHub-30672
Règle de prix du panier
- La condition de sous-sélection de produit de la règle de prix du panier inclut désormais l’option
total (incl.tax)
comme prévu. GitHub-34871
- La condition de règle de prix de catalogue
If an item is FOUND/NOT FOUND in the cart with ALL/ANY of these conditions true
fonctionne désormais correctement avec les attributs de catégorie et de SKU. Auparavant, cette condition n’était pas correctement appliquée dans la logique de coupon de prix de panier et des coupons non valides étaient appliqués aux commandes. GitHub-37660
- Vous pouvez maintenant enregistrer une nouvelle règle de prix de panier avec l’extension
Magento_OfflineShipping
désactivée. Auparavant, Magento Open Source générait cette erreur :report.ERROR: Warning: Undefined array key "simple_free_shipping"
. GitHub-37580
- Les règles de prix de panier sont désormais appliquées comme prévu lorsqu’une règle de prix de panier liée à une méthode d’expédition est configurée pour le magasin et que cette méthode d’expédition est remplacée par une autre lors du passage en caisse. Auparavant, la valeur
applied_rule_ids
n’était jamais modifiée dans le tableausales_order_item
et la règle de prix du panier n’était pas appliquée à la commande.
- Les coupons sont désormais appliqués avec succès à une commande lorsqu’un acheteur applique le coupon après avoir sélectionné la méthode d’expédition à taux forfaitaire dans laquelle une règle de prix de panier avec la méthode d’expédition définie comme condition s’applique. Auparavant, la page du panier affichait l’erreur
Coupon is Not valid
et le coupon n’était pas appliqué. GitHub-34866