Autres informations de mise à jour
Bien que le code de ces fonctionnalités soit fourni avec des versions trimestrielles , plusieurs de ces projets (par exemple, Progressive Web Application (PWA) Studio) sont également publiés indépendamment. Les correctifs de bogues pour ces projets sont documentés dans les informations de mise à jour distinctes et spécifiques au projet disponibles dans la documentation de chaque projet.
Appliquez AC-3022.patch
pour continuer à proposer DHL comme opérateur de transport
DHL a introduit la version 6.2 du schéma et va abandonner la version 6.0 dans un avenir proche. Adobe Commerce 2.4.4 et les versions antérieures qui prennent en charge l’intégration DHL ne prennent en charge que la version 6.0. Les commerçants qui déploient ces versions doivent appliquer AC-3022.patch
dès que possible pour continuer à proposer DHL en tant qu'opérateur de transport. Pour plus d’informations sur le téléchargement et l’installation du correctif, reportez-vous à l’article Appliquer un correctif pour continuer à proposer DHL comme opérateur de transport de la base de connaissances.
Appliquez MC-43048__set_rate_limits__2.4.3.patch pour résoudre le problème de limitation du débit de l’API.
Ce correctif fournit une solution au problème où les API Web ne peuvent pas traiter les demandes qui contiennent plus de 20 éléments dans un tableau. Ce problème affecte les déploiements exécutant Magento Open Source 2.4.3, Adobe Commerce 2.4.3 ou 2.3.7-p1. La limitation de débit intégrée a été ajoutée à ces versions pour empêcher les attaques par déni de service (DoS), et le maximum par défaut a été défini sur 20. Ce correctif rétablit la limite par défaut sur une valeur supérieure. Si vous pensez que votre boutique est victime d’une attaque par déni de service, Adobe recommande de réduire les limites d’entrée par défaut à une valeur inférieure afin de limiter le nombre de ressources pouvant être demandées. Consultez l’article API Web ne pouvant pas traiter les demandes avec plus de 20 éléments dans le tableau de la base de connaissances.
Appliquez AC-384__Fix_Incompatible_PHP_Method__2.4.3_ce.patch pour résoudre l’erreur fatale PHP lors de la mise à niveau.
L’erreur fatale suivante peut se produire lors de la mise à niveau vers Magento Open Source 2.4.3 :
PHP Fatal error: Uncaught Error: Call to undefined function Magento\Framework\Filesystem\Directory\str_contains() in [...]/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74
Cette erreur résulte de l'utilisation de la fonction str_contains
, qui est une fonction PHP 8.x. L’application Open Source 2.4.3 ne prend pas en charge PHP 8.x. Ce correctif remplace cette fonction par une fonction PHP 7.x prise en charge. Voir l’article Correctif d’erreur fatale PHP de la mise à niveau Adobe Commerce 2.4.3, 2.3.7-p1 de la base de connaissances.
Tons clairs
Recherchez les points forts suivants dans cette version.
Améliorations substantielles de la sécurité
Cette version comprend 33 correctifs de sécurité et améliorations de la sécurité de la plateforme. La plupart de ces correctifs de sécurité ont été rétroportés à 2.4.2-p2 et 2.3.7-p1.
Trente-trois améliorations de sécurité permettant de fermer les vulnérabilités d’exécution de code distant (RCE) et de script de site à site (XSS).
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 efforts suivants : placé sur la liste autorisée IP, authentification à deux facteurs, utilisation d’un VPN, utilisation d’un emplacement unique plutôt que /admin
, et bonne hygiène du mot de passe. Consultez le Bulletin de sécurité des Adobes pour une discussion sur ces problèmes résolus.
Améliorations supplémentaires de la sécurité
Les améliorations de la sécurité de cette version améliorent la conformité aux dernières bonnes pratiques en matière de sécurité, notamment :
-
Un nouveau module externe Composer permet d’éviter toute confusion de dépendance et d’identifier les modules malveillants portant le même nom que les modules internes dans le référentiel de modules public. Voir l’article de blog Adobe Versions du nouveau module complémentaire du compositeur avec la version 2.4.3.
-
La limitation de débit est désormais intégrée aux API pour empêcher les attaques par déni de service (DoS). Les API Web imposent désormais des restrictions sur la taille ou le nombre de ressources (le maximum par défaut est défini sur 20 et peut être configuré sur une valeur différente en fonction des besoins de l’entreprise) qui peuvent être demandées par un client. Voir Limitation du taux pour plus d’informations sur la configuration de ces restrictions.
-
La couverture ReCAPTCHA a été étendue pour inclure :
-
Les API Web qui possèdent des pages d’HTML correspondantes sont traitées par ReCAPTCHA. (Cela exclut les API web accessibles par les intégrations.) La couverture ReCAPTCHA protège les points de terminaison des attaques de spam. Lorsque les API web sont accessibles par un service d'intégration tiers qui utilise OAuth, ReCAPTCHA est désactivé.
-
La page de stockage Passer une commande et les API web liées aux paiements. La protection ReCAPTCHA de ces pages est désactivée par défaut et peut être activée à partir de l’administrateur. Cette couverture ajoute un mécanisme anti-force brute pour protéger les magasins contre les attaques de carding.
-
Améliorations des infrastructures
Cette version contient des améliorations qui améliorent la qualité de la structure et les domaines fonctionnels suivants :
-
Compte client
-
Catalogue
-
CMS
-
OMS
-
Import/Export
-
Promotions et ciblage
-
Panier et passage en caisse
-
B2B
-
Évaluation et aperçu
PayPal plus tard est désormais pris en charge dans les déploiements qui incluent PayPal. Cette fonctionnalité permet aux acheteurs de payer une commande par versements bimensuels au lieu de payer le montant complet au moment de l’achat.
Nouveau use_application_lock
mode d'indexation. Le mode use_application_lock
vous permet d’activer la réindexation à l’aide de variables d’environnement ou en configurant le fichier app/etc/env.php
. Vous n’avez plus besoin de réinitialiser manuellement l’indexeur après un échec lorsque ce mode est activé. Voir Utilisation du mode de verrouillage de l’application pour les processus de réindexation.
Améliorations de la plateforme
La version 2.4.3 n'est pas encore compatible avec PHP 8.x, mais les mises à niveau suivantes de la plate-forme nous rapprochent d'une compatibilité future avec PHP 8.x.
-
Les dépendances du compositeur principal et les bibliothèques tierces ont été mises à niveau vers les dernières versions compatibles avec PHP 8.x.
-
La bibliothèque KnockoutJS a été mise à niveau vers la version 3.5.1 (la dernière version).
-
La bibliothèque TinyMCE v3 obsolète a été supprimée. Le module
Magento_Tinymce3Banner
et les tests MFTF liés à TinyMCE v3.x ont été supprimés d’Adobe Commerce. -
Magento Open Source 2.4.3 a été testé et sa compatibilité avec Redis 6.0.12 a été confirmée. (La version 2.4.x reste compatible avec Redis 5.x.)
-
Les dépendances des bibliothèques Laminas ont été mises à niveau vers les versions compatibles avec PHP 8.x. Certaines dépendances redondantes ont été supprimées du fichier
composer.json
. Magento Open Source 2.4.3 utilise Laminas 3.4.0.
Améliorations des performances
Cette version comprend des améliorations qui réduisent le temps d’indexation pour les indexeurs de prix de produit et de règles de catalogue. Les vendeurs peuvent désormais exclure un site web d’un groupe de clients ou d’un catalogue partagé, ce qui réduit le nombre d’enregistrements à indexer et améliore les temps d’indexation.
Intégration Adobe Stock
Cette version inclut l’intégration Adobe Stock v2.1.1.
GraphQL
Cette version ajoute la couverture GraphQL pour les itinéraires partagés. La requête d’itinéraireet l’ interface livrableprennent en charge les demandes de routage sur les pages de produit, de catégorie et de CMS. La requête urlResolver
est obsolète et sa fonctionnalité a été remplacée par la requête route
.
Pour plus d’informations sur ces améliorations, consultez le Guide du développeur de GraphQL .
Page Builder
Le créateur de pages est désormais disponible en tant qu’extension regroupée dans Magento Open Source. Il s’agit désormais de l’outil d’édition de contenu par défaut pour Adobe Commerce 2.4.3 et Magento Open Source 2.4.3. Il peut remplacer l’éditeur WYSIWG par n’importe quel module tiers.
Page Builder remplace l’éditeur TinyMCE dans les zones d’administration suivantes :
- Page CMS
- Bloc CMS
- Description de la catégorie
- Description du produit
Tout le contenu créé dans TinyMCE a été migré en tant qu’HTML vers le Créateur de pages.
PWA Studio
Pour plus d’informations sur les améliorations et les correctifs, voir Versions de PWA Studio. Voir compatibilité pour obtenir la liste des versions de PWA Studio et de leurs versions compatibles.
Outil de compatibilité de mise à niveau
La portée de l’outil de compatibilité de mise à niveau a été étendue en fonction des commentaires de la communauté. Rejoignez notre canal de Slack #upgrade-compatibility-tool pour obtenir l’assistance de l’équipe produit de l’Adobe et de la communauté, ainsi que pour orienter l’orientation future de l’outil.
Extensions développées par le fournisseur
Consultez les articles suivants pour connaître les mises à jour des fonctionnalités et des modifications de cette version :
Problèmes résolus
Nous avons corrigé des centaines de problèmes dans le code de base 2.4.3.
Installation, mise à niveau, déploiement
- La commande
bin/magento setup:db:status
renvoie désormais un message indiquant que tout est à jour après une mise à niveau réussie. Auparavant, l’application affichait cette erreur :Declarative Schema is not up to date
.
- Les valeurs de configuration sont désormais conservées au rechargement du formulaire lorsque la création d’un nouveau produit configurable échoue. Auparavant, les valeurs étaient perdues lors du rechargement du formulaire et l’application affichait cette erreur :
The value specified in the URL Key field would generate a URL that already exists
. GitHub-32102
- L’application ne renvoie plus d’exception lorsque vous exécutez
bin/magento setup:upgrade
pour effectuer une mise à niveau à partir d’un déploiement de Magento Open Source avec Redis vers Adobe Commerce.
- Les déploiements exécutés sur la grappe Galera prennent désormais en charge plus de clients. GitHub-31038
- Les administrateurs peuvent désormais se connecter avec succès à un déploiement lorsque l’application a été installée avec l’option
—use-rewrites=0
ouweb/seo/use_rewrites
définie sur 0 danscore_config_data_table
. GitHub-32100
- Mise à jour de la charge
sortOrder
pourAsyncCssPlugin
. L’application charge désormaisAsyncCssPlugin
avantJsFooterPlugin
. GitHub-30882
Magento\Config\Model\Config\PathValidator
vérifie désormais le chemin d’affichage pour déterminer si un élément existe et, s’il possède un chemin de configuration, utilise le chemin d’accèsconfig.xml
à la place pour la validation. GitHub-27678
- La compilation de fichiers less avec Grunt ou par compilation côté serveur produit désormais les mêmes résultats. Précédemment.
.abs- styles
, qui étend d’autres.abs- styles
dans_extends.less
, n’étaient pas correctement générés lors de la compilation avec Grunt. Cela entraînait des différences entre les déploiements de production et de développement. GitHub-7231
Intégration Adobe Stock
- L’application affiche désormais un message informatif et un lien vers la page Admin Magasins > Configuration > Avancé > Système sur la page Rechercher des Adobe Stock lorsque Clé API (ID client) et Secret client ne sont pas définis. Auparavant, l’application affichait cette erreur :
We couldn't find any records
et aucun lien.
Serveur principal
- Les administrateurs disposant d’un accès limité (par exemple, qui se voient attribuer l’accès à un site web uniquement) ne peuvent plus modifier les catégories définies sur la portée globale.
- Le rapport système généré (Système > Assistance > Rapport système) s’affiche désormais correctement. Auparavant, le contenu du rapport n’était pas aligné.
- L’application désactive désormais la validation sur le champ Price comme prévu lorsque le paramètre Prix dynamique est activé lors de la création du lot. Auparavant, l’application entraînait une erreur de validation lorsque vous supprimiez une valeur du champ Price lorsque le paramètre Dynamic price était activé. GitHub-26214
- Les redirections infinies ne se produisent plus lorsque l’URL d’administration diffère de l’URL du site web par défaut dans les déploiements où l’application est configurée pour être accessible à partir de deux URL.
Lot de produits
- Vous pouvez désormais utiliser la mutation
addProductsToCart
pour ajouter un produit en regroupement avec plusieurs cases à cocher à un panier.
- L'indexation des prix des produits groupés est désormais exécutée à l'aide de tables temporaires, ce qui évite de verrouiller les tables de base de données. Auparavant, l’application utilisait des tables physiques, ce qui entraînait des tables verrouillées.
- Le prix d’un article de lot peut désormais être défini sur 0,00. Auparavant, lorsque vous reveniez à la page de modification après avoir défini le prix sur 0,00, le prix renvoyait à sa valeur par défaut. GitHub-32383
- Les détails de la commande pour les commandes qui contiennent des produits en bundle affichent désormais le prix correct pour les produits en bundle si le prix a été modifié avant que la commande ne soit passée.
- L’état du stock de produits en bundle est maintenant mis à jour en fonction de l’état du stock de ses produits enfants. Auparavant, les produits en bundle étaient affichés comme étant en rupture de stock lorsqu’une option était supprimée du produit, et le produit en bundle avait deux options avec le même SKU.
- Un administrateur peut désormais modifier la valeur de l’attribut
Shipment Type
d’un produit en bundle après son déplacement vers un autre groupe d’attributs. Auparavant, cet attribut était toujours enregistré avec une valeurTogether
s’il était déplacé vers un groupe d’attributs autre que le groupe par défaut dans le jeu d’attributs.
- La mutation GraphQL
setGuestEmailOnCart
met désormais correctement à jour le courrier électronique des invités. Auparavant, les tableaux d’adresse de devis et de guillemets n’étaient pas mis à jour.
- L’ajout, la suppression ou la mise à jour d’un produit enfant vers un produit groupé via des appels API REST déclenche désormais la réindexation comme prévu. Auparavant, ces actions ne déclenchaient pas de réindexation. Par conséquent, le produit du lot ne modifiait pas son état de stock tant que la réindexation manuelle n’était pas effectuée.
- L’application affiche désormais la plage de prix correcte pour les produits groupés avec des prix de niveau. GitHub-30284
- L’application affiche désormais le même prix total que celui attendu sur la page Panier et dans l’étape d’expédition du workflow de passage en caisse une fois que le prix d’une option de lot a changé.
- Vous pouvez désormais configurer un produit en bundle en y accédant à partir d’un panier client. Auparavant, la page Configurer le produit n’était pas complètement chargée et vous ne pouviez pas enregistrer vos paramètres.
- Les vendeurs peuvent désormais attribuer un prix unique pour un produit en lot sur chaque vue de magasin d’un déploiement multi-magasin. Les prix spécifiques au site web sont enregistrés dans la table
catalog_product_bundle_selection_price
. Auparavant, l’application ne basait pas le prix d’un lot sur la portée du site web même lorsque Magasins > Configuration > Catalogue > Catalogue > Prix > Portée du prix du catalogue était définie surWebsite
. Aucun prix spécifique à un site web n’a été enregistré danscatalog_product_bundle_selection_price
. GitHub-12584
- Les factures des produits groupés affichent désormais la quantité correcte pour les produits simples associés lorsque l’option Tarification dynamique est désactivée. Auparavant, les produits simples associés au produit groupé étaient associés à la quantité du produit parent, et non au produit groupé. GitHub-30802
- La mutation
updateProductsInWishlist
met désormais à jour avec succès les éléments appartenant à un produit en regroupement dans une liste de souhaits. Auparavant, au lieu de mettre à jour l’élément de liste bloquée, cette mutation supprimait l’élément et en créait un nouveau, qui modifiait l’identifiant de l’élément.
Cache
- Le fichier
varnish6.vcl
a été mis à jour afin de contourner la mise en cache de la page du client.
CAPTCHA
- CAPTCHA valide désormais correctement les données fournies par un acheteur et les champs CAPTCHA s’affichent désormais comme prévu après les multiples tentatives infructueuses d’extraction d’un acheteur avec PayPal Payflow Pro.
- La validation CAPTCHA n’échoue plus de manière aléatoire sur la page de paiement du workflow de passage en caisse.
- L’application affiche désormais les champs CAPTCHA comme prévu une fois que vous avez dépassé le nombre de tentatives d’achèvement ayant échoué. Auparavant, même si l’application vous demandait de relancer le défi CAPTCHA, elle n’affichait pas les champs CAPTCHA.
- CAPTCHA fonctionne désormais comme prévu sur la page de passage en caisse. Auparavant, après qu’un acheteur avait correctement répondu à un défi CAPTCHA, le chargeur sur la page de passage en caisse n’était pas terminé et l’application affichait cette erreur :
captchaData[formId] is undefined
. (Cette erreur se produisait uniquement lorsque le nouvel acheteur utilisait le même navigateur à partir duquel il avait déjà accédé à un déploiement exécutant 2.3.5-p1.)
_.isEmpty()
l’archivage du fichierdefaultCaptcha.js
s’est maintenant terminé avec succès. Auparavant, ces vérifications n’étaient pas terminées et, par conséquent, le chargement de la page de passage en caisse échouait après la mise à niveau. GitHub-31641
Panier et passage en caisse
- L’application prend désormais en compte les localisateurs décimaux spécifiques aux paramètres régionaux lors de la conversion et de la mise à jour de la quantité de produits dans le panier.
- L’application affiche désormais le message de validation des conditions générales dans le bloc correspondant uniquement lorsqu’un acheteur clique sur le bouton Passer commande . Auparavant, l’application affichait ce message dans le bloc Appliquer le code de remise chaque fois qu’un acheteur changeait de mode de paiement dans le workflow de passage en caisse :
The order wasn't placed. First, agree to the terms and conditions, then try placing your order again
.
- L’application ignore désormais les modifications apportées au formulaire d’adresse de facturation à l’étape de paiement de passage en caisse si l’acheteur ne parvient pas à cliquer sur le bouton Mettre à jour et est retourné à l’étape de livraison.
- Les produits avec une option personnalisable
(File)
incluent désormais des liens actifs comme prévu tout au long du processus de passage en caisse multi-expédition. Auparavant, ce lien était absent. GitHub-31095
- Le panier d’administration affiche désormais les prix des produits dans les bonnes devises pour les magasins qui prennent en charge plusieurs devises. Auparavant, les prix étaient convertis plusieurs fois dans la devise spécifiée : d’abord, lorsque des produits étaient ajoutés au panier à partir de la vitrine, puis de nouveau, lorsque la commande était ensuite rendue sur l’administrateur.
- Les acheteurs peuvent désormais ajouter un produit à leur panier dont le prix minimum publicitaire (MAP) dépasse le prix normal.
- Les acheteurs peuvent désormais modifier leur adresse de facturation à partir du workflow de passage en caisse lors de leur passage en caisse avec plusieurs adresses.
- Toutes les transactions de paiement payantes créées par les invités sont désormais enregistrées dans la base de données et visibles dans l’Admin comme prévu. Auparavant, seul un petit sous-ensemble de commandes simultanées était enregistré dans la base de données et la plupart des commandes étaient perdues en raison des délais d’expiration dus aux verrous de base de données. GitHub-25862
- L’application affiche désormais correctement les messages de bienvenue en ligne contenant des caractères spéciaux lorsqu’un invité place un produit dans le mini panier. Auparavant, l’application n’ajoutait pas le produit dans le mini panier et n’affichait pas le message de bienvenue. GitHub-32250
- La page d’expédition du workflow de passage en caisse se charge désormais correctement lorsque la diffusion en magasin est activée. Auparavant, l’application renvoyait une erreur JavaScript et la page de paiement d’expédition n’était pas entièrement rendue.
- Ajout de l’argument
itemResolvers
au fichier de cataloguedi.xml
. Par conséquent, le passage en caisse n’est plus interrompu si les modules de produits configurables et regroupés sont désactivés. GitHub-30860
- L’application affiche désormais les boutons radio dans la section Informations de paiement et d’expédition comme prévu pendant le processus de réorganisation de l’administrateur. GitHub-30257
- L’application applique désormais correctement les règles de prix de panier avec une remise fixe de niveau panier lorsque le panier contient un produit groupé avec plusieurs options. Auparavant, la règle de prix du panier n’était pas entièrement appliquée à la commande. GitHub-30952
- Le bouton Ajouter au panier de la vue de liste de catégories fonctionne désormais comme prévu. GitHub-32232
- Vous pouvez désormais utiliser POST
/V1/carts/mine/items
pour ajouter une quantité personnalisée de produits groupés à un panier. GitHub-26909
- L’application ne remplit plus la zone Adresse de facturation du workflow de passage en caisse avec l’adresse de livraison. Auparavant, lorsque le champ Etat/Province de l’adresse de facturation était vide et que les adresses de livraison et de facturation différaient, l’application renseignait le champ de l’adresse de facturation Etat/Province avec des informations de l’adresse de livraison. GitHub-31608