Notes de mise à jour de Magento Open Source 2.4.3
Magento Open Source 2.4.3 comprend des améliorations des performances et de la sécurité ainsi que des améliorations importantes de la plateforme. Les améliorations de sécurité comprennent l’extension de la couverture reCAPTCHA et l’inclusion de la limitation de débit intégrée. Les dépendances des compositeurs principaux et les bibliothèques tierces ont été mises à niveau vers les dernières versions compatibles avec PHP 8.x. 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 et Magento Open Source.
Cette version comprend plus de 370 nouveaux correctifs pour le code principal et 33 améliorations de sécurité. Elle comprend la résolution de près de 290 problèmes GitHub par les membres de notre communauté. Ces contributions de la communauté vont du nettoyage mineur du code principal à des améliorations significatives dans GraphQL.
Cette version comprend plus de 370 nouveaux correctifs pour le code principal et 33 améliorations de sécurité. Tous les problèmes connus identifiés dans les notes de mise à jour de Magento Open Source 2.4.2 ont été corrigés dans cette version.
Voir Notes de mise à jour d’Adobe Commerce 2.4.2-p2 pour plus d’informations sur Adobe Commerce 2.4.2-p2.
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.
Appliquer AC-3022.patch
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 s’appliquer AC-3022.patch
dès leur première convenance de continuer à proposer DHL comme transporteur. Voir Appliquez un correctif pour continuer à proposer DHL comme opérateur de transport Article de la base de connaissances pour plus d’informations sur le téléchargement et l’installation du correctif.
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. Voir API Web ne pouvant pas traiter les demandes comportant plus de 20 éléments dans le tableau Article 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 variable 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 Correctif d’erreur fatale PHP de la mise à niveau Adobe Commerce 2.4.3, 2.3.7-p1 Article 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, l’utilisation d’un VPN, l’utilisation d’un emplacement unique plutôt que /admin
, et bonne hygiène des mots de passe. Voir Bulletin de sécurité Adobe 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 :
-
A nouveau module externe Composer aide à éviter la confusion des dépendances et identifie les modules malveillants portant le même nom que les modules internes sur le référentiel de modules public. Voir Adobe de versions Nouveau module externe de compositeur avec la version 2.4.3 billet de blog.
-
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 Limite de débit 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 de 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 Pay Later 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. La variable use_application_lock
Le mode permet d'activer la réindexation soit à l'aide de variables d'environnement, soit en configurant la variable app/etc/env.php
fichier . 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. La variable
Magento_Tinymce3Banner
module et 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 de la variable
composer.json
fichier . 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 variable requête itinéraire et RoutableInterface prennent en charge les demandes de routage sur les pages de produit, de catégorie et de CMS. La variable urlResolver
est obsolète et sa fonctionnalité a été remplacée par la fonction route
requête.
Voir Guide du développeur de GraphQL pour plus d’informations sur ces améliorations.
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 HTML vers le Créateur de pages.
PWA Studio
Pour plus d’informations sur les améliorations et les correctifs, voir Versions 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 la variable Outil de compatibilité de mise à niveau a été développé en fonction des commentaires de la communauté. Rejoignez notre #upgrade-compatibility-tool canal Slack pour obtenir l’assistance de l’équipe produit Adobe et de la communauté, ainsi que pour vous aider à 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 variable
bin/magento setup:db:status
renvoie maintenant 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 lors de l’exécution de
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 à un déploiement lorsque l’application a été installée avec l’une des méthodes suivantes :
—use-rewrites=0
ou avecweb/seo/use_rewrites
défini sur 0 danscore_config_data_table
. GitHub-32100
- Mis à jour
sortOrder
load pourAsyncCssPlugin
. L’application se charge désormais.AsyncCssPlugin
beforeJsFooterPlugin
. GitHub-30882
Magento\Config\Model\Config\PathValidator
vérifie maintenant le chemin d’affichage pour déterminer si un élément existe et, s’il possède un chemin de configuration, utilise la variableconfig.xml
chemin d’accès 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
in_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 l’administrateur. Magasins > Configuration > Avancé > Système sur la page Rechercher dans Adobe Stock lorsque Clé API (ID client) et Secret du client ne sont pas définies. Auparavant, l’application affichait cette erreur :
We couldn't find any records
et pas de 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) est désormais rendu correctement. Auparavant, le contenu du rapport n’était pas aligné.
- L’application désactive désormais la validation sur le Prix comme prévu lorsque la variable Prix dynamique est activé lors de la création d’un bundle de produits. Auparavant, l’application générait une erreur de validation lorsque vous supprimiez une valeur de la variable Prix lorsque la variable Prix dynamique a été 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 variable
addProductsToCart
mutation 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 d’un produit groupé.
Shipment Type
une fois qu’il a été déplacé vers un autre groupe d’attributs. Auparavant, cet attribut était toujours enregistré avec unTogether
s’il a été déplacé vers un groupe d’attributs autre que le groupe par défaut dans le jeu d’attributs.
- GraphQL
setGuestEmailOnCart
mutation met désormais correctement à jour les emails 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 économisés dans la variable
catalog_product_bundle_selection_price
table. Auparavant, l’application ne basait pas le prix d’un produit groupé sur la portée du site web même lorsque Magasins > Configuration > Catalogue > Catalogue > Prix > Portée du prix du catalogue a été défini surWebsite
. Aucun prix spécifique à un site web n’a été enregistré danscatalog_product_bundle_selection_price
. GitHub-12584
- Les factures pour les produits groupés affichent désormais la quantité correcte pour les produits simples associés lorsque Tarifs dynamiques 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 variable
updateProductsInWishlist
la mutation met désormais à jour avec succès les éléments qui appartiennent à un produit groupé 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
- La variable
varnish6.vcl
a été mis à jour afin de contourner la mise en cache de la page 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, lorsqu’un acheteur répondait correctement à 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()
archiver la variabledefaultCaptcha.js
est maintenant terminé. 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 bouton . 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 clique pas sur la variable Mettre à jour et revenir à l’étape d’expédition.
- Produits avec une option personnalisable
(File)
incluez maintenant 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 la
itemResolvers
argument vers le cataloguedi.xml
fichier . 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 fonction Informations de paiement et d’expédition comme prévu pendant le workflow 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
- La variable Ajouter au panier dans 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 la variable Etat/Province champ pour l’adresse de facturation était vide et les adresses de livraison et de facturation différaient, l’application renseignait l’adresse de facturation Etat/Province avec les informations de l’adresse de livraison. GitHub-31608
Catalogue
- Mise à jour en masse de Activer les incréments de qualité et Incréments de qualité fonctionne désormais comme prévu. GitHub-29544
- L’application ne renvoie plus d’erreur JavaScript après avoir activé la synchronisation récente des produits avec l’administrateur. Auparavant, l’application affichait cette erreur JavaScript :
Cannot read property 'status' of undefined
.
- Les mises à jour personnalisées de la mise en page des thèmes sont désormais appliquées comme prévu. Auparavant, les mises à jour de la mise en page de thème personnalisée étaient ignorées.
- Le cache de catégorie de produits est désormais effacé comme prévu par
cron
duringindexer_update_all_views
exécution. Auparavant, les décomptes de produits sur la page Catégorie après la réindexation étaient incorrects.
- Les valeurs d’attribut restent désormais inchangées lorsqu’un attribut n’est pas spécifié dans une requête d’API REST de mise à jour de produit pour une vue de magasin. Auparavant, si aucun attribut n’était spécifié, l’application réinitialisait la valeur de l’attribut à sa valeur de portée par défaut.
- Grille des produits d’administration (Admin Catalogue > Produits) affiche désormais le nombre de produits correct lorsque les produits sont filtrés par SKU.
- L’application affiche désormais un état de stock précis lorsqu’un produit est ajouté à une page CMS lorsque les autorisations de catégorie sont activées et empêche l’affichage du prix pour le groupe de clients spécifié. Auparavant, tous les produits étaient affichés comme étant en rupture de stock, quel que soit le statut réel du stock.
- Le champ de saisie des prix du bloc Groupe de clients de tarification avancée a désormais une largeur minimale de cinq chiffres. Auparavant, seuls deux symboles étaient visibles dans ce champ sur les affichages à basse résolution.
- L’application supprime désormais une image multimédia de produit après la suppression d’un produit. Auparavant, l’image du média de produit restait dans le dossier après suppression réussie du produit.
- La mise en page se met désormais à jour comme prévu lorsque vous créez ou modifiez un produit dans l’administrateur, puis créez une mise à jour de la conception de planification. GitHub-32007
- Un attribut de produit personnalisé avec une valeur nulle peut désormais être enregistré comme vide. Auparavant, l’application ne mettait pas cette valeur à jour en blanc.
- Les fichiers de mise à jour de mise en page de catégorie personnalisée s’appliquent désormais aux produits comme prévu. Auparavant, le gestionnaire de fichiers de mise à jour (
catalog_category_view_*
) ne correspondait pas à la poignée de produit. GitHub-27285
- Le tri a été désactivé pour la colonne Taxe fixe des produits (FPT) de la liste des produits d’administration. Auparavant, la page Produits ne pouvait pas être rechargée une fois la colonne FPT triée.
- L’aperçu du widget de produits Page Builder fonctionne désormais comme prévu dans un déploiement de plusieurs sites web lorsque les produits correspondants ont un prix différent sur chaque site web.
- Tri par position sur la recherche de produits à l’aide de GET
/rest/V1/products/?searchCriteria[filterGroups]
fonctionne désormais comme prévu. Auparavant, la collecte de produits n’avait pas de champ.position
pour le tri. GitHub-31591
- Les utilisateurs administrateurs peuvent désormais afficher deux espaces dans la variable Nom et SKU dans la grille de produit. Auparavant, l’application réduisait plusieurs espaces en un seul.
- Les produits sont désormais affichés en rupture de stock sur le storefront lorsque la quantité vendable sur l’administrateur est 0. Auparavant, ces produits étaient répertoriés comme en stock sur le storefront et l’application affichait un actif Ajouter au panier bouton . GitHub-31117
- Les administrateurs peuvent désormais ajouter des produits avec des options personnalisables.
(File)
à la grille Éléments commandés de la section Panier (colonne Activités du client) de la page Admin client . Auparavant, l’application n’ajoutait pas l’élément à la liste, car la valeur n’était pas correctement formatée avant d’être insérée dans\Magento\Catalog\Model\Product\Type\AbstractType::_prepareOptions
.
- L’application n’invite plus les acheteurs à sélectionner une option de produit pour un produit groupé ne comportant qu’une seule option.
- L’application affiche désormais toutes les sous-catégories dans les mises à jour de mise en page (catégories d’ancrage et non d’ancrage) lors de la création d’un nouveau widget.
- La variable
product
requête ne remplace plus les valeurs par défaut pour toutes les vues de magasin dans un déploiement multi-magasin lorsqu’un nom de produit est mis à jour pour une seule vue de magasin. GitHub-31083
- Magento Open Source met à jour le nombre total de pages comme prévu lorsque vous modifiez la valeur par page de la liste Produits associés à l’administration, Ventes montées et Ventes croisées . GitHub-31059
- Les administrateurs peuvent désormais ajouter des produits avec deux ou plusieurs options personnalisables.
(File)
à une commande par SKU.
- L’application ne renvoie plus d’erreur lorsqu’un administrateur disposant d’autorisations restreintes ajoute un widget Produit à une page CMS dans l’Admin. Auparavant, l’application générait cette erreur lorsque l’administrateur cliquait sur la variable Enregistrer button :
We are sorry, an error has occurred while generating the content
.
- Les pages Détails du produit s’ouvrent désormais avec l’option de date personnalisable renseignée avec la date de l’ordre précédent lorsque Utilisation du calendrier JavaScript est activée. Le résolveur de valeurs de l’option de date personnalisée revient désormais à un format alternatif si la valeur n’est pas formatée en fonction de la configuration actuelle. Auparavant, la valeur de l’option de date personnalisée était vide.
- L’application n’affiche désormais qu’une seule erreur dans le panier lorsque le produit est en rupture de stock. Auparavant, l’application affichait des messages redondants. GitHub-27469
- Vous pouvez désormais définir la variable
required_options
ethas_options
attributs de lot comme prévu lors de la création ou de la mise à jour d’un produit de lot à l’aide de la variablePOST /V1/product/:sku
point de terminaison . Auparavant, ces attributs personnalisés étaient définis sur 0 (zéro) malgré les efforts déployés pour les définir sur 1 (un).
- Les administrateurs peuvent désormais ajouter un produit avec une option personnalisable.
(File)
à une commande par SKU. GitHub-30285
- Vous pouvez désormais enregistrer un produit et un prix sans indiquer
type_id
. GitHub-13639
- Les produits de groupe sont désormais disponibles sur le storefront comme prévu lors d’un REST.
PUT /V1/products/:sku/links
est utilisée pour associer un nouveau produit enfant à un nouveau produit de groupe. Auparavant, les produits n’étaient pas correctement indexés après exécution debin/magento cron:run
.
- Vous ne pouvez plus créer de produit avec un
NULL
Valeur de SKU. Auparavant, vous pouviez créer un produit sans valeur de SKU par le biais d’un importateur personnalisé ou directement dans la base de données, mais lorsque vous tentiez de le modifier à partir de l’administrateur, l’application générait une erreur. GitHub-27411, GitHub-32525
- L’ajout d’options personnalisées requises à un produit simple ne le supprime plus des produits composites parents sans avertissement. L’application affiche désormais un avertissement informatif et n’enregistre pas le produit. Auparavant, l’application enregistrait les modifications de produit et n’affichait pas d’avertissement. GitHub-30492
Règle de catalogue
- La variable
products
la requête renvoie désormais les valeurs actuelles lorsqu’une règle de prix de catalogue s’applique à un article. GitHub-26738
- Tables temporaires qui commencent par
catalogrule_product__temp
sont désormais supprimées comme prévu lorsque la réindexation échoue après l’expiration d’une règle de panier ou de catalogue, est désactivée ou devient inactive. GitHub-22273
- Les fuseaux horaires sont désormais appliqués de la même manière que dans
\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexById
et\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexByIds
. GitHub-29549
Contenu CMS
- Les images volumineuses sont désormais redimensionnées comme prévu lors de la mise en ligne lorsque la fonction Activer le redimensionnement frontal configuration est activé.
- Correction de la gestion des erreurs pour le contrôleur d’enregistrement de page CMS. Auparavant, lorsqu’un événement
Error
a été lancé sur l’objetcms_page_prepare_save
, l’application a transmis cet objet à l’événementaddExceptionMessage
rompre son contrat, car cette fonction attend un événementException
. Ce problème a été résolu en ajoutant un message d’erreur à l’aide de la variableaddErrorMessage
de la fonction GitHub-30149
Produits configurables
- L’application ne duplique plus les miniatures de produit dans la galerie d’images d’un produit lorsque vous cliquez sur les options configurables d’un produit.
- La fenêtre contextuelle de configuration que l’application affiche lorsque vous modifiez un produit configurable à partir d’une liste de souhaits se ferme désormais comme prévu lorsque vous cliquez sur le bouton OK bouton .
- L’application génère désormais correctement des factures pour les commandes qui ne contiennent qu’un seul produit configurable. GitHub-31143
- Les acheteurs peuvent désormais ajouter des produits configurables à leur panier à partir d’une vue de magasin autre que celle par défaut. Auparavant, lorsque l’acheteur sur une vue de magasin autre que celle par défaut tentait d’ajouter un produit configurable, l’application affichait cette erreur :
Could not add item to cart. Please check required options and try again
. GitHub-31660
Stratégie de sécurité du contenu CSP)
- La stratégie de sécurité du contenu prend désormais en charge le chargement d’images et de polices codées en base64 par le biais de la
data: scheme
.
cron
- Les requêtes de nettoyage de Cron ont été restructurées afin de réduire ou d’éliminer les problèmes de performances suivants :
cron
tâches restées bloquées dans un état en attente, requêtes MySQL de plus en plus lentes et utilisation accrue du processeur. GitHub-26507
cronjobs
qui ont été dans un étatrunning
pendant plus de 24 heures sont désormais automatiquement changées en étaterror
. Par conséquent, une nouvelle instance de cette tâche peut s’exécuter à nouveau et vous n’avez pas besoin de modifier manuellement l’état de la tâche lorsqu’une tâche reste incorrectement définie sur l’état .running
. Auparavant, si unecronjob
étaient bloqués dans l’étatrunning
, l’application empêchait le démarrage de nouvelles instances d’une même tâche et vous deviez modifier manuellement l’état de la tâche. GitHub-8933
cron
les tâches se terminent désormais comme prévu et ne renvoient plus cette erreur de sérialisation :[Magento\Framework\DB\Adapter\DeadlockException]SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction, query was: DELETE FROM cron_schedule WHERE (status = 'missed') AND (job_code in ('indexer_reindex_all_invalid', 'indexer_update_all_views', 'indexer_clean_all_changelogs')) AND (created_at < '2018-09-28 18:32:28')
. GitHub-18409
indexer_update_all_views
les tâches cron s’exécutent désormais comme prévu après un échec précédent. L’exécution ayant échoué est marquée comme un échec dans la variablecron_schedule schedule
et l’exécution suivante n’échoue pas automatiquement. Auparavant, la variablecron_schedule
un tableau contenant les tâches en attente, etindexer_update_all_views
la tâche cron ne s’est pas exécutée. GitHub-23054
cron
les blocages ne se produisent plus à la suite decron
en essayant de définir un verrou dans les déploiements volumineux où des groupes se chevauchaient. GitHub-8933
cron
les blocages ne se produisent plus surcron_schedule
après seulement quelquescron
les tâches ont été exécutées. GitHub-22438
Attributs du client personnalisés
- La variable État sur le carnet d’adresses du compte client storefront est désormais chargé en tant qu’ et reste un élément de page de liste déroulante. La variable Envoyer est maintenant désactivé tant que tous les éléments de page n’ont pas été complètement chargés. Auparavant, l’application chargeait ce champ en tant que zone de texte avant de le rendre en tant qu’élément de liste déroulante et les acheteurs pouvaient saisir et enregistrer des valeurs dans le champ de texte, ce qui entraînait par la suite une erreur lors de l’extraction.
- L’application ne renvoie plus d’erreur lorsque vous enregistrez un attribut d’adresse du client avec une pièce jointe dans le champ Admin Customer address (Adresse client de l’administrateur) lors du téléchargement des fichiers. Ce problème se produisait en raison d’une instruction de retour manquante dans l’action du contrôleur. Auparavant, l’application générait cette erreur :
Something went wrong while saving the file
.
- Les appels de l’API de panier REST renvoient désormais des valeurs d’attribut personnalisées correctes pour les adresses de facturation et de livraison. Auparavant, les attributs d’adresse personnalisés s’affichaient incorrectement dans la page des détails de la commande de la page de storefront My account et dans l’Admin.
- L’application gère désormais correctement les fichiers contenant des attributs d’adresse du client avec un type d’entrée.
file (attachment)
. Auparavant, l’application renvoyait cette erreur lors du téléchargement du fichier joint :Something went wrong while saving the file
.
Client
- Le filtrage par date de création du compte produit désormais des résultats conformes aux paramètres de fuseau horaire configurés et qui capturent tous les comptes créés appropriés.
- Le filtre de grille client utilise désormais une option de site web correcte pour un utilisateur restreint si les données ont été précédemment mises en cache. Auparavant, le filtre de grille client récupérait les paramètres du site web du cache et incluait des données incorrectes pour les utilisateurs restreints.
- L’application ne renvoie plus d’exception sur la page Admin Customers lorsqu’un site web est supprimé dans un déploiement de plusieurs sites web. Auparavant, lorsqu’un administrateur tentait d’accéder à la liste complète des clients, l’application n’affichait pas tous les clients et affichait cette erreur :
The website with id 2 that was requested wasn't found. Verify the website and try again
.
- Les administrateurs autorisés peuvent désormais réaffecter des clients à différents sites web à partir de l’onglet Informations du compte du client.
- Vous pouvez désormais transférer un fichier avec succès lors de la création d’un attribut d’adresse du client avec un type d’entrée de
(File)
. Auparavant, lorsque vous tentiez de charger et d’enregistrer un fichier, l’application provoquait cette erreur :Something went wrong while saving the file
.
Répertoire
- L’application ne renvoie plus d’exception lorsqu’un acheteur entre dans un code postal non valide pendant la section d’expédition du workflow de passage en caisse. GitHub-23371
Téléchargeable
- L’application affiche désormais des liens vers les produits téléchargeables dans l’e-mail New Order (Nouvelle commande) lorsque la commande contient à la fois un produit téléchargeable et un produit configurable avec option de téléchargement. Auparavant, l’application affichait le lien vers le produit téléchargeable autonome, mais pas vers le produit configurable avec une option de téléchargement.
EAV
- Les valeurs de date d’attribut de l’adresse client sont désormais enregistrées au format quatre chiffres au lieu de deux.
- Le lien de réinitialisation du mot de passe sur la page Réinitialisation du mot de passe de l’administrateur fonctionne désormais comme prévu. Auparavant, lorsqu’un modèle personnalisé était utilisé pour la page de réinitialisation du mot de passe administrateur, l’application affichait ce message lorsqu’un administrateur cliquait sur le lien contenu dans le courrier électronique :
Your password reset link has expired
. Cela s’est produit car le modèle de courrier électronique personnalisé contenait une variable incorrecte pour l’ID utilisateur.
- L’envoi d’emails de clients depuis l’administrateur fonctionne désormais correctement lorsqu’il est activé au niveau de l’affichage en magasin. Auparavant, l’application n’envoyait pas d’e-mails du client lorsque les paramètres de notification électronique étaient activés au niveau de la vue de magasin, mais pas au niveau global.
- L’application envoie désormais des courriers électroniques comme prévu dans les déploiements multisites pour lesquels tous les sites Web n’ont pas activé l’envoi asynchrone de courriers électroniques. Auparavant, si ce paramètre était désactivé sur au moins un site web, aucun courrier électronique n’était envoyé depuis un site web, même s’il était activé. Les courriers électroniques de facture, d’envoi et de notes de crédit avaient des problèmes similaires. Toutefois, les courriers électroniques Commentaires de commande, Commentaires de facture, Commentaires d’envoi et Commentaires de note de crédit ont bien été envoyés. GitHub-31950
- Les factures et les PDF de facture incluent désormais les mêmes prix que prévu pour les produits groupés. Auparavant, les PDF de factures incluaient un prix incorrect pour les produits regroupés. GitHub-12856
- La diffusion de chaîne a été ajoutée à la méthode de filtre Modèle d’email pour s’assurer que la valeur renvoyée est une
string
. Auparavant, lorsqu’une exception était interceptée alors qu’elle n’était pas en mode développeur, l’application renvoyait unephrase
. Ce qui à son tour a déclenché une fatalitéUncaught TypeError
. GitHub-32671
- Les emails de confirmation de commande sont désormais envoyés comme prévu lorsque l’envoi asynchrone est activé (Magasins > Configuration > Ventes > Courriers électroniques de vente > Paramètres généraux > Envoi asynchrone) sur un site web dans un déploiement multisite. GitHub-31950
- L’application consigne désormais une erreur comme prévu lorsqu’une exception se produit lorsqu’un client tente d’envoyer un courrier électronique à partir du formulaire de contact. GitHub-23645
Frameworks
- Les classes parents dans l’administrateur sont désormais vérifiées pour l’annotation docblock avec la classe d’origine et les interfaces héritées. Auparavant, comme les classes parents n’étaient pas cochées, l’exécution d’actions liées aux clients dans l’administrateur qui déclenchait un événement générait une erreur. L'application a consigné cette erreur dans le journal des exceptions :
report.CRITICAL: Method's return type must be specified using @return annotation.
.
- L’application ne renvoie plus d’erreur fatale lorsque le serveur Redis est arrêté dans un déploiement où la mise en cache de la page Redis est activée.
- L’application honore désormais la variable Exclure le dossier multimédia de la sauvegarde paramètre lorsque la sauvegarde est activée avec
bin/magento config:set system/backup/functionality_enabled 1
. Auparavant, le dossier Media était sauvegardé en dépit de ce paramètre, car le chemin d’accès à/magento
s’est incorrectement formé avec un double //.
- L’application convertit désormais toutes les chaînes traduisibles comme prévu pour la page Panier d’administration. Auparavant, la charge de traduction était trop tardive et ignorait tous les observateurs abonnés à l’action du contrôleur qui étaient pré-envoyés. GitHub-31849
- La validation du formulaire sur la page Créer un compte client fonctionne désormais correctement lorsque la variable Connexion en tant que client Le paramètre d’extension enable est désactivé. Auparavant, l’application renvoyait une erreur JavaScript.
- Gestion des exceptions pour les processus enfants dupliqués par
ProcessManager
a été amélioré. Lorsqu’une exception se produit maintenant, le processus principal sort et un message d’erreur ne s’affiche qu’une seule fois. Auparavant, plusieurs échecs d’indexation étaient consignés et plusieurs messages s’affichaient. GitHub-30622
- Plug-ins de Magento Open Source global (par exemple,
webapi_rest
etgraphql
) ne sont plus déclenchées pour un nouveau type de zone personnalisée lorsque la variabledi.xml
de ce fichier de zone ne contient aucun module externe enregistré.
- Les exceptions survenant lors de l’initialisation ne sont plus mises en cache et déclenchent désormais un code de réponse 500.
- Le dernier gestionnaire fusionné en un
communication.xml
ne remplace plus tous les gestionnaires créés précédemment. GitHub-29528
Correctifs généraux
- L’application affiche désormais le nombre correct d’étoiles sur la page Mes révisions de produit et sur les dernières révisions de la page Mon compte. Auparavant, l’application appliquait la révision uniquement à la première révision et laissait les autres révisions sur la page sans étoile.
- Les liens de compte dans les en-têtes suivent désormais les normes WCAG. Auparavant, les liens de compte dans les en-têtes contenaient des ID dupliqués, ce qui provoquait l’échec de la validation WCAG.
- L’application ne génère plus d’erreurs de journal système lorsqu’un acheteur invité utilise une adresse non valide. Auparavant, l’application affichait par intermittence cette erreur au lieu de rendre la page :
No such entity with addressId
. GitHub-15115
- Le processus de redimensionnement des images ne s’arrête plus pour les images dont le format n’est pas pris en charge. Auparavant, lorsque
catalog:images:resize
a rencontré un format d'image non pris en charge, le processus s'est arrêté et l'application a affiché cette erreur :bin/magento catalog:images:resize Unsupported image format
.
- La prise en charge du WEBP et de l’AVIF pour les images de logo a été ajoutée à l’administrateur. GitHub-32495
- Vous ne pouvez plus modifier la portée de la variable
media_gallery
attribut. Auparavant, lorsque vous modifiez la portée de la variablemedia_gallery
àglobal
, l’application a généré une erreur.
- Les produits associés qui ont été ajoutés en tant que mise à jour planifiée ne s’affichent plus sur une page de produit storefront après la date de fin de la mise à jour. GitHub-469
- Le filtrage fonctionne désormais comme prévu sur la liste des exports planifiés lorsque le type d’entité est sélectionné. Auparavant, le filtre ne fonctionnait pas et l’application renvoyait une erreur JavaScript. GitHub-361
- Les images de catégorie sont désormais copiées comme prévu à partir de
catalog/tmp/category
vers le répertoirecatalog/category
lorsque des catégories sont enregistrées à l’aide de la méthode de stockage dans la base de données. La ligne d’image dans lamedia_storage_file_storage
contient désormais également la valeur correctedirectory_id
. GitHub-11995
- Les vendeurs sont désormais informés des caches invalidés comme prévu après l’envoi de modifications à la hiérarchie CMS. Auparavant, l’application n’invalidait pas les caches lors de l’enregistrement de la hiérarchie CMS.
- Les demandes d’AJAX redondantes à la section Panier du panier ont été réduites. Auparavant, l’application ne chargeait pas correctement le sous-total du panier, ce qui déclenchait à nouveau le rechargement du panier.
- Ajout de la validation des URL pour empêcher les mots réservés d’être inclus dans les clés d’URL. Voir Définition d’URI (Uniform Resource Identifiers) connus
- Sur les déploiements exécutant PHP 7.4, l’application renvoie désormais une erreur 404 lorsque la variable Générer des réécritures d’URL "catégorie/produit" est défini sur Non et un acheteur tente d’accéder à un chemin de catégorie inexistant. Auparavant, l’application renvoyait une erreur 500 indiquant :
Trying to access array offset on value of type bool
. GitHub-31984
nowdoc
a remplacéheredoc
dans leMagento_Backend
sélecteur de magasin. GitHub-32262
- Ajout des régions de l’Argentine, de la Bolivie, du Chili, de l’Équateur, du Guyana, du Paraguay, du Pérou, du Suriname et du Venezuela aux régions suivantes :
directory_country_region
table. GitHub-31169
- Ajout des régions Albanie, Danemark, Grèce, Islande, Portugal et Suède aux régions
directory_country_region
table. GitHub-31040
- Les messages sont désormais marqués comme erreurs dans la file d’attente des messages MysqlMQ lorsque des exceptions se produisent. GitHub-18140
- L’application fait désormais référence à l’objet de classe correct lors du chargement des informations fiscales pour la note de crédit de l’administrateur et les pages de facture. GitHub-31197
- L’intégration Royal Mail Click & Drop fonctionne désormais comme prévu. Auparavant, l’application générait cette erreur lorsque vous tentiez d’activer son intégration :
Sorry! Something went wrong. Please try again later
. GitHub-28996
- La demande affiche désormais un message d’erreur informatif lorsqu’un envoi, une note de crédit ou un identifiant de facture incorrect est transmis dans une URL. Auparavant, l’application entraînait une erreur fatale. GitHub-30424
- Suppression de la résurgence de l’emplacement des fichiers statiques. L’application affiche désormais une page 404 au lieu d’une erreur 500. Auparavant, un bogue dans la configuration par défaut de NGINX entraînait une récursion infinie. GitHub-31530
- Nom de la variable
cms_index_noroute.xml
a été corrigé surcms_noroute_index.xml
. GitHub-31300
- La variable
.editorconfig
a été restructuré afin de corriger le formatage automatique de la variabledb_schema_whitelist.json
fichiers . GitHub-31171
- Le redimensionnement d’une fenêtre de navigateur ne déclenche plus d’événements de loupe de liaison en double. GitHub-30788
- L’application ne renvoie plus d’exception SQL lors du filtrage
Magento\Users\Model\ResourceModel\Users\Collection
paruser_id
. GitHub-31216
Cartes cadeau
- La logique de validation de la plage de prix a été ajoutée à la page de création de la carte-cadeau. Auparavant, un administrateur pouvait créer une carte dont la valeur minimale dépassait la valeur maximale. GitHub-493
- La variable
addRequisitionListItemsToCart
La requête renvoie désormais le montant d’une carte-cadeau personnalisée comme prévu lorsque la requête ne contient pas de valeur pourallow_open_amount
.
Message cadeau
- Les administrateurs sont désormais directement redirigés vers la page d’administration demandée après la connexion. Auparavant, lorsqu’un administrateur se connectait, il était redirigé vers le tableau de bord Admin (ou n’importe quelle page était configurée comme page de démarrage) et devait accéder manuellement à leur destination. GitHub-31042
Gestionnaire de balises de Google
- Le composant de l’interface utilisateur pour l’adresse de facturation sur la page de paiement du processus de passage en caisse utilise désormais correctement l’adresse de devis lorsque le Gestionnaire de balises de Google est activé. Auparavant, une erreur JavaScript se produisait sur la page de paiement.
GraphQL
- GraphQL
products
La requête renvoie désormais les options d’attribut triées dans le même ordre de tri que celui utilisé sur la page de modification d’attribut.
- La réponse à la
{ category(id: 2){ children { name children { name } } } }
La requête GraphQL comprend désormais une arborescence de catégories correctement triée.
- La variable
CartItemPrices
contient désormais le nouveau champ GraphQLfixed_product_taxes
, qui renvoie un tableau des taxes fixes sur les produits appliquées à un article de panier. Auparavant, les taxes sur les produits fixes appliquées à un article de panier n’étaient pas incluses dans la requête de panier.
- Les requêtes vides envoyées à GraphQL renvoient désormais le code de réponse 200 au lieu de 500. Auparavant, l’analyseur GraphQL renvoyait une exception avant que le résultat de la requête ne soit généré.
- La variable
applyRewardPointsToCart
mutation met à jour maintenant le total général d'un panier pour refléter précisément la valeur des points de récompense déduits. GitHub-486
- Les produits désactivés ne sont plus inclus dans la réponse GraphQL lorsque GraphQL est utilisé pour lier des produits de mise à niveau.
- Les vendeurs peuvent désormais utiliser GraphQL
setShippingAddressesOnCart
pour définir les adresses de facturation et de livraison du panier d’un acheteur lorsque le passage en caisse d’un invité est désactivé.
- La variable
categoryList
ne renvoie plus d’exception lorsqu’elle contient plusieurs fragments sur la propriétéCategoryTree
. GitHub-31086
- GraphQL
product
la requête renvoie maintenant les prix du groupe de clients corrects.
- GraphQL
products
la réponse de requête trie désormais les agrégations en fonction de la position de l’attribut de produit.
- L’application ne génère plus d’erreurs de type lors des requêtes GraphQL lorsque les suffixes d’URL de catégorie et de produit contiennent des valeurs nulles. GitHub-30909
- La variable
CustomizableDateValue
contient désormais l’objettype
attribut. Sa valeur est une énumération qui peut être définie sur DATE, DATE_TIME ou TIME.
- La variable
dynamicBlocks
query renvoie le contenu des blocs dynamiques correspondant aux filtres spécifiés.
- Le POST
V1/products/special-price-delete
La requête supprime désormais uniquement le prix avec unstore_id
comme prévu. Auparavant, l’appel supprimait de tous les magasins tous les prix spéciaux pour le SKU spécifié. GitHub-25907
- Correction d’une erreur liée à la fonction
country_code
dans la variablecreateGiftRegistry
mutation.
- Correction de problèmes liés à la fonction
giftRegistryUid
de l’attributupdateGiftRegistryItems
mutation.
- Ajout d’une vérification supplémentaire pour empêcher la variable
updateGiftRegistryRegistrants
mutation d'être utilisé pour ajouter des personnes aléatoires comme inscrits à un registre de cadeaux.
- La variable
addConfigurableProductsToCart
mutation renvoie désormais la miniature correcte du produit spécifié. Auparavant, elle renvoyait la miniature du produit parent.
- La variable
products
n’expose plus le prix spécial d’un produit lorsque la période de prix spécial est définie pour une date ultérieure. GitHub-30210, GitHub-29631
- La variable
customer
La réponse de requête inclut désormais la variabletotal_giftcard
dans le cadre de l’attributOrderTotal
.
- Correction d’un problème en raison duquel la variable
products
requête pour renvoyer des informations erronées sur les niveaux de prix sur les articles qui n’ont pas de prix de niveau défini. GitHub-32279
Image
- Vous pouvez désormais définir les attributs de bundle required_options et has_options comme prévu lors de la création ou de la mise à jour d’un bundle de produits à l’aide du POST .
/V1/product/:sku
point de terminaison . Auparavant, ces attributs personnalisés étaient définis sur 0 (zéro) malgré les efforts déployés pour les définir sur 1 (un).
Import/export
- Le filtre ID de catégorie pour les entités de produit dans la grille Exporter les attributs d’entité de page fonctionne désormais comme prévu.
- L’état du stock de produits regroupés est désormais mis à jour comme prévu vers hors stock lorsque tous les produits enfants sont en rupture de stock. GitHub-32647
- Le statut du stock de produit configurable est désormais automatiquement mis à jour comme prévu lorsque le statut du stock de produit enfant est mis à jour par import. Auparavant, l’état du stock de produits n’était pas automatiquement mis à jour lorsque l’état du stock de produits enfants était mis à jour par importation.
- Vous pouvez désormais enregistrer des valeurs vides dans une exportation planifiée. Auparavant, l’application mettait à jour les valeurs de filtre vides après la création ou l’enregistrement de l’exportation. Les deux
no
etnot specified
étaient représentées par zéro dans la base de données et par une valeur denot selected
a été remplacé parno
.
- Le processus d’exportation prend désormais en compte la portée du rôle utilisateur lors de l’exportation de produits, de sources de stocks et d’entités clients. Auparavant, le processus d’exportation ignorait la portée du rôle utilisateur, ce qui permettait l’exportation des entités d’exportation de rôle utilisateur privé.
- L’application définit désormais la classe de taxe du produit sur
None
si un produit est importé avectax_class_name
valuesNone
ou0
. Auparavant, siproduct tax_class_name
wasNone
dans le fichier CSV, l’application a créé une nouvelle classe de taxe.None
, qui dupliquait la classe fiscale existante. Ifproduct tax_class_name
was0
dans le fichier CSV, l’application ignorait cette valeur et la classe de taxe du produit ne changeait pas après l’importation.
- Les administrateurs peuvent désormais modifier la variable
name
d’un produit en regroupementbundle_values
de l’administrateur. Auparavant, l’application affichait le produit comme étant en rupture de stock sur le storefront après avoir modifié le nom de l’administrateur. Les produits ont également été fusionnés avec le même SKU en une seule section d’option de lot.
- L’application prend désormais en compte la portée de l’utilisateur lors de l’exportation des données client. Auparavant, lorsque vous tentiez d’exporter des clients, l’application exportait les données client de tous les sites web.
- L’application supprime désormais les relations entre les produits de vente incitative, de vente croisée et les produits associés pendant l’importation du fichier CSV, comme prévu lorsque
__EMPTY__VALUE__
est spécifié dans le fichier CSV.
- Exporter des données d’adresse personnalisée pour de nombreux clients (Admin Système > Exporter) n’entraîne plus systématiquement une erreur de mémoire. Auparavant, lors de l’exportation des données d’adresse personnalisée, l’application tentait de charger toutes les données du client, ce qui entraînait une insuffisance de mémoire, et l’application générait une erreur d’allocation-mémoire en échec.
- Les prix des niveaux en double ne sont plus importés pendant le processus d’importation CSV par défaut. Auparavant, la validation était manquante pour empêcher l’importation de prix de niveau en double. Lorsque des prix de niveau en double se produisaient, les marchands ne pouvaient pas enregistrer de produits. Les marchands ont également vu cette erreur lorsqu’ils ont tenté de planifier un changement de produit :
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry…
.
- Toutes les images de produit sont désormais validées lors de l’importation. Auparavant, l’application ne validait que la première image lorsqu’un produit contenait plusieurs images. GitHub-28236
- Vous pouvez désormais supprimer une région d’une adresse client comme prévu lors de l’importation. Auparavant, la région affectée ne changeait pas lorsqu’une adresse client était importée avec une région vide.
- Les produits avec du contenu JSON ou HTML en tant qu’attributs de produit supplémentaires sont désormais exportés correctement dans un fichier CSV. Auparavant, le fichier CSV contenait des chaînes de données chevauchées dans des champs incorrects.
Index
- Process Manager se ferme désormais avec une erreur lorsqu’un processus enfant échoue. Auparavant, Process Manager se quittait toujours correctement si le nombre de fonctions qui lui étaient transmises (par exemple, les dimensions de l’indexeur) était inférieur à la valeur de la variable
MAGE_INDEXER_THREADS_COUNT
Variable d’environnement. GitHub-30964
- Les produits sont désormais disponibles comme prévu dans les résultats de recherche de storefront lors de la liaison de produits à l’aide d’un PUT REST.
/V1/products/:sku/links
requête lorsque le mode indexeur est défini sur Mettre à jour lors de l’enregistrement.
- L’indexeur de règles de prix de catalogue fonctionne désormais comme prévu lorsque le mode indexeur est défini sur Mettre à jour lors de l’enregistrement. GitHub-370
- La suppression d’une catégorie désactivée qui n’inclut pas de produit n’a désormais aucun effet sur la recherche de catalogue et les tables d’index plats de catégorie. Auparavant, la suppression d’une catégorie inactive déclenchait une réindexation complète. GitHub-23297
- Les indexeurs personnalisés peuvent désormais utiliser différents noms de colonne d’entité pour les abonnements. Auparavant, le déclencheur de base de données utilisait le nom de colonne de l’indexeur défini pour la dernière fois sur Mise à jour par planification plutôt que l’indexeur désigné. GitHub-21853
- L’application n’envoie plus de requêtes AJAX pour recharger les sections de données client (
Magento_Customer/js/section-config
) qui ne sont pas affectés par la requête. GitHub-31948
- Les indexeurs suivants ne sont plus invalidés une fois que vous avez ajouté, supprimé ou réorganisé des produits dans une catégorie :
catalog_category_product
etcatalogsearch_fulltext
(et leurs dépendances). Auparavant, ces suppressions involontaires déclenchaient une réindexation complète des sites. Une réindexation complète est désormais bloquée dans ces conditions lorsque le catalogue plat n’est pas activé.
Infrastructure
- La dépendance
pelago/emogrifier
a été mis à jour de la version 3.1.0 vers la version 5.0.0. Cette mise à jour a entraîné l’introduction de modifications incompatibles à l’envers dans la variableMagento\Email\Model\Template\Filter
classe . Le code modifié est exécuté lors du rendu des modèles d’email. Voir Référence BIC.
- Correction d’un problème avec
\Magento\CatalogInventory\Model\Indexer\Stock\CacheCleaner::getCategoryIdsByProductIds
qui empêchait d’enregistrer un nouveau produit.
- La bibliothèque TinyMCE v3 obsolète a été supprimée. La variable
Magento_Tinymce3Banner
module et tests MFTF liés à TinyMCE v3.x ont été supprimés d’Adobe Commerce.
- L’application ne lance plus une
Invalid header value detected
erreur sur le formulaire Nous contacter lorsqu’un acheteur saisit une adresse email contenant des signes diacritiques français (tels que "é", "è"). L’application convertit désormais les lettres UTF-8 du nom d’utilisateur en codage ASCII. Auparavant, les lettres UTF-8 n’étaient pas converties en encodage ASCII dans la section unique de l’adresse électronique.
- L’application ne renvoie plus d’erreur fatale PHP lorsqu’un module externe est ajouté à une classe parent. GitHub-31291
- Mise à jour des fichiers README.md pour ces modules :
Magento_Msrp
,Magento_MsrpConfigurableProduct
,Magento_MsrpGroupedProduct
,Magento_Multishipping
,Magento_MysqlMq
. GitHub-32577
phpcpd
a été mis à jour vers la version 6.0.3 pour la compatibilité avec PHP 8.
ramsey/uuid
a été mis à jour pour des raisons de compatibilité avec PHP 8.0. GitHub-31777, GitHub-826
colinmollenhour/php-redis-session-abstract
a été mis à jour vers la version 1.4.4 pour la compatibilité avec PHP 8. GitHub-32709
- Correction d’une combinaison non valide d’onglets et d’espaces dans le
phpstan.neon
fichier . GitHub-31239
- Suppression de l’utilisation de la propriété obsolète
$_isScopePrivate
dans toute la base de code. GitHub-30506
- Les mises en page ne sont plus codées en dur dans
Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser\Container
. Par conséquent, la variablegetPageLayouts()
renvoie désormais la liste réelle des mises en page déclarées par les différents modules, comme prévu. Auparavant, il renvoyait uniquement des mises en page codées en dur. GitHub-31168
- La variable
composer.lock
a été mis à jour vers la dernière version de Coding Standard. GitHub-31152
- Ajout d’une dépendance manquante à la variable
web-token/jwt-framework
vers le modulemagento/module-jwt-framework-adapter
. GitHub-32578
- Des écouteurs passifs ont été ajoutés au
fotorama.js
pour améliorer le score des mesures de phare. GitHub-31140
- Le fichier README.md du module Google Analytics a été mis à jour. GitHub-32616
- Process Manager gère désormais correctement les exceptions dans les processus marqués. Le processus principal se ferme maintenant et l’application n’affiche désormais un message d’erreur qu’une seule fois. En outre, les exceptions des processus dupliqués sont désormais gérées lorsqu’ils sont générés dans le processus principal. Auparavant, l’application consignait plusieurs échecs d’indexation et affichait plusieurs messages d’erreur. GitHub-30622
- L’application ne renvoie plus d’erreur lorsqu’un module externe est ajouté à une classe parent. (La variable
optionsProvider
est désormais déclaré aprèsgetContentIdentities
inAssest.php
.) Auparavant, l’application générait cette erreur :Error: Cannot instantiate interface Magento\Framework\Data\OptionSourceInterface
. GitHub-31291
- Exécution
Magento\Framework\Filesystem\Io\Ftp::ls()
sur un dossier vide renvoie désormais un tableau vide comme prévu. Auparavant, l’application générait cette exception :Invalid argument supplied for foreach() in vendor/magento/framework/Filesystem/Io/Ftp.php…
. GitHub-31288
- La variable
update
La méthode pour le rôle et les règles a été marquée comme obsolète dansapp/code/Magento/Authorization/Model/Role.php
. GitHub-30756
- La concaténation des paramètres de cookie SameSite a été corrigée. Auparavant, une concaténation incorrecte annexait le
lex
suffixe àvalue
,domain
et d’autres paramètres. GitHub-26377, GitHub-32440
allure-framework/allure-phpunit
a été mis à niveau vers la version 1.3.1 dans toute la base de code. Auparavant, l’application affichait cette erreur :Warning: Use of undefined constant GLOB_BRACE - assumed 'GLOB_BRACE' (this will throw an Error in a future version of PHP) in /var/www/html/src/vendor/allure-framework/allure-phpunit/src/Yandex/Allure/Adapter/AllureAdapter.php:74.
GitHub-24635
- L’application affiche désormais des erreurs plus informatives en cas d’erreur en cours d’exécution.
bin/magento
en mode de production. Auparavant, l’application n’affichait aucun message d’erreur ou affichait des messages dépourvus d’informations. GitHub-32786
- La variable
ArrayIterator
L’objet PHP a été mis à jour pour fonctionner comme prévu avec PHP 7.4. GitHub-32088
- L’application ne renvoie plus d’erreur lorsqu’un client tente de terminer une commande lorsqu’aucun opérateur de livraison n’est disponible. Il affiche plutôt la page de passage en caisse et ce message :
Sorry, no quotes are available for this order at this time
. Auparavant, l’application affichait une page de passage en caisse vide et enregistrait ce message dans le journal des exceptions :array_keys() expects parameter 1 to be array, null given
. GitHub-30830
- L’application ne consigne plus chaque cookie comme contexte distinct. La variable
$_COOKIE
a également été converti en chaîne. Auparavant, chaque cookie étant consigné comme contexte distinct, lorsque le nombre de cookies dépassait 50, l’application consignait ce message :Unable to send the cookie. Maximum number of cookies would be exceeded
. GitHub-31334
Facture
- Lors de la création de factures dans l’administrateur, la variable Copie d’e-mail de fonctionne désormais comme prévu. Auparavant, la case à cocher était ignorée si le paramètre global d’envoi des courriers électroniques de facture était activé dans Courriers électroniques de vente. Il est désormais cohérent et fonctionne de la même manière que les pages de création d’expédition et de note de crédit. GitHub-28511
Galerie de médias
bin/magento media-gallery:sync
échoue désormais comme prévu lors du traitement d’images PNG qui ne contiennent pas XMP informations.
- Entrées dans le
catalog_product_entity_media_gallery
sont supprimées comme prévu lorsque les produits associés sont supprimés. GitHub-17727
- Les détails de l’image peuvent désormais être mis à jour dans la galerie de médias lorsque la minification JavaScript est activée. Auparavant, les détails de l’image n’étaient pas enregistrés et l’application affichait cette erreur :
TypeError: Cannot read property 'call' of undefined in jquery.validate
. GitHub-31633
MFTF
Les nouvelles fonctionnalités et les correctifs de bogues de base MFTF sont décrits dans la section Modification de la structure de test fonctionnelle.
- La variable
magento indexer:reindex
etcache:flush
et la fonctionAdminReindexAndFlushCache
Le groupe d’actions a été supprimé des tests afin d’améliorer l’exécution des modules suivants :Bundle
,Catalog
,CatalogRule
,CatalogRuleConfigurable
,CatalogUrlRewrite
,Downloadable
,Indexer
,Paypal
, etSales
. GitHub-31031
AdminSubmitCategoriesPopupActionGroup
a été ajouté aux tests afin d’éviter l’échec du test. GitHub-31251
- Les tests ont été restructurés avec
StorefrontCheckQuickSearchStringActionGroup
etStorefrontAssertProductNameOnProductMainPageActionGroup
(groupes d’actions existants). GitHub-31251
Tests restructurés
Les tests suivants ont été restructurés afin d’améliorer le temps d’exécution :
AddOutOfStockProductToCompareListTest
AdminApplyTierPriceToProductWithPercentageDiscountTest
AdminCheckingCreditMemoTotalsTest
AdminCheckDashboardWithChartsTest
AdminConfigDefaultProductLayoutFromConfigurationSettingTest
AdminCreateInvoiceTest
AdminCreateOrderAddProductCheckboxTest
AdminMassOrdersCancelCompleteAndClosedTest
AdminMassOrdersCancelProcessingAndClosedTest
AdminMassOrdersHoldOnCompleteTest
AdminMassOrdersHoldOnPendingAndProcessingTest
(remplacement pour obsolète) AdminMassOrdersHoldOnPendingAndProcessingTest
)
AdminMassOrdersUpdateCancelPendingOrderTest
AdminMassProductPriceUpdateTest
AdminMassUpdateProductAttributesMissingRequiredFieldTest
AdminOrdersReleaseInUnholdStatusTest
AdminPanelIsFrozenIfStorefrontIsOpenedViaCustomerViewTest
AdminSortingByWebsitesTest
AdminUpdateSimpleProduct
AdminUpdateSimpleProductWithRegularPriceInStockEnabledFlatTest
AdminValidateShippingTrackingNumberTest
CancelOrdersInOrderSalesReportTest
ProductsQtyReturnAfterOrderCancelTest
StorefrontConfigurableProductBasicInfoTest
Groupes d’actions
Les actions répétitives ont été remplacées par des groupes d’actions dans ces tests :
AdminCheckConfigurableProductPriceWithDisabledChildProductTest
AdminConfigurableProductCreateTest
AdminConfigurableProductRemoveAnOptionTest
AdminCreateProductDuplicateUrlkeyTest
AdminCreateSimpleProductNegativePriceTest
AdminCreateSimpleProductZeroPriceTest
AdminCreateVirtualProductFillingRequiredFieldsOnlyTest
AdminUpdateSimpleProductWithRegularPriceInStockDisabledProductTest
AdminUpdateSimpleProductWithRegularPriceInStockNotVisibleIndividuallyTest
AdminUpdateSimpleProductWithRegularPriceInStockVisibleInCatalogOnlyTest
Nouveaux groupes d’actions
AdminClearFiltersOnGridActionGroup
AdminClickAddNewPageOnPagesGridActionGroup
AdminClickInsertWidgetActionGroup
AdminClickRefundOfflineOnNewMemoPageActionGroup
AdminFillAccountInformationOnCreateOrderPageActionGroup
AdminGoToOrderStatusPageActionGroup
AdminOpenCMSPagesGridActionGroup
AdminSelectAttributeSetOnEditProductPageActionGroup
AssertAdminProductIsAssignedToCategoryActionGroup
(remplace le filtrage de la grille de produits par SKU et le fait de cliquer sur la première ligne (afin de réduire le temps d’exécution du test)
AssertLinkActionGroup
AssertStorefrontCartDiscountActionGroup
ClickPlaceOrderActionGroup
SaveCmsPageActionGroup
StorefrontAssertProductNameIsNotOnProductMainPageActionGroup
StorefrontGuestCheckoutProceedToPaymentStepActionGroup
StorefrontHoverProductOnCategoryPageActionGroup
StorefrontSelectCustomizeAndAddToTheCartButtonActionGroup
Groupes d’actions supprimés
- Supprimé
CliIndexerReindexActionGroup
(ou modification de la valeur) des tests afin d’améliorer le temps d’exécution de la variableBackend
,Bundle
,BundleImportExport
,Catalog
,CatalogRule
,CatalogSearch
,Checkout
,Downloadable
,Elasticsearch
,Elasticsearch6
,Indexer
,LayeredNavigation
,LoginAsCustomer
,Newsletter
,Sales
,SalesRule
,Search
,Store
,Swatches
,UrlRewrite
,Weee
, etWishlist
modules.
- Supprimé
CliCacheFlushActionGroup
deCatalog
,CatalogUrlRewrite
,Checkout
,Config
,ConfigurableProduct
,Contact
,Cookie
,CurrencySymbol
,Customer
,Downloadable
,Elasticsearch
,Elasticsearch6
,Fedex
,Indexer
,LayeredNavigation
,LoginAsCustomer
,Msrp
,Multishipping
,Sales
,Swatches
,Translation
,UrlRewrite
,Vault
,Weee
, etWishlist
modules.
Newsletter
- L’application n’envoie plus d’e-mail de newsletter à un client qui s’est désabonné de la newsletter entre la création de la file d’attente de la newsletter et l’envoi de la newsletter. GitHub-32116
- L’application honore désormais les paramètres d’activation de la newsletter (Magasins > Paramètres > Configuration > Clients > Newsletter > Options générales). Auparavant, ces paramètres étaient toujours récupérés de la portée par défaut dans les déploiements multi-magasin. GitHub-31188
- GET d’appel REST
/V1/customers/search
renvoie désormais les informations correctes pour les clients abonnés à plusieurs newsletters. GitHub-31168
- Le statut de l’abonnement à la mise en cache a été supprimé du module externe newsletter. GitHub-19345
Commande
- L’application calcule désormais correctement le solde client facturé lors du renvoi du crédit de magasin à un compte client pour une commande partiellement facturée.
- L’application enregistre désormais une commande modifiée comme prévu lorsqu’elle enregistre un solde client remboursé. GitHub-393
Modes de paiement
- L’application effectue désormais le rendu des blocs de paiement sur
frontend
quelle que soit la zone à partir de laquelle l'email a été envoyé. (La zone actuelle est désormais émulée en tant quefrontend
avant le rendu du bloc de paiement.) Auparavant, les blocs de paiement étaient générés dans la zone à partir de laquelle le courrier électronique était envoyé. Par conséquent, que le courrier électronique de vente ait été déclenché par l’administrateur ou par l’API REST, les URL des ressources ont tenté de les charger à partir de la mauvaise zone (webapi_rest
ouadminhtml
).
- L’application envoie désormais le lien d’un produit téléchargeable à l’adresse électronique spécifiée lors du passage en caisse. Auparavant, lorsqu’un acheteur invité utilisait le paiement express PayPal et saisissait différentes adresses électroniques pour envoyer la commande et extraire, l’application envoyait le lien du produit téléchargeable à la première adresse.
- L’application affiche désormais une valeur exacte pour le crédit de magasin disponible sur la page Mode de paiement dans les déploiements qui prennent en charge plusieurs devises.
- La liste des méthodes de paiement est désormais mise à jour comme prévu lorsqu’un acheteur invité modifie l’adresse d’expédition d’une commande vers un autre pays lors du passage en caisse. Auparavant, la modification de l’adresse de facturation ne déclenchait pas de mise à jour des modes de paiement possibles.
PayPal
- Les acheteurs peuvent désormais extraire avec succès une commande PayPal Payflow Pro avec une adresse de livraison contenant des caractères spéciaux. Auparavant, la demande refusait le paiement de ces commandes.
- Les acheteurs sont désormais redirigés vers la page de succès de la commande après un paiement réussi à l’aide de PayPal. Auparavant, les clients étaient redirigés vers une page vierge, car les données de session étaient perdues.
Performances
- Les performances de la recherche du SKU d’administration sur les catalogues volumineux ont été améliorées. Les indices d’optimisation de requête forcent désormais l’utilisation de l’index lors de l’exécution de la requête.
- Les performances de la variable
catalog_product_alert
Le processus cron lors de l’exécution sur des tables volumineuses (plusieurs millions de lignes) a été amélioré. Auparavant,catalog_product_alert
a chargé toutes les alertes de produit, ce qui provoquait une exception de mémoire insuffisante.
- L’application ne charge plus toutes les pages CMS lorsqu’il suffit d’une seule page de modification pour générer un formulaire d’administration. Ces pages se chargent désormais plus rapidement. GitHub-30936
-
Valeurs numériques dans
WHERE IN
Les expressions sont désormais converties en nombre, et non en chaîne, ce qui améliore les performances des requêtes dans certaines versions de MariaDB. GitHub-31135 -
La variable
use_application_lock
Le mode permet d'activer la réindexation soit à l'aide de variables d'environnement, soit en configurant la variableapp/etc/env.php
fichier . Vous n’avez plus besoin de réinitialiser manuellement l’indexeur après un échec lorsque ce mode est activé. Lorsque ce mode n’est pas activé, vous devez réinitialiser manuellement l’indexeur après un échec. Voir Utilisation du mode de verrouillage de l’application pour les processus de réindexation.
Tarifs
- L’application met à jour correctement le prix d’un produit avec des prix groupés lorsqu’un acheteur met à jour la quantité d’un produit sur le storefront. GitHub-32669
- Les produits groupés peuvent désormais être enregistrés lorsque des produits se voient attribuer un prix de niveau et
Magento\Framework\Api\ExtensibleDataObjectConverter
est utilisé pour convertir les données de produit. Auparavant, lorsqueMagento\Framework\Api\ExtensibleDataObjectConverter
a été utilisé pour convertir les données de produit en tableau lorsqu’un produit a été enregistré. L’application n’a pas enregistré le produit et a affiché cette erreur :Notice: Undefined index: price in app/code/Magento/Catalog/Model/Product/Type/Price.php on line 382.
- Les mises à jour de prix planifiées sont désormais appliquées aux produits déjà présents dans le panier d’un acheteur. GitHub-356
- Le prix de niveau est désormais appliqué à un produit comme prévu lorsque des incréments de quantité sont activés et que l’inventaire décimal est inférieur à 1. Auparavant, la quantité minimale de prix était définie sur 1.
Vidéo produit
- Vous pouvez désormais utiliser la variable Ajout d’une vidéo (Admin) Catalogue > Produits) pour ajouter plusieurs vidéos consécutivement. Auparavant, les champs vidéo conservaient les détails de la vidéo précédente.
- Le passage en mode plein écran d’une vidéo de produit sur une page de produit fonctionne désormais comme prévu sur les appareils mobiles. Auparavant, le passage en mode Plein écran entraînait la mise en pause de la vidéo avant de quitter le mode Plein écran.
- Boutons fléchés de navigation (Suivant et Prev) sont désormais visibles comme prévu sur les vidéos de produits storefront.
- Les vendeurs peuvent désormais ajouter des vidéos Vimeo à l’aide de la fonction Insérer une vidéo sur la page produit, comme prévu. Auparavant, l’application affichait une erreur 404. GitHub-31753
Citation
- La variable
/V1/guest-carts/examplecartid/items
L’appel renvoie maintenant la vue de magasin demandée. Auparavant, il renvoyait la première vue de magasin dans le magasin, et non la vue demandée.
- L’envoi de facture peut désormais être configuré. Auparavant, l’envoi de factures n’était pas configurable et l’application envoyait toujours une facture après sa création. Les courriers électroniques de factures et de commandes ont tous deux été envoyés sous la forme d’un observateur. Des observateurs distincts régissent désormais l’envoi d’emails de commande et de factures. GitHub-27656
Rapports
- Date de la dernière révision sur l’administrateur Rapports > Révisions > Par produits affiche désormais la date de révision correcte. Auparavant, l’application affichait la date de création du produit au lieu de la date de révision.
Révisions
- Les étoiles d’évaluation de la révision des produits sont désormais correctement calculées dans la section Détails de la révision de la page Mon compte.
- Les sections Note de produit moyenne et Note de produit de la page des détails de la révision du produit s’affichent désormais correctement. Auparavant, l’ID de révision n’était pas défini lorsque l’application calculait l’évaluation storefront et le modèle de révision de produit n’était pas correctement rendu.
- La variable Soyez le premier à consulter ce produit change désormais comme prévu pour un nombre de révisions après qu’un administrateur a approuvé une révision.
- Les administrateurs peuvent désormais trier les avis sur les produits dans la section des avis sur les produits de la page de modification du produit, comme prévu. GitHub-30270
- Les révisions sont désormais enregistrées avec l’ID de magasin correct une fois qu’un administrateur a approuvé et enregistré la révision à partir d’un domaine différent de celui du magasin. GitHub-17510
Références
- L’application met à jour la liste des modes de paiement lorsqu’un acheteur passe en caisse avec plusieurs adresses, vérifie ou dévérifie la variable Crédit de la boutique (points récompensés) .
Ventes
- Les utilisateurs administrateurs peuvent désormais passer des commandes pour des éléments en rupture de stock lorsque la variable Les commandes en arrière-plan sont autorisées est activé (Magasins > Configuration > Catalogue > Inventaire > Options d’inventaire des produits). Auparavant, l’application entraînait une erreur.
- Les acheteurs peuvent désormais trouver une commande sur la page Commandes et retours lorsque le nom se termine par un espace blanc.
- Les factures sont désormais créées avec le total général correct lorsqu’une règle de prix de panier attribuant une remise de 100 % est appliquée à une commande qui est également soumise à des taxes de catalogue et de réduction et qui est admissible à la livraison gratuite. Auparavant, la commande avait le prix correct, mais pas la facture. GitHub-30853
- Le filtrage des commandes par date renvoie désormais des résultats précis. Auparavant, l’application ne renvoyait pas de commande qui était placée après 00:00 UTC lorsque vous filtriez les commandes par date de commande.
- La grille des notes de crédit affiche désormais le symbole monétaire correct lorsque Site Web est utilisée pour une Prix dans un déploiement multi-magasin.
- Les boutons radio Modes de paiement ne disparaissent plus dans la section Informations sur le paiement et l’expédition du workflow de passage en caisse après le rechargement de la page Admin Créer une commande . GitHub-32106
- Le texte arabe s’affiche désormais correctement dans les factures.
- La demande calcule désormais correctement les totaux de taxe sur les avoirs partiels pour les avoirs bloqués sur la base d’une commande ou d’une facture dans les magasins qui déploient PayPal payment Pro comme passerelle de paiement. Auparavant, pour les commandes comportant plusieurs factures, l’application appliquait la taxe totale de cette commande pour l’annulation partielle d’une facture dans l’avoir.
- L’application ne crée plus de blocages aléatoires de base de données lors de l’envoi de nouveaux emails de commande aux clients. Auparavant, des blocages se produisaient, car l’application enregistrait l’intégralité de l’objet et ses objets associés au lieu de colonnes SQL mises à jour. L'application affichait ce type d'erreur :
SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
. GitHub-31090
- La page Détails de la commande du storefront affiche désormais la quantité de produit expédiée correcte. Auparavant, les quantités de produits étaient incorrectes, car le modèle de la page d’envoi de commande était rendu. Qté expédiée as a
int
. Ce paramètre a été remplacé parfloat
.
- L’application n’envoie plus par courrier électronique des copies d’une facture de commande lorsque la variable Copie par e-mail de la facture n’est pas coché. Auparavant, l’application envoyait un courrier électronique à Client et Envoyer la copie du courrier électronique de facturation à. GitHub-28511
- L’application ne crée plus d’entrées d’adresse en double pour un compte client lors de la création d’une commande à partir de l’administrateur d’un client existant. La variable Enregistrer dans le carnet d’adresses a été renommée en Ajouter au carnet d’adresses et n’est désormais plus coché dans l’Admin par défaut.
- L’application utilise désormais le logo qui a été chargé dans la variable Logo pour l’affichage d’impression par HTML paramètres lorsque les acheteurs impriment une commande à partir de leur compte. Auparavant, l’application affichait le logo LUMA au lieu du logo chargé.
- Le téléavertisseur des éléments de commande sur le storefront fonctionne désormais comme prévu lorsque le nombre d’éléments dépasse 20. Auparavant, le téléavertisseur prenait en compte les produits enfants et le nombre total était incorrect.
- L’application affiche désormais les symboles de devise appropriés pour le sous-total et l’expédition et la gestion des valeurs sur les grilles de page Commande et Mémo de crédit. GitHub-22662
- Les administrateurs qui utilisent Safari peuvent désormais ajouter un produit à une commande à partir de l’administrateur. Auparavant, lorsque l’administrateur cliquait sur la variable Ajouter les produits sélectionnés à la commande , l’application affichait l’icône de chargement en rotation et la page bloquée.
Règle de vente
- L’application applique désormais les règles de prix de panier avec Remise de qualité maximale appliquée à ou Étape de qualité de remise (Buy X) conditions correctes lorsque plusieurs règles de prix de panier sont appliquées au panier. Auparavant, si une règle de prix de panier était Remise de qualité maximale appliquée à ou Étape de qualité de remise (Buy X) a été appliquée après une autre règle de prix de panier, la remise totale a été réduite à la valeur configurée pour Remise de qualité maximale appliquée à ou Étape de qualité de remise (Buy X) fois le prix du produit.
- Le rapport Coupon reflète désormais fidèlement l’activité des coupons dans les déploiements où une base de données partagée est implémentée.
- Règles de prix du panier contenant la condition Catégorie N’EST PAS sont désormais appliquées comme prévu aux produits enfants/simples configurables qui ne sont pas affectés à une catégorie mais dont les produits parents sont affectés.
- GraphQL
cart
la requête renvoie désormais le total général correct pour l’étape de facturation d’un panier lorsqu’un coupon est appliqué à la commande.
Rechercher search-heading
- La page de catégorie ne contient plus ces identifiants d’élément de HTML en double :
modes-label
,mode-list
,toolbar-amount
,sorter
,limiter
.
- Les résultats de recherche par mots partiels n’incluent plus de correspondances inattendues ou non pertinentes, et les recherches produisent des résultats cohérents à la fois sur le storefront et sur l’administrateur. L’application utilise désormais un autre analyseur sans aucun filtre pour les recherches de mots partielles. Auparavant, les résultats de recherche affichaient des produits qui n’incluaient pas de mots-clés de recherche. (L’analyseur par défaut incluait auparavant un moteur de recherche, et comme le même analyseur était utilisé au moment de la recherche pour une recherche par mot partielle, le résultat de la recherche pouvait produire des correspondances inattendues ou non pertinentes.)
- La recherche rapide renvoie désormais des résultats si la requête de recherche comporte plusieurs mots et si le nom du produit est configuré comme ne pouvant pas faire l’objet d’une recherche. Auparavant, si le nom du produit était configuré comme ne pouvant pas faire l’objet de recherches, l’application générait une exception de requête sur les requêtes comportant plusieurs mots.
- Les résultats de la recherche incluent désormais la variable
weight
comme prévu lorsqu’il est configuré comme pouvant faire l’objet de recherches.
- L’application ne renvoie plus d’erreur lorsque vous affichez une page de catégorie vide avec l’Elasticsearch activé. Il effectue plutôt le rendu de la page comme prévu et affiche un message informatif. Auparavant, un index de texte intégral vide déclenchait une exception sur une page de catégorie.
- La fonction de saisie automatique des champs de recherche fonctionne désormais comme prévu si un acheteur clique en dehors du champ de recherche après avoir commencé sa recherche. Les suggestions de saisie automatique réapparaissent désormais lorsque l’acheteur reprend la saisie. Auparavant, l’application n’affichait pas les suggestions de saisie automatique et, si vous cliquiez dans la zone de recherche, les suggestions de recherche n’étaient plus visibles (bien que d’autres lettres aient été saisies).
- La recherche d’un produit en fonction de son SKU complet ou partiel dans la recherche avancée renvoie désormais le produit attendu.
- Les filtres de navigation en couches affichent désormais un nombre de produits précis. Auparavant, les valeurs du nombre de produits de l’Elasticsearch n’étaient pas filtrées par les autorisations de catalogue.
- Elasticsearch ne renvoie plus d’erreur lorsque le paramètre de page de l’URL de catégorie dépasse la pagination. GitHub-23843
- Vous pouvez désormais ajouter un mappeur de champ Elasticsearch personnalisé à
Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\Resolver\CompositeResolver
.
- Les développeurs peuvent désormais modifier les mappages Elasticsearch. Auparavant, les modèles dynamiques envoyés au serveur Elasticsearch dans les mappages par défaut étaient codés en dur, ce qui empêchait les développeurs d’indexer en Elasticsearch toutes les données supplémentaires associées à un module personnalisé.
- Les champs de recherche (minisearch de formulaire) fonctionnent désormais comme prévu lorsque les suggestions de recherche sont désactivées.
Expédition
- L’application met désormais à jour les prix d’expédition comme prévu lorsqu’un acheteur revient sur la page du panier après avoir supprimé un produit lors de son passage en caisse avec plusieurs adresses.
- La demande affiche désormais le prix d’expédition ajusté correct lorsque certains articles du panier remplissent les conditions d’expédition gratuite. Auparavant, lorsqu’un sous-ensemble d’articles du panier était qualifié pour la livraison gratuite, l’application n’ajustait pas le prix de livraison et affichait le prix de livraison complet à l’acheteur.
- Les utilisateurs administrateurs qui sont limités à un site web spécifique peuvent désormais créer une livraison pour une commande passée sur le même site web. Auparavant, l’application renvoyait cette exception lorsqu’un utilisateur administrateur dépourvu d’autorisation d’accès à la vue de magasin par défaut tentait d’envoyer une commande placée dans une vue de magasin à laquelle l’utilisateur administrateur avait accès :
Notice: Undefined offset: 1 in /app/code/Magento/Catalog/Model/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php on line 293
.
- La demande prend désormais en compte les remises appropriées des règles de prix de panier lorsqu’elle détermine si une commande répond aux conditions d’expédition gratuite de DHL.
- Les libellés d’expédition utilisent désormais la devise de base comme prévu au lieu de la devise de commande pour les magasins qui prennent en charge plusieurs devises lorsqu’une commande est placée dans une devise autre que la devise de base. GitHub-31891
- L’application affiche désormais le sous-total de commande correct lorsqu’un acheteur revient sur la page du panier au cours de l’extraction après s’être éloigné de la page à expédition multiple. GitHub-31889
- La modification des informations de facturation lors de la création d’une commande par l’administrateur ne modifie plus les informations d’expédition pour les clients dont les adresses de livraison et de facturation par défaut sont différentes. GitHub-31786
- L’application ne dévérifie plus la variable Ajouter des commentaires case à cocher lorsqu’un acheteur clique Obtenir les méthodes d’expédition et les tarifs et sélectionne un mode de livraison lors de la création d’une commande à partir de l’administrateur.
- Les acheteurs peuvent désormais utiliser le bouton Retour du navigateur pour revenir à la page Sélectionner la méthode d’expédition lors de l’extraction d’une commande avec plusieurs adresses. Auparavant, l’application affichait une page Choix de la méthode d’expédition corrompue. GitHub-30268
- La quantité de produit reste désormais inchangée, comme prévu, après qu’un acheteur ait modifié la quantité sur la page d’adresse Ship to multiple et qu’il ait cliqué sur le bouton Précédent du navigateur.
- Les frais de méthode d’expédition à taux plat ne deviennent plus nuls lorsqu’une règle de prix de panier est appliquée lors du passage en caisse. GitHub-21832
- L’application ne renvoie plus d’erreur lorsqu’un marchand tente d’envoyer une commande à l’aide de DHL lorsque la variable Créer une étiquette de livraison est activée et le nom du produit contient des caractères unicode. Auparavant, l’application affichait cette erreur lors de la demande de création de libellé :
The response is in wrong format
.
- Vous pouvez passer une commande à partir de l’administrateur dans un déploiement multisite au cours duquel
United States
est activé sur un site web etDisable all countries
est activé en tant que portée par défaut sur l’autre site web. Auparavant, l’application n’avait pas passé la commande et affichait cette erreur :Please check the shipping address information. "regionId" is required. Enter and try again
.
Magasin
- L’application ne traite plus une chaîne de
0
comme valeur vide lors de l’affichage d’une page d’accueil de magasin. Auparavant, l’application traitait une valeur entière au début d’un chemin de requête comme identifiant de magasin, ce qui avait des effets inattendus sur l’optimisation pour les moteurs de recherche.
- Modules externes pour
\Magento\Framework\App\ActionInterface
underlib/internal/Magento/Framework/App/Action/Plugin
ont été supprimés afin de respecter la directive selon laquelle les modules externes doivent être utilisés pour personnaliser le comportement d’un module à partir d’un autre module. GitHub-28050
- L’application affiche désormais ce message lorsque vous essayez de sélectionner
Website
comme valeur par défaut lorsqueStore View
est désactivé lors de la création du site web :Please enable your Store View before using this Web Site as Default
. Auparavant, le site web se bloquait et l’application n’affichait pas d’alerte.
Taxe
- L’application prend désormais en compte la taxe cachée lors de la validation du montant minimum de la commande.
- L’application affiche désormais les taxes fixes sur les produits (FPT) comme prévu lorsqu’un acheteur revient dans son panier et passe en caisse après avoir ajouté des produits en bundle au panier. GitHub-30250
- L’application préremplit désormais la variable Numéro de TVA des champs de saisie pour les adresses de facturation et de livraison de la section Informations sur l’adresse de la page Admin nouvelle commande avec des numéros de TVA enregistrés lorsqu’un administrateur crée une commande pour un client existant. GitHub-31846
- L’application affiche désormais une Numéro de TVA sur la page d’enregistrement du client lorsque
customer/create_account/vat_frontend_visibility
est activée.
Test
- Les environnements de test ont été mis à niveau vers Redis 6.0.12.
- Supprimé
CacheCleaner::cleanAll();
des tests d’intégration.
- Ajout d’un test pour ce scénario : les utilisateurs administrateurs peuvent modifier un compte client lorsque le client est abonné à une newsletter mise en file d’attente.
- Suppression de la fonction
cache:flush
à partir des tests afin d’améliorer le temps d’exécution de la fonctionCatalog
,CatalogUrlRewrite
, etLoginAsCustomer
modules.
- Les paramètres redondants ont été supprimés et le POST remplacé par GET là où nécessaire dans
\Magento\Logging\Model\ProcessorTest::testLoggingProcessorLogsActionShipping
.
Thème
- La page de connexion du client n’affiche plus ce message lorsque la variable Déplacer le code JS au bas de la page paramètre (Magasin > Configurations > Avance > Développeur > Paramètres JavaScript) et les cookies sont activés :
The store will not work correctly in the case when cookies are disabled
.
- Les liens de compte dans les en-têtes suivent désormais les normes WCAG. Auparavant, les liens de compte dans les en-têtes contenaient des ID dupliqués, ce qui provoquait l’échec de la validation WCAG.
- L’application donne désormais la priorité à la configuration du magasin pour une image de logo plutôt qu’à la configuration de la mise en page. Auparavant, la taille des images du logo était fixe et ne variait pas en fonction du magasin.
- L’application affiche désormais les éléments de page de manière cohérente sur les pages de storefront qui utilisent des thèmes de Magento Open Source standard. Auparavant, tous les styles n’étaient pas appliqués dans le thème vierge. Par conséquent, tous les éléments de page ne s’affichaient pas dans les pages utilisant ce thème. (Par exemple, aucune icône de loupe n’était présente dans le champ de recherche de la page Mes commandes.)
Traduction et paramètres régionaux
- Les crochets ajoutés aux chaînes ne sont plus ignorés lors de la configuration de la traduction intégrée. Auparavant, la variable
escapeHtmlAttr
convertit les crochets en codes d’entité de HTML.
- Les expressions intraduisibles dans l’administration sont désormais traduisibles. (Cette requête de tirage contribue aux efforts continus pour rendre toutes les chaînes d’administration localisables.) GitHub-11175
- Chaînes de texte dans le modèle utilisées pour gérer les modes de paiement stockés (Mon compte > Méthodes de paiement stockées ) sont désormais traduisibles.
- Les courriers électroniques de commande envoyés par l’administrateur utilisent désormais les paramètres régionaux du magasin et non les paramètres régionaux associés au compte de l’administrateur.
Interface utilisateur
- Le pied de page Admin affiche désormais la version correcte du produit.
- La pagination des sources est désormais présente comme prévu lors de la création de l’envoi par l’administrateur.
- Le filtre de grille de produit fonctionne désormais correctement lorsque vous utilisez des attributs de date personnalisés pour filtrer les produits et que la langue de l’utilisateur administrateur est
en_GB
.
- Les mouvements de pincement/zoom fonctionnent désormais comme prévu dans la loupe de galerie d’images de la page de produits sur les appareils iOS.
- La pagination des résultats de recherche de grille de produit Admin commence désormais à la page 1 pour chaque recherche, comme prévu.
- Les anomalies avec l’affichage du panier lors du zoom ont été résolues. Auparavant, les éléments d’affichage se chevauchaient lors du zoom de cette page.
- La page de révision des commandes affichée lors du passage en caisse avec PayPal Express Checkout se charge désormais correctement. Auparavant, le modèle contenait le Mettre à jour la méthode de diffusion qui n’était que partiellement masqué par le script lors du rendu de la page.
- Les étoiles d’évaluation et le texte de révision dans la section Révisions client de la page du produit sont désormais correctement espacés lorsque de longs noms d’évaluation sont présents.
- Les options s’affichent désormais comme prévu dans la liste déroulante Actions des pages Archives des factures, des envois et des notes de crédit.
- L’application affiche désormais une valeur horaire correcte lorsque la variable
datetime
componenttimeOnly
est définie sur oui. GitHub-23157
- Vous pouvez désormais supprimer une mise à jour de mise en page après la création d’un widget sur l’administrateur. Contenu > Widgets. GitHub-29936
- La variable Supprimer la mise à jour de mise en page fonctionne désormais comme prévu sur toutes les mises en page que vous avez ajoutées à partir d’Admin Contenu > Widgets. Auparavant, ce bouton ne fonctionnait sur aucune autre mise en page que la première mise en page sélectionnée lors de l’ajout de plusieurs mises en page. GitHub-30286
- L’application utilise désormais le titre de page défini dans le fichier de mise en page comme titre de page du navigateur pour le fichier de modification du compte client. Auparavant, la variable
Magento\Customer\Controller\Account\Edit
action du contrôleur a appliqué la valeur du titre de page àAccount Information
. GitHub-30724
-
Des cases à cocher permettant aux commerçants de basculer entre l’affichage et le masquage des mots de passe ont été ajoutées à ces pages :
- Connexion client
- Enregistrement de client
- Modification du client (section Modifier le mot de passe )
- Nouveau mot de passe du client GitHub-31557
- Suppression d’un en-tête redondant dans les cellules de grille qui s’affichait lorsqu’un administrateur ajoutait un produit à un ensemble groupé de produits après avoir modifié le jeu d’attributs. GitHub-30911
- L’application affiche désormais une
DateRange
filtre sur la zone Connecté de la variable Client > Connexion page. Auparavant, l’application affichait uneText
filtre. GitHub-30328
- JavaScript a été supprimé des fichiers de modèle et déplacé dans des fichiers distincts afin de réduire les problèmes de rendu sur les pages d’administration. Auparavant, le rendu des pages d’administration n’était pas correct dans les déploiements pour lesquels la minimisation de HTML avait été activée. L'application affichait cette erreur :
An error has happened during application run. See exception log for details
. GitHub-32454
- La variable
dropdownDialog
Le widget charge désormais uniquement les variables déplaçables et redimensionnables.jquery-ui
des morceaux dont il a besoin. Auparavant, il chargeait de grandes quantités de code superflu, ce qui gonflait le temps de chargement et réduisait les performances. GitHub-32810
URL rewrites
- Les réécritures d’URL de produit pour un site web spécifique dans un déploiement multisite sont désormais générées comme prévu une fois que les produits ont été attribués à un site web par mise à jour en masse.
- L’application génère désormais correctement le chemin d’URL pour les catégories enfants lorsque la variable Utiliser la valeur par défaut la case à cocher de la clé URL est activée pour la catégorie parente. Auparavant, le déplacement d’une catégorie dans la hiérarchie générait une erreur
url_path
lors de l’utilisation de différentes clés d’URL dans un déploiement d’affichage multi-magasin. GitHub-16202
- L’application met désormais à jour la variable
url_path
de la catégorie affectée à toute la portée du magasin lorsque vous déplacez une catégorie dans la hiérarchie de catégories. Auparavant, le déplacement d’une catégorie dans la hiérarchie générait une erreururl_path
.
- Les redirections d’URL créées à partir de l’administrateur à l’aide d’une URL personnalisée fonctionnent désormais correctement. Auparavant, GraphQL mettait en cache la réponse d’un GraphQL.
urlResolver
et renvoyait l’ancienne valeur après la mise à jour de la réécriture de l’URL.
- Les réécritures d’URL de produit sont désormais supprimées comme prévu lorsqu’un produit est supprimé d’un site web. GitHub-24184
- Ajout d’une
main_table
à la sectionstore_id
dans leaddStoreFilter
de la fonctionapp/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php
collection. Auparavant, des problèmes se produisaient lorsqu’un événementjoin
est ajouté à la collection sur une table qui contient également unestore_id
colonne . GitHub-31853
- La variable
PUT /V1/products/:sku
Le point de terminaison REST génère à nouveau les réécritures d’URL de produit comme prévu. Auparavant, le point de terminaison a généré à nouveau le produit.url_key
mais pas les réécritures d’URL. GitHub-30316
Utilisateur
- Vous pouvez désormais enregistrer un nouveau rôle d’utilisateur effectif (administrateur) Système > Autorisations > Rôles utilisateur) avec l’intégralité de la variable
Catalog
arborescence sélectionnée à l’exceptionEdit Product Design
( Catalogue > Inventaire > Produits > Modifier la conception de produit). Auparavant, l’application n’enregistrait pas les modifications de produit effectuées par un utilisateur dans ce rôle et affichait cette erreur :Not allowed to edit the product's design attributes
. GitHub-31973
- L’application utilise désormais le modèle de courrier électronique personnalisé correct lors de la génération de courrier électronique pour les nouveaux utilisateurs administrateurs. Auparavant, l’application utilisait l’ancien modèle par défaut, qui omettait les prénoms et les noms de l’administrateur.
- L’application utilise désormais le modèle de courrier électronique correct lors de l’envoi d’un courrier électronique à de nouveaux utilisateurs. Auparavant, l’application utilisait le modèle par défaut même lorsqu’un modèle personnalisé était sélectionné.
VersionCMS
- L’application applique désormais le thème correct à une page CMS après avoir modifié sa mise en page. Auparavant, l’application modifiait le thème affecté sur Luma après avoir enregistré vos modifications de mise en page, quel que soit le thème qui était affecté à la page.
Vidéo
- Des vidéos sont désormais disponibles dans la galerie de produits comme prévu lorsque le regroupement JavaScript avancé est activé et utilisé. GitHub-32501
- Les vidéos YouTube pour les produits simples qui appartiennent à un produit configurable fonctionnent désormais comme prévu. Auparavant, les images étaient classées par identifiant plutôt que par position. Par conséquent, certaines vidéos ont été traitées comme des images. GitHub-29690
Structure de l’API web
- L’API Catalog met désormais correctement à jour les valeurs des options personnalisées d’un produit en ajoutant de nouvelles valeurs et en supprimant les anciennes valeurs. Auparavant, l’API ne supprimait pas les anciennes valeurs.
- POST
/V1/guest-carts/:cartId/billing-address
renvoie désormais l’ID d’adresse sous la forme d’un entier, et non d’une chaîne.
Widget
- Un administrateur peut désormais supprimer toutes les mises à jour de mise en page d’un widget. Auparavant, lorsqu’un widget avait plusieurs mises à jour de mise en page, un administrateur ne pouvait supprimer que la première.
- Cliquez sur le bouton Ajouter au panier sur le widget de produit n’entraîne plus le rechargement d’une page. Auparavant, cliquez sur le Ajouter au panier sur un widget de produit, une page active était rechargée avant l’ajout du produit au panier.
Liste de souhaits
- L’application ne réinitialise plus les paramètres de configuration d’un produit configurable lorsque vous cliquez sur le bouton Modifier l’élément pour le produit à partir d’une liste de souhaits. GitHub-32119
- L’application affiche désormais le prix correct du produit lorsque vous mettez à jour un produit avec une option de fichier personnalisable dans la liste de souhaits. Auparavant, l’application affichait un prix de produit incorrect et n’affichait pas de lien vers le fichier téléchargé.
- Le nombre total de produits d’une liste de souhaits pour un client avec plusieurs listes de souhaits correspond désormais au nombre d’éléments de la liste de souhaits. Auparavant, les produits en rupture de stock étaient inclus dans le nombre total de produits.
- L’application supprime désormais un produit d’une liste de souhaits après l’avoir ajouté à une commande. GitHub-30260
- Les acheteurs peuvent désormais ajouter des produits associés à leur panier à partir d’une liste de souhaits. Auparavant, l’application ajoutait uniquement le produit configurable, et non le produit configurable et ses produits associés lorsqu’un acheteur cliquait sur la variable Tout sélectionner lien de la section Produits associés . GitHub-32274
Problèmes connus
Problème: Erreur JavaScript lorsque reCAPTCHA est désactivé. Si reCAPTCHA est désactivé pour le passage en caisse, le passage en caisse se poursuit, mais l’application affiche une Uncaught TypeError
dans le journal de la console. Ce problème sera corrigé dans une version ultérieure.
Problème: Erreur de stratégie de sécurité du contenu. Le storefront affiche l’erreur suivante dans le journal de la console : The Content-Security-Policy directive frame-ancestors does not support the source expression unsafe-inline
. Les performances de Storefront ne sont pas affectées.
Problème: Anomalies avec crédit PayPal affichage des montants des cartes-cadeaux. Lorsque le crédit PayPal est activé et que plusieurs montants de carte-cadeau sont configurés, si un acheteur modifie le montant de la valeur d’une carte-cadeau, le storefront ne met pas à jour le montant des paiements par versements. Un correctif pour ce problème sera inclus dans Adobe Commerce 2.4.4 et Magento Open Source 2.4.4.
Problème: La variable Ajouter à l’ordre ne fonctionne pas pour les produits ajoutés au panier par SKU.. l’application affiche ce message d’erreur lorsque vous cliquez sur le bouton Ajouter à l’ordre après avoir ajouté des produits à la commande par SKU : An error has happened during application run
. Les produits ne sont pas ajoutés au panier. Solution: utilisez la fonction Ajouter des produits .
Contributions de la communauté
Nous sommes reconnaissants à l’ensemble de la communauté des Magento Open Sources et tenons à saluer leurs contributions à cette version.
L’équipe d’ingénieurs de la communauté Contributeurs Magento tient à jour une liste des principaux individus et partenaires qui contribuent le plus par mois, trimestre et année. Sur cette page Contributeurs, vous pouvez suivre les liens vers leurs relations publiques fusionnées sur GitHub.
Contributions des partenaires
Le tableau suivant présente les contributions des partenaires. Ce tableau répertorie le partenaire qui a contribué à la demande d’extraction, la demande d’extraction externe et le numéro de problème GitHub qui lui est associé (le cas échéant).
Contributions des contributeurs individuels
Le tableau suivant répertorie les contributions des membres de notre communauté. Ce tableau répertorie les demandes d’extraction externes, le numéro de problème GitHub qui y est associé (le cas échéant) et le membre de la communauté qui a contribué à la demande d’extraction.
Configuration requise
Notre pile de technologie est basée sur PHP et MySQL. Pour plus d’informations, voir Configuration requise.
Instructions d’installation et de mise à niveau
Vous pouvez installer Magento Open Source 2.4.3 à l’aide de Compositeur.
Kits d’outils de migration
L’outil de migration des données permet de transférer les données de magasin Magento 1.x existantes vers Magento 2.x. Cette interface de ligne de commande comprend des fonctions de vérification, de suivi de progression, de journalisation et de test. Pour obtenir des instructions sur l’installation, voir Installation de l’outil de migration des données. Envisagez d’explorer le Référentiel de migration des données.
La variable Code Migration Toolkit aide à transférer les extensions et personnalisations de magasin Magento 1.x existantes vers Magento 2.x. L’interface de ligne de commande comprend des scripts pour la conversion des modules et des mises en page Magento 1.x.