Notes de mise à jour d’Adobe Commerce 2.4.6
Adobe Commerce 2.4.6 introduit la prise en charge de PHP 8.2. PHP 8.1 reste entièrement pris en charge, mais la prise en charge de PHP 7.4 a été supprimée. Il comprend des améliorations importantes des performances et de l’évolutivité. Les opérations GraphQL pour les opérations de panier en masse et la réponse de rendu de l’arborescence de catégories ont été optimisées. Cette version introduit le métaphorage de l’extension Adobe Commerce.
Cette version comprend plus de 300 correctifs de qualité et améliorations. Les dépendances du compositeur principal et les bibliothèques tierces ont été mises à niveau vers les dernières versions compatibles avec PHP 8.2.
Autres informations de mise à jour
Bien que le code de ces fonctionnalités soit fourni avec des versions du code de base d’Adobe Commerce, plusieurs de ces projets (par exemple, B2B, Page Builder et 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.
Principales caractéristiques d’Adobe Commerce 2.4.6
Recherchez les points forts suivants dans cette version.
Amélioration de la sécurité
Cette version comprend huit correctifs de sécurité et améliorations de la sécurité de la plateforme.
Aucune attaque confirmée liée à ces problèmes n'a été survenue à ce jour. Cependant, certaines vulnérabilités peuvent être exploitées pour accéder aux informations sur les clients ou prendre le contrôle des sessions d’administrateur. La plupart de ces problèmes nécessitent qu’un attaquant obtienne d’abord l’accès à l’administrateur. Par conséquent, nous vous rappelons de prendre toutes les mesures nécessaires pour protéger votre administrateur, y compris, mais sans s’y limiter, les actions suivantes :
- PLACE SUR LA LISTE AUTORISÉE IP
- Authentification à deux facteurs
- Utilisation d'un VPN
- Utilisation d’un emplacement unique plutôt que
/admin
- Bonne hygiène des mots de passe
Voir le Bulletin de sécurité des Adobes pour consulter la dernière 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 :
-
Les lacunes dans les journaux d’actions d’administration ont été corrigées grâce à un audit plus spécifique des actions dans les vues de grille, les actions de masse et les exportations.
-
La validation reCAPTCHA n’échoue plus lors de l’extraction lorsque des erreurs inattendues se produisent pendant le traitement du paiement. GitHub-35093
-
Nouvelle configuration système pour demander une confirmation par email lorsqu’un utilisateur administrateur modifie son email. Pour réduire la vulnérabilité du site, un nouveau paramètre de configuration système (désactivé par défaut) a été ajouté afin d’exiger une confirmation par email lorsqu’un utilisateur administrateur modifie son email : Stores > Settings:Configuration > Customers > Customer Configuration > Account Information Options > Require email confirmation if an email has been changed. Lorsque cette option est activée, l’application demande une confirmation par courrier électronique chaque fois que l’utilisateur administrateur modifie son adresse électronique. Le module suivant est affecté par cette modification :
Magento_Customer
.
Améliorations de la plateforme
Adobe Commerce 2.4.6 introduit la prise en charge de PHP 8.2. PHP 8.1 reste entièrement pris en charge.
La prise en charge de PHP 7.4 a été supprimée de cette version. Vous ne pouvez pas exécuter Adobe Commerce 2.4.6 sur PHP 7.4.
Adobe Commerce 2.4.6 prend désormais en charge :
-
Compositeur 2.2.x. Le compositeur 1.x a été supprimé.
-
Redis 7.0.x Bien que la compatibilité avec Redis 6.2 soit maintenue, nous vous recommandons de déployer cette version avec Redis 7.0.x, car Redis 6.2 devrait atteindre la fin de vie en 2024.
-
OpenSearch est désormais pris en charge en tant que moteur de recherche par défaut pour les déploiements sur site et cloud d’Adobe Commerce. Il est pris en charge en tant que moteur de recherche indépendant pour Magento Open Source. Cette version prend en charge OpenSearch v2.x et a été testée avec OpenSearch 2.5. Bien que la compatibilité avec OpenSearch 1.x soit maintenue, nous vous recommandons d’utiliser cette version avec OpenSearch 2.x. Vous pouvez installer et exécuter Adobe Commerce et Magento Open Source 2.4.6 avec OpenSearch 2.x à la fois sur le cloud et sur site 🔗.
-
Elasticsearch 8.x Voir Elasticsearch de mise à niveau.
-
MariaDB 10.6 (version LTS). Cette version est toujours compatible avec MariaDB 10.4, mais nous vous recommandons de la mettre à niveau vers MariaDB 10.6.
Autres mises à niveau et remplacements
-
Le schéma DHL a été migré de la v6.2 à la v10.0.
-
Les bibliothèques JavaScript obsolètes ont été mises à jour vers leurs dernières versions et les dépendances obsolètes ont été supprimées. Ces modifications sont rétrocompatibles.
-
La compatibilité PHP 7.4 a été supprimée du code base de Commerce.
-
Les dépendances Symfony ont été mises à niveau vers la nouvelle version de LTS. Les dépendances incluent :
friendsofphp/php-cs-fixer
symfony/console
symfony/event-dispatcher
symfony/finder
symfony/process
web-token/jwt-framework
-
jquery-migrate
a été supprimé de la base de code Commerce. GitHub-21406 -
Mise à niveau de la bibliothèque
jQuery/fileUpload
vers la version 10.32. -
Les composants ZF1 (Zend framework) ayant atteint la fin de vie ont été supprimés du code base. Voir Modifications incompatibles avec l’arrière mises en évidence.
-
Les dépendances Laminas ont été mises à jour pour prendre en charge PHP 8.2.
-
Le module externe de compositeur
laminas/laminas-dependency-plugin
a été supprimé. GitHub-36515 -
Zend_Filter
remplacé parlaminas/laminas-filter
. -
Mise à niveau de
web-token/jwt-framework
vers la version 3.0.5. (dernière version) -
Mise à niveau de
allure-framework/allure-phpunit
vers la version 2.x. -
Mise à niveau de la bibliothèque
Chart-js
vers la version 3.9.1
Améliorations des performances et de l’évolutivité
-
Amélioration des performances pour les opérations affectant de nombreux segments de clients. Les vendeurs peuvent améliorer les performances des opérations impliquant plus de 100 segments de clients en activant un nouveau paramètre de configuration. Le paramètre Real-time Check if Customer is Matched by Segment peut être désactivé si nécessaire afin de réduire le temps de traitement en réduisant la validation de chaque segment client par rapport aux clients. Voir Validation des segments client.
-
Nouveau paramètre de configuration système pour la limitation du nombre de produits affichés dans la grille de produits. Les vendeurs peuvent utiliser le nouveau paramètre de configuration Limit Number of Products in Grid pour améliorer les performances de la grille de produits. Cette limite est configurée par défaut sur 20 000 et affecte uniquement les collections de produits utilisées par les composants de l’interface utilisateur. Limiter le nombre de produits affichés peut améliorer les performances des opérations pour les grilles contenant plus de 200 000 produits. Voir Limiter le nombre de produits dans grid
-
Amélioration des performances d’importation (jusqu’à 100 000 enregistrements par minute). Les vendeurs peuvent utiliser le nouveau point d’entrée de l’API REST
POST /rest/<store_view_code>/V1/import/csv
pour importer des données dans Adobe Commerce. Ce point de terminaison fournit les mêmes fonctionnalités que la fonction d’importation d’administrateur et prend en charge l’utilisation d’un fichier CSV pour créer, mettre à jour et supprimer des produits, des prix de produit et des entités de clients. Voir Importer des données. -
Amélioration des performances de traitement de l’ordre de débit élevé grâce à l’équilibrage de charge. Adobe Commerce 2.4.6 sur les clients de l’infrastructure cloud qui ont un volume élevé de commandes simultanées (1 000 commandes par minute) peut désormais améliorer les performances de traitement des commandes en équilibrant la charge sur leur base de données sur différents noeuds. Les vendeurs peuvent rééquilibrer cette charge en activant les connexions secondaires pour la base de données MySQL et les instances Redis. Voir Traitement de commande de débit élevé
Métaphorage de l’extension Adobe Commerce
Cette version introduit le métapaquet d’extension Adobe Commerce v1.1.0, qui regroupe automatiquement les extensions d’Adobe Commerce sélectionnées avec cette version principale. Les versions de ces extensions incluses dans ce métapackage sont installées lors de l’exécution de composer update
, ce qui simplifie le processus de mise à niveau de ces extensions lors de la mise à niveau vers la dernière version de base. Ces extensions conservent des calendriers de publication indépendants.
Le module Adobe Commerce Extension pour Adobe Commerce 2.4.6 comprend les deux extensions suivantes :
Les futures versions de ce métapackage d’extension contiendront des extensions supplémentaires.
Événements d’Adobe I/O pour Adobe Commerce
Les événements d’Adobe I/O pour Adobe Commerce capturent les événements Commerce et transfèrent les données d’Adobe Commerce vers d’autres systèmes d’Adobe. Les développeurs peuvent créer des applications natives dans le cloud dans Adobe Developer App Builder qui s’abonnent à des événements Commerce, tels que des mises à jour de stock, des modifications d’état de commande et des mises à jour de prix. Les développeurs peuvent utiliser cette fonctionnalité pour exchange des données pour l’orchestration de l’ensemble du parcours d’acheteurs sur leurs systèmes critiques.
Mises à jour de l’accessibilité
Cette version s’est concentrée sur la création d’une expérience de storefront sur Venia (PWA) plus perceptible, exploitable, compréhensible et robuste. Ces améliorations incluent :
- Le libellé de texte visuel du bouton Sign in correspond désormais à son nom accessible. (La bonne pratique recommande que le nom accessible d’un élément d’interface utilisateur commence par le texte du libellé visible.)
- Des noms accessibles descriptifs ont été ajoutés aux boutons dans tout le storefront.
- Des libellés descriptifs verbaux ont été ajoutés aux cases à cocher Has Video dans les filtres de recherche.
- Les utilisateurs de clavier uniquement peuvent désormais accéder à toutes les fonctionnalités de la page sur le storefront. Auparavant, les acheteurs ne pouvaient pas accéder aux liens de sous-navigation en utilisant uniquement des touches.
Intégration d’Adobe Commerce avec Adobe IMS
Les modules Adobe IMS suivants ont été découplés du code de base Adobe Commerce 2.4.6 et sont désormais contenus dans un métappackage distinct :
adobe-ims
adobe-ims-api
admin-adobe-ims
Le nouveau adobe-ims-metapackage
v2.2.0 est fourni avec Adobe Commerce 2.4.6. Aucune fonctionnalité n’a été modifiée dans cette version.
B2B
La fonctionnalité Commandes pour les entreprises est désormais entièrement exposée par l’API GraphQL. Cette version introduit deux schémas GraphQL :
- Le schéma GraphQL du bon de commande couvre les fonctionnalités Achat d’Order Management de l’utilisateur de la société B2B telles que la création, la modification et la suppression de commandes. Voir Commandes (B2B).
- Le schéma GraphQL des règles de bon de commande permet de créer, modifier et supprimer des règles d’approbation, ainsi que de valider manuellement les commandes. Voir Règles d’approbation de commande (B2B).
Cette version comprend plusieurs correctifs de bogues. Voir les notes de mise à jour B2B.
Braintree
- Le bouton Pay Later et les bannières (messages) pour l'Italie et l'Espagne ont été activés pour le Braintree.
- La messagerie PayLater avec PayPal Vault a été activée.
- Ajout de la protection contre les fraudes et des hooks Web ACH. Le point d’extension Web de protection contre les fraudes est déclenché lorsqu’une décision de risque a été prise en Braintree. Le point d’extension web ACH est déclenché lorsque l’état d’un paiement ACH est mis à jour vers
settled
ousettlement decline
.
- Ajout du point d’extension Web LPM (Local payment Methods).
GraphQL
Les performances de GraphQL améliorées incluent :
Amélioration du temps de réponse lors de l’interrogation des catégories avec des autorisations de catégorie activées. Les temps de réponse se sont améliorés lors de l’interrogation de produits dans des catégories pour lesquelles des autorisations de catégorie sont activées et qui contiennent de nombreux groupes de clients ou catalogues partagés. Les modifications de code qui prennent en charge cette amélioration des performances incluent :
- L’opération de résolveur GraphQL a été optimisée.
- Le fournisseur de données ne redéfinit plus les données mises en cache au moment de l’exécution pour chaque nouveau produit en cours de traitement, ce qui a une amélioration des performances.
- Le traitement des autorisations de produit a été optimisé dans le résolveur GraphQL. Les autorisations de produit sont désormais appliquées aux collections de produits par produit.
- Autorisations optimisées lues dans les catalogues partagés lors de la mutation
addProductsToCart
. - Les autorisations de produit ont été optimisées avec des fragments intégrés de produit.
Performances optimisées du rendu de l’arborescence de catégories. La requête categoryList
a été optimisée pour prendre en charge les clients avec un grand nombre de catégories. Les vendeurs qui utilisent cette requête pour rechercher plus de 1 500 catégories avec jusqu’à cinq niveaux de sous-catégories imbriquées remarqueront une amélioration des performances. Le chargement des enfants de catégorie en refactorisant le code a été amélioré en supprimant les appels de méthode inutiles, en améliorant la mise en cache de l’arborescence des catégories et en chargeant les données de catégorie de manière récursive. Les modifications de code qui prennent en charge cette amélioration des performances incluent :
- La récupération des métadonnées des attributs personnalisés pour les modèles de catégorie a été améliorée.
- La récupération des ID de catégorie a été améliorée et les appels
getChildren
ont été réduits. - Le chargement des enfants de catégorie a été amélioré.
Réduction du temps de réponse des requêtes des opérations de panier en masse. Les mutations de produits ajoutés ont été optimisées afin d’améliorer les performances des requêtes lors de l’ajout de jusqu’à 500 produits simples et configurables. Les produits en bundle ne sont pas affectés. Les mutations optimisées incluent addProductsToCart
, addConfigurableProductsToCart
, addDownloadableProductsToCart
, addSimpleProductsToCart
, addVirtualProductsToCart
,addWishlistItemsToCart
et updateCartItems
.
La requête client prend désormais en charge le tri des commandes. L’objet de sortie orders
de la requête customer
contient désormais un champ de tri. Vous pouvez désormais trier les commandes par numéro de commande ou date de création et dans un ordre croissant ou décroissant.
Nouvelles mutations :
deleteCustomer
Page Builder
Le créateur de pages v.1.7.3 est compatible avec Adobe Commerce 2.4.6.
PWA Studio
PWA Studio v.13.0.x est compatible avec Adobe Commerce 2.4.6. Plusieurs améliorations ont été apportées à l’accessibilité. Pour plus d’informations sur les correctifs, voir Versions de PWA Studio. Voir Compatibilité des versions pour obtenir la liste des versions de PWA Studio et de leurs versions principales Adobe Commerce compatibles.
Problème connu
Problème : New Relic n’est actuellement pas compatible avec PHP 8.2. Les déploiements exécutant New Relic peuvent exécuter Adobe Commerce 2.4.6 sur PHP 8.1, mais pas PHP 8.2. Solution : exécutez Adobe Commerce 2.4.6 sur PHP 8.1 jusqu’à ce qu’une nouvelle version de New Relic soit publiée, prenant en charge PHP 8.2. Cette version est prévue pour l’été 2023.
Problèmes résolus
Nous avons corrigé des centaines de problèmes dans le code principal Adobe Commerce 2.4.6. Vous trouverez ci-dessous un sous-ensemble des problèmes résolus inclus dans Adobe Commerce 2.4.6.
Installation, mise à niveau, déploiement
- Le déploiement de contenu statique n’expire plus ou échoue lors de déploiements standard ou compacts avec plusieurs paramètres régionaux et sites web.
- La stratégie compacte ne provoque plus de référence non valide à un domaine externe lors de l’exécution du déploiement de contenu statique (
bin/magento set:static-content:deploy -f --strategy compact
).
- L’exécution de
bin/magento setup:di:compile -vvv
(ou avec les options-v
ou-vv
) renvoie désormais un message informatif sur l’échec. GitHub-35391
- Adobe Commerce ne renvoie plus l’exception suivante lorsque vous exécutez la commande
bin/magento setup:upgrade
dans un déploiement exécutant déjà l’outil de migration de données :PHP Fatal error: Declaration of Migration\Logger\Logger::addRecord(int $level, string $message, array $context = []): bool must be compatible with Monolog\Logger::addRecord(int $level, string $message, array $context = [], ?Monolog\DateTimeImmutable $datetime = null): bool in /var/www/html/vendor/magento/data-migration-tool/src/Migration/Logger/Logger.php on line 34
. GitHub-35604
- La commande
bin/magento setup:db:status
n’échoue plus dans les environnements exécutant MySQL 8.0.29. Auparavant, la sortie de commande indiquait par erreur que le schéma déclaratif était obsolète. GitHub-35671
- La commande
composer install
ne remplace plus les fichiers.gitignore
. GitHub-32888
- L'exécution de
bin/magento sampledata:remove
pour supprimer les exemples de données après la mise à niveau sur Alpine Linux n'échoue plus avec cette erreur :Undefined constant "MagentoHackathon\Composer\Magento\Deploystrategy\GLOB_BRACE
. GitHub-36062
bin/magento setup:upgrade
s’exécute désormais correctement après la première exécution decomposer install --no-dev
. GitHub-36351
- Les exceptions et les entrées de trace de pile d’exceptions sont désormais incluses dans
var/log/exception.log
. GitHub-36054
- Adobe Commerce renvoie désormais une erreur de validation de paramètre lorsque vous utilisez la ligne de commande pour définir une connexion Redis sans mot de passe.
Accessibilité
- Les boutons Proceed to Checkout, Review Order et Place Order du processus de passage en caisse fonctionnent désormais comme prévu avec les entrées clavier.
- L’indication visuelle du focus sur les boutons lors de l’utilisation de TAB ou SHIFT + TAB pour parcourir les contrôles de page fonctionne désormais comme prévu.
Lecteurs d’écran
- Le lecteur d’écran de la page de l’historique des commandes lit désormais la description correcte de l’image.
Les lecteurs d'écran annoncent maintenant :
- Nombre total d’éléments trouvés dans les résultats de recherche comme prévu
- Nom de l’utilisateur connecté lorsqu’un utilisateur se connecte correctement à l’aide des commandes de clavier
- L’en-tête de page des résultats de recherche de produit lit désormais la valeur correcte de l’élément
<title>
- Si les champs d'entrée sont obligatoires
- Correction de l’état actuel des éléments en accordéon (réduits et développés)
- Lorsque le contenu de la page a été actualisé après que l’utilisateur a cliqué sur le bouton Create an account
Lot de produits
- La mise à jour du produit groupé via l’API pour une vue de magasin spécifique ne remplace désormais pas d’autres données de vues de magasin pour le même produit groupé. Auparavant, les titres des options de bundle étaient remplacés par le titre de la première option pour les autres vues de magasin.
- Les produits groupés peuvent désormais être filtrés avec succès à partir de l’administrateur Catalog > Products lors de l’utilisation d’un paramètre régional néerlandais. Auparavant, Adobe Commerce affichait cette erreur lorsque vous tentiez de filtrer sur
Type: Bundle Product
:Something went wrong with processing the default view and we have restored the filter to its original state
. GitHub-35704
- La grille de produits ne génère plus d’exception lorsque les produits regroupés ont un prix spécial supérieur à 1000. Auparavant, lorsque vous recherchiez le produit par SKU ou que vous accédiez à Catalog > Products, Adobe Commerce générait cette erreur :
Non Numeric value encountered
. GitHub-36284)
- Les colonnes des PDF de note de crédit et de facture pour les commandes qui contiennent un mélange de bundle et de produits simples sont désormais restituées correctement. Auparavant, les colonnes étaient déformées ou mal alignées.
- Dans les requêtes GraphQL qui contiennent un fragment
BundleProduct
, l’objetitems.options.product
contient les données comme prévu. Auparavant, l’objet pouvait être nul dans certains cas.
- Les quantités décimales pour les options de bundle sont désormais rendues correctement lorsque Quantity uses decimals est activé. Auparavant, seule la partie entière de la quantité était rendue, et non le composant fractionnel. Par exemple, une quantité de 1,5 a été rendue sous la forme 1.0. GitHub-35964
- Les requêtes de produit GraphQL renvoient désormais uniquement les options de produit groupé dans la portée du magasin interrogé.
- Les produits qui ne sont pas affectés à des catégories mais qui sont des options de produit pour des produits groupés ou groupés sont désormais renvoyés dans les réponses lorsque le paramètre de configuration Allow Category Browsing est activé pour le client qui envoie la requête.
Cache
- Le cache de la page entière n’est plus vidé après l’exécution de la commande, sauf si le produit commandé est en rupture de stock. Auparavant, le cache était purgé pour la catégorie chaque fois qu’une expédition était créée.
- Les données sont maintenant mises en cache avec succès lorsque le cache L2 est configuré et que les données distantes sont partiellement expulsées. Auparavant, après avoir vidé uniquement le cache de données sans hachage de ces données, le nouveau cache n’était pas enregistré tant que les hachages de données existaient.
- Correction de défauts dans
CatalogUrlResolverIdentity
etCmsUrlResolverIdentity
qui empêchaient la mise en cache. Cela a affecté la mise en cache des requêtes d’itinéraire sur plusieurs requêtes.
Panier et passage en caisse
- Les acheteurs peuvent désormais ajouter un article supplémentaire à leur panier lorsque celui-ci contient la quantité minimale du produit simple.
- Les appels d’API REST pour récupérer les données du panier renvoient désormais les mêmes valeurs
grand_total
etbase_grand_total
lorsque la devise de magasin et la devise de base sont identiques. GitHub-34649
- La valeur exportée de Maximum Qty Allowed in Shopping Cart correspond désormais à la valeur par défaut définie dans le paramètre de configuration Admin.
- Adobe Commerce calcule désormais correctement le total général des remboursements des commandes avec une remise sur les frais d’expédition.
- Google reCAPTCHA fonctionne désormais comme prévu pour les commandes de storefront. Auparavant, Adobe Commerce affichait ces erreurs lorsque Google ReCAPTCHA n’était pas sélectionné pour la première fois avant qu’un acheteur ne tente de passer une commande :
ReCaptcha validation failed, please try again
etNo such cart with id = ID
.
- L’actualisation de l’image CAPTCHA honore désormais le paramètre de configuration Admin et n’est pas déclenchée lorsque le paramètre est désactivé. Auparavant, l’actualisation était déclenchée chaque fois que le mode de paiement changeait, que le paramètre soit activé ou désactivé. GitHub-34855
- Adobe Commerce affiche désormais une fenêtre contextuelle de confirmation comme prévu avant de rediriger un acheteur vers la page suivante lorsque l’acheteur modifie la quantité de produits sur la page du panier sans mettre à jour le panier, puis tente d’accéder à la page suivante.
- Les acheteurs peuvent désormais réduire la quantité d’un produit de leur panier après sa diminution dans l’administrateur. Auparavant, Adobe Commerce générait l’erreur suivante lorsqu’un acheteur tentait de réduire la quantité du produit :
The requested qty is not available
. GitHub-35780
- Adobe Commerce ne renvoie plus d’erreur dans la console JavaScript lorsque la quantité de produit dépasse la quantité maximale configurée lors d’un passage en caisse multi-expédition. Adobe Commerce affiche désormais un message d’erreur informatif. GitHub-36184
- La quantité d’articles sur la page du panier n’est plus représentée sous la forme d’un nombre négatif lorsqu’un acheteur utilise la touche Flèche vers le bas de son clavier pour modifier la quantité de produits. GitHub-36299
- Les acheteurs ne peuvent plus ajouter au panier un produit provenant d’une catégorie qui est désormais non autorisée après avoir modifié le groupe de clients auquel appartient l’acheteur. Adobe Commerce vérifie désormais l’accès aux autorisations des groupes de clients pour des catégories spécifiques lorsque les paramètres de configuration des autorisations ont été modifiés.
- Les paniers clients ne sont plus vidés avant la création de la commande par l’administrateur et le contenu du panier est maintenant restauré si la commande est annulée ou abandonnée. Les articles ne sont désormais supprimés du panier qu’après la création de la commande. Auparavant, lorsqu’un utilisateur administrateur tentait de créer une commande sur la page Admin Gérer le panier, le panier était vidé.
- Le mini panier affiche désormais les images de produit correctes après l’exécution de
bin/magento catalog:image:resize
. Auparavant, toutes les images étaient remplacées par l’image d’espace réservé de produit par défaut. GitHub-35535
- L’extraction peut désormais se terminer avec succès lorsque l’adresse de livraison contient un attribut d’extension . Auparavant, Adobe Commerce générait cette erreur :
Object of class Magento\Quote\Api\Data\AddressExtension could not be converted to string
. GitHub-34202
- La mutation
addBundleProductsToCart
n’ajoute plus de produits à un guillemet si une option de produit requise n’a aucune valeur. GitHub-25676
- Adobe Commerce renvoie désormais un message informatif lorsqu’une mutation
addProductsToCart
échoue lors de l’ajout d’un produit au panier avec des autorisations insuffisantes.
- Adobe Commerce ne renvoie plus d’erreur sur la page du panier lorsque la commande rapide est utilisée pour ajouter un produit à une quantité qui dépasse l’inventaire disponible.
- La mutation
setGiftOptionsOnCart
nécessite désormais l’autorisation du client pour les opérations de panier client.
Règle de prix du panier
- Les options d’expédition gratuite des règles de prix du panier définies lors de la création de règles sont désormais appliquées aux commandes comme prévu. Auparavant, les options d’expédition gratuite appliquées lors de la création de la règle étaient ignorées lors du passage en caisse et l’expédition gratuite n’était pas autorisée lorsque la règle était appliquée. GitHub-35013
- La colonne
discount_percent
de la tablesales_order_item
d’un produit est désormais renseignée comme prévu avec le pourcentage de réduction lorsque la quantité de remise de l’article n’est pas définie ou qu’elle est supérieure ou égale à la quantité de l’article de commande. Auparavant, cette colonne n’était pas renseignée lorsqu’une règle de prix de panier était appliquée à ce produit.
Catalogue
- Le widget de liste de produits n’affiche plus de prix incorrects ou mis en cache pour un acheteur connecté. Le prix affiché dans le widget de page d’accueil correspond désormais à l’adresse de l’acheteur et est mis à jour lorsque l’acheteur met à jour l’adresse. Auparavant, le cache du navigateur ne mettait pas à jour les prix des produits sur la page d’accueil en fonction des règles de taxe du groupe de clients.
- La fonction de liste Comparer les produits fonctionne désormais correctement dans un déploiement multisite et dépend d’un site web.
- Adobe Commerce n’affiche plus les données de la page précédente lorsque vous rechargez la page des détails d’un produit. Auparavant, lorsque la page des détails du produit était rechargée, les données du premier onglet étaient fusionnées avec les données nouvellement chargées pendant une fraction de seconde.
- Les catégories comportant des sous-catégories peuvent désormais être développées dans le menu principal sur les appareils mobiles comme prévu. Auparavant, les acheteurs ne pouvaient pas ouvrir ni développer de catégories comportant des sous-catégories dans les déploiements mobiles. GitHub-35329
- Les listes de catégories sont désormais mises à jour comme prévu lorsqu’un produit est affecté à un nouveau site web ou à un nouveau magasin. Auparavant, l’indexeur de prix de produit n’était pas marqué comme non valide et était ensuite redéclenché lors d’une exécution
cron
comme prévu. Par conséquent, l’entrée de prix du produit n’apparaissait pas dans le tableau de l’indice de prix et n’était pas affichée dans le nouveau magasin ou le nouveau site web.
- Le nombre d’inventaire du storefront est désormais précis lorsque le paramètre de configuration Display Out of Stock Products est activé. GitHub-35899
- La page de catégorie n’est plus vide lorsque le paramètre Allow All Products Per Page est activé. GitHub-35900
- L’option de configuration Display Out of Stock Products fonctionne désormais comme prévu lorsqu’elle est activée. Auparavant, tous les produits étaient affichés en rupture de stock sur le storefront lorsque cette option était activée sur l’administrateur. GitHub-35898
- Les clients affectés à un groupe de vente en gros peuvent désormais ajouter un produit groupé à leur panier lorsqu’ils sont autorisés par les autorisations de catégorie. Si cette autorisation n’est pas définie pour un groupe de clients, le paramètre de configuration est prioritaire.
- Le tri des produits par attributs booléens fonctionne désormais comme prévu. GitHub-36390
- Les remises des règles de prix du catalogue ne s’appliquent plus aux options de produits personnalisées à prix fixe, mais uniquement au prix d’origine du produit.
- Les produits associés sont désormais récupérés avec succès sur la page Détails du produit storefront lorsqu’ils sont générés par la règle de produit associée pour les attributs de produit alphanumériques. GitHub-36285
- Les règles de prix du catalogue prennent désormais en compte la portée sélectionnée et s’appliquent uniquement aux produits pour les sites web pour lesquels l’attribut a une valeur d’option correspondant à la règle. Auparavant, la règle ne prenait pas en compte la portée sélectionnée dans les déploiements multisites. GitHub-36049
- Les attributs de couleur et de taille des options d’échantillon sont désormais pré-sélectionnés dans la page des détails du produit lorsqu’un acheteur modifie le produit configurable à partir de la page Mon panier. (La version jQuery 3.x prend désormais en charge le nom du widget
swatchRenderer
, qui est désormais la casse mixte.) Auparavant, l’option d’échantillon n’était pas présélectionnée.
- Les clients sont désormais informés des baisses de prix de produit lorsque le client est abonné à l’alerte de baisse de prix. Auparavant, les notifications de baisse de prix n’étaient pas toujours envoyées en raison de la mise en cache au niveau de l’application.
- Les règles de catalogue basées sur des SKU avec la condition is not one of fonctionnent désormais comme prévu.
- Adobe Commerce ne suppose plus par erreur qu’une catégorie est la catégorie parente d’une autre selon le chemin de la catégorie. Auparavant, lorsque deux catégories étaient adjacentes et qu’un ID de catégorie commençait par l’ID de catégorie d’une autre catégorie, Adobe Commerce supposait que les catégories avaient la même catégorie parente. GitHub-32464
Produits configurables
- Adobe Commerce ne renvoie plus d’erreur lorsqu’un utilisateur administrateur ajoute manuellement des produits à un produit configurable auquel sont déjà affectés de nombreux produits simples. Auparavant, Adobe Commerce affichait cette erreur :
Something went wrong with processing the default view and we have restored the filter to its original state
.
- Les acheteurs ne peuvent plus ajouter de produits configurables avec une quantité vendable de 0 à leur panier dans les déploiements où les commandes en arrière sont désactivées. Adobe Commerce indique désormais que le produit est en rupture de stock. GitHub-35319
- La création d’un produit en important un produit configurable avec de nombreuses options d’une vue de magasin différente entraîne désormais une copie exacte du premier produit, comme prévu. Auparavant, l’ordre de tri des options configurables du nouveau produit était incorrect et les titres n’étaient pas traduits dans les paramètres régionaux de la nouvelle vue de magasin dans les déploiements avec plusieurs paramètres régionaux et vues de magasin. GitHub-35200
- Les produits configurables avec tous les produits enfants en rupture de stock sont désormais affichés en rupture de stock sur le storefront.
- Les SKU et noms de produits configurables s’affichent désormais avec précision. Auparavant, le nom et les SKU s’affichaient comme non définis après le déplacement d’un groupe d’attributs au-dessus du groupe Détails du produit sur Stores > Attribute set. GitHub-36309
Coupons
- Une logique de validation a été ajoutée au workflow Gestion des codes de bon afin d’appliquer les paramètres de code de bon lors de la génération des bons. Auparavant, la génération du code de coupon ignorait le paramètre Code Length lorsque la valeur Coupon Qty était supérieure à 2 500.
- Les points de récompense sont maintenant ajoutés au compte d’un client comme prévu lorsqu’un coupon de récompense est appliqué lors du passage en caisse avec le mode de paiement PayPal Express.
- Vous pouvez maintenant appliquer un code de bon lors de la création de la commande par l’administrateur lorsque la règle de prix du panier a un poids en tant que condition. Auparavant, les codes de bon n’étaient pas définis si d’autres champs n’étaient pas sélectionnés pour le produit. GitHub-36271
- Vous pouvez désormais filtrer les rapports sur les coupons selon plusieurs règles de prix de panier. GitHub-36272
- Les options personnalisées sont désormais appliquées et enregistrées lorsqu’un utilisateur administrateur appuie sur Enter lors de la configuration d’un produit avec des options personnalisées. Auparavant, vous pouviez sélectionner des options et ajouter le produit à une commande, mais les options n’étaient pas enregistrées et l’utilisateur administrateur était invité à sélectionner à nouveau les options de produit. GitHub-35284
- Les codes coupon peuvent désormais être exportés au format XML Excel. Auparavant, le fichier généré ne contenait pas tous les codes de bon sélectionnés, mais uniquement autant d’éléments que les éléments sélectionnés dans les éléments par sélecteur de page.GitHub-36073
cron
- La tâche cron
catalog_index_refresh_price
s’exécute désormais correctement. Auparavant, Adobe Commerce consignait cette erreur lors de l’exécution de cron :report.ERROR: Cron Job catalog_index_refresh_price has an error: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
.
Devise
- Un espace manquant entre les symboles de devise et les prix personnalisés a été ajouté aux prix des produits storefront et Admin. La condition et l’expression regex appropriées ont été ajoutées pour permettre un NBSP personnalisé dans les symboles de devise. Par exemple, IDRx 105.00 s’affichait auparavant sous la forme IDRx105.00.
Segment de client
- Le filtre Oui/Non sur la grille Segments de client administrateur lors de la création d’une nouvelle règle de prix de panier fonctionne désormais comme prévu.
- Adobe Commerce n’envoie plus d’emails en double après la création d’une commande à partir de l’administrateur.
- Les emails des commandes d’administration ne sont plus envoyés lorsque le paramètre Email order confirmation est désactivé. GitHub-36256
- Les options d’image ne s’affichent plus sous forme d’annotation d’HTML dans l’avis de crédit, la confirmation de commande et les e-mails de facture client (modèle par défaut) pour les produits avec des options personnalisées.
Frameworks
- Les utilisateurs administrateurs peuvent désormais ouvrir la page Admin Store > Configuration lorsqu’aucun pays n’est défini dans le paramètre Pays de l’Union européenne (Stores > Configuration > General > Country options > European Union Countries). Auparavant, lorsqu’un utilisateur administrateur tentait d’ouvrir cette page, Adobe Commerce envoyait cette erreur :
TypeError: explode(): Argument #2 ($string) must be of type string, null given in /var/www/php/folder/vendor/magento/module-config/ViewModel/CountryFilter.php:46
. GitHub-35901
- Les dépendances
jquery.cookie
fonctionnent désormais comme prévu avec les dépendances JavaScript. Auparavant, vous ne pouviez pas utiliser d’alias pourjquery/jquery.cookie
. GitHub-35913
- La commande
bin/magento i18n:collect-phrases
inclut désormais le texte<title>
dans le fichier CSV exporté. GitHub-35462
Magento\Framework\Code\Reader\ArgumentsReader::getParentCall()
prend désormais en charge les arguments constructeur nommés. Vous pouvez désormais appeler une fonction en définissant les paramètres par leur nom.
- Les erreurs sont désormais consignées comme prévu dans le fichier
exception.log
. Auparavant, bien que les erreurs aient été consignées dans le fichiersystem.log
, elles n’étaient pas consignées dansvar/log/exception.log
.
- Les vendeurs ont désormais la possibilité de spécifier un fournisseur SMTP externe personnalisé. GitHub-26104
- Les intégrations OAuth peuvent désormais être réautorisées comme prévu sur les déploiements exécutant Adobe Commerce 2.4.3-p2. Auparavant, la réautorisation échouait avec cette erreur :
The attempt to post data to consumer failed due to an unexpected error. Please try again later
. Adobe Commerce a également tenté de déchiffrer des valeurs non chiffrées. GitHub-35313
- Le paramètre
rowId
correct est maintenant transmis lorsque la catégorieurlKey
est enregistrée pour les catégories comportant des catégories enfants. Auparavant, lecategoryId
incorrect était transmis lors de l’enregistrement de la catégorieURLKey
.
- Le code d’attribut de produit
event
a été ajouté à la liste des codes d’attributs de produit réservés, ce qui élimine les erreurs associées à l’utilisation d’un attribut portant ce nom sur le storefront. Auparavant, l’application générait cette erreur sur les pages Détails du produit et Recherche/Liste de produits lorsqueevent
était utilisé :report.CRITICAL: Error: Call to a member function getStatus() on string in /home/mer33515/public_html/ee24develop/magento2ee/app/code/Magento/CatalogEvent/Observer/ApplyIsSalableToProduct.php:23
.
- Les messages d’erreur de validation du storefront qui se produisent lors du placement de la commande sont désormais affichés de manière cohérente. Auparavant, les messages apparaissaient, s’effondraient, puis réapparaissaient. GitHub-35651
- Les clients AMQP n’échouent plus en raison d’une fonction
trim()
obsolète sur les déploiements exécutant PHP 8.1. Auparavant, lorsque le consommateur AMQP démarrait après l’installation, Adobe Commerce envoyait cette erreur :Deprecated Functionality: trim(): Passing null to parameter #1 ($string) of type string is deprecated in .../vendor/magento/framework-amqp/Config.php on line 143
. GitHub-35380
- La méthode
getFilteredTimerIds
fonctionne désormais comme prévu. La classeMagento\Framework\Profiler\Driver\Standard\Stat
est désormais compatible avec PHP 8.1. Auparavant, Adobe Commerce lançait une exception lorsque cette méthode était appelée. GitHub-35307
- Suppression de la dépendance à la bibliothèque
imagemin-svgo
.
- Le processus de modèle de minimisation traite désormais correctement les commentaires consécutifs lorsque le premier commentaire commence par
//
. GitHub-34880
- Correction d'une requête de base de données émise par le module
BundleGraphQl
qui renvoyait cette erreur :"debugMessage": "Notice: Undefined offset: 16 in vendor/magento/module-bundle-graph-ql/Model/Resolver/Options/Collection.php on line 130"
.GitHub-34991
Correctifs généraux
- Adobe Commerce affiche désormais une période précise lorsqu’un utilisateur administrateur sélectionne l’option Last 24 Hours dans le tableau de bord des statistiques d’administration. Auparavant, Adobe Commerce affichait une période incorrecte. Cela s’est produit car le fuseau horaire de la base de données restait inchangé.
- Il est désormais possible de générer des notes de crédit pour des nombres entiers et décimaux. Auparavant, seules les quantités entières étaient prises en charge.
- La règle de validation d’entrée du code postal du client pour le type numérique uniquement fonctionne désormais comme prévu dans le champ Edit Customer Address (Store > Attribute > Customer Address). Auparavant, les informations d’adresse du client étaient enregistrées sans validation de code postal.
- Les utilisateurs administrateurs dont l’accès est limité à un site web peuvent désormais se connecter à l’administrateur à l’aide de la fonction Se connecter en tant que client .
- Les comptes clients partagés à l’échelle mondiale contiennent désormais des adresses qui sont validées par rapport à la liste des pays autorisés pour le site web actuel et enregistrées avec succès. Auparavant, ces comptes étaient incorrectement validés par rapport aux pays autorisés du site web où le client était enregistré.
- Les chemins de navigation de la hiérarchie de pages CMS ne s’affichent plus lorsque Enable Hierarchy Functionality est désactivé. Auparavant, les chemins de navigation s’affichaient. Lorsque les acheteurs cliquaient dessus, une page 404 s’affichait. GitHub-35513
- La suppression d’un produit de tous les sites web via l’administrateur ne provoque plus l’erreur suivante :
SQLSTATE[42000]: Syntax error or access violation
. GitHub-35133
- Les clients qui dépassent le nombre maximal de tentatives de connexion ayant échoué peuvent désormais se connecter après la réinitialisation du mot de passe. GitHub-34981
- Le composant des lignes dynamiques se comporte désormais comme prévu lorsqu’un utilisateur administrateur ajoute un nouvel élément. Auparavant, le composant de ligne se comportait incorrectement lorsqu’un nouveau produit simple était ajouté à un produit groupé. GitHub-34850
- Correction des fautes de frappe et grammaire incorrectes dans le fichier
app/code/Magento/Backend/etc/menu.xsd
.
- Le fichier
app/code/Magento/Authorization/README.md
a été mis à jour pour décrire précisément la création de la table.
- La méthode
recordLogin
a été mise à jour afin de définir les valeurs de connexion sur le modèle utilisateur et de conserver les valeurs correctes dans les champslogdate
etlognum
de la tableadmin_user
. Auparavant, les tentatives de connexion pour les utilisateurs administrateurs mis à jour n’étaient pas enregistrées.
- Les modèles de problèmes GitHub ont été convertis en formulaires pour les problèmes d’expérience des développeurs et les demandes de fonctionnalités.
- L’attribut du client
Is required
est désormais correctement mis en oeuvre par portée du site web pour le formulaire de modification du client administrateur.
- Le champ Grid Filter Condition Type des attributs de l’adresse du client et de l’adresse du client n’est plus visible sur la page de modification des attributs lorsque le paramètre Use in Filter Options est désactivé.
- Adobe Commerce affiche désormais un message d’erreur informatif si un commerçant ne parvient pas à saisir une valeur d’attribut de SKU facultative lors de la création d’un produit. Auparavant, l’application renvoyait cette exception lorsque l’attribut était facultatif :
Deprecated Functionality: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/mg244/project-community-edition/vendor/magento/module-eav/Model/Entity/AbstractEntity.php on line 932
. GitHub-35810
- Le filtre Show my quotes sur la page My Quotes fonctionne désormais comme prévu. Auparavant, les résultats du filtre comprenaient des guillemets d’autres utilisateurs administrateurs.
Cartes cadeau
- Le montant des produits de la carte-cadeau reste désormais le même que celui spécifié dans un fichier CSV lors de l’importation. Les contrôles des options existantes ont été ajoutés et les anciennes valeurs sont désormais mises à jour en fonction d’une clé unique. Auparavant, les montants des cartes-cadeaux étaient doublés lorsque les cartes-cadeaux étaient importées plusieurs fois.
Placement de cadeau
- Le prix de l’emballage cadeau s’affiche désormais comme prévu dans le bloc de résumé de commande lorsque l’emballage cadeau a été appliqué au niveau de la commande à une commande qui contient des produits physiques et virtuels. Auparavant, Adobe Commerce n’affichait pas le prix d’emballage du cadeau.
GraphQL
Types
qui implémentent plusieurs interfaces dans le code GraphQL peut désormais être séparé par un signe&
ainsi que,
conformément à la spécification@doc
de GraphQL.
- La mutation
setShippingAddressesOnCart
prend désormais en charge la définition des codes de région numériques commeregion
. Auparavant, cette mutation fonctionnait incorrectement pour les valeurs numériques de code de région.
- La requête
products
renvoie désormais uniquement les révisions associées à la portée spécifiée. Auparavant, les requêtes renvoyaient des révisions de tous les magasins.
- Les autorisations de catégorie sont désormais respectées lors des demandes GraphQL.
- La requête
customer
filtre désormais correctement les commandes avec une plagefrom
etto
spécifiée. GitHub-31537
- La requête
product
renvoie désormais les données de catégorie correctes dans l’agrégation. Auparavant,attribute_code.category_uid
renvoyait la valeur decategory_id
au lieu decategory_uid
.
- La requête
customerOrders
ne renvoie plus d’erreur\"model\" value should be specified
. GitHub-35852
- La requête
customer
filtre désormais les commandes en fonction de la portée. Vous pouvez maintenant spécifier si la requête doit filtrer les commandes par magasin, site web ou globalement.
- La requête
categoryList
renvoie désormais un nombre de produits précis pour les catégories parentes ancrées et non ancrées. Le nouvel attributis_anchor
a été ajouté à la liste des colonnes sélectionnées de la collection de catégories. Auparavant, les demandes renvoyaient un nombre de produits égal à 0. GitHub-36300
- La mutation
generateCustomerTokenAsAdmin
fonctionne désormais comme prévu lors de la création d’un jeton pour se connecter à un magasin autre que le magasin par défaut dans un déploiement multi-magasin. GitHub-35084
- La mutation
createEmptyCart
renvoie désormais une exception comme prévu lorsqu’un jeton expiré est utilisé. GitHub-26112
- Les messages d’erreur de requête de panier ont été rendus plus informatifs. GitHub-34546
- Les données d’agrégation dans la réponse d’une requête
products
incluent désormais les valeurs correctes pour l’attribut de type de prixattribute_code
etlabel
. GitHub-28878
- La requête
products
renvoie des informations de catégorie comme prévu lorsque le préfixe de base de données a une valeur non nulle. Auparavant, il renvoyait unInternal server error
. GitHub-36117
- Correction du type de retour pour la méthode
getCustomerIsGuest
. GitHub-29529
- Le module externe
Magento\CatalogGraphQl\Plugin\DesignLoader
a été restructuré.
- Le rechargement du panier n’est désormais déclenché qu’une seule fois comme prévu lorsque le panier est initialisé par des mutations GraphQL. Auparavant, le chargement du panier déclenchait une revalidation inutile du panier par rapport à l’inventaire des stocks, qui consommait des ressources importantes à chaque chargement du panier.
- Ajout du type
gift_message
auOrderItemInterface
. GitHub-29418
- Les options de produit renvoyées dans les réponses GraphQL incluent désormais uniquement les produits figurant dans le catalogue auquel appartient l’utilisateur. Si l’utilisateur appartient à un catalogue partagé, seuls les produits des catalogues partagés sont renvoyés. Si l’utilisateur est un invité ou ne fait pas partie d’un catalogue partagé personnalisé, seuls les produits du catalogue public sont renvoyés.
Google ReCAPTCHA
- Une erreur reCAPTCHA dans le fichier
var/log/exception.log
pour la connexion administrateur reCAPTCHA Google V3 a été résolue et aucun message d’erreur n’est consigné. Auparavant, l’erreur suivante était générée toutes les quelques secondes lorsqu’un utilisateur administrateur configurait ses paramètres Configuration > Security > Google reCAPTCHA Admin Panel :main.ERROR: Can not resolve reCAPTCHA parameter. {"exception":"[object] (Magento\Framework\Exception\InputException(code: 0): Can not resolve reCAPTCHA parameter. at /home/xxxxxxx/public_html/vendor/magento/module-re-captcha-ui/Model/CaptchaResponseResolver.php:25)"} []
. GitHub-34975
Image
- Mise à jour des recommandations relatives à la taille du logo pour le bon de réception du PDF.
Import/export
- L’importation d’un produit avec la même clé d’URL numérique qu’un produit existant, mais sans son caractère alphabétique terminal, ne provoque plus d’erreur de validation lorsque l’élément Product URL Suffix est défini sur vide dans l’administrateur.
- La commande
bin/magento app:config:import
importe désormais correctement le contenu d’un fichierconfig.php
lorsqu’il contient certaines expressionscron
. Auparavant, l’importation échouait avec cette erreur :Import failed: Notice: Trying to access array offset on value of type null in [..]/vendor/magento/module-config/Model/Config/Backend/Currency/Cron.php on line 66
. GitHub-31428
- L’exportation complète fonctionne désormais correctement lorsque AWS S3 est utilisé comme stockage à distance. Auparavant, l’exportation échouait en raison de la taille du fichier chargé.
- L’état du produit est désormais importé correctement lorsque des colonnes de données d’inventaire dans le fichier CSV sont manquantes. Auparavant, après l’importation du produit, la source par défaut était automatiquement affectée au produit, sa quantité était définie sur zéro et son état était répertorié comme en rupture de stock lorsque des colonnes de données d’inventaire dans le fichier CSV étaient manquantes.
- L’importation de valeurs de tarification avancée fournit désormais le nombre correct pour les nouveaux enregistrements et les enregistrements mis à jour lorsque l’importation inclut plus de 100 enregistrements. Auparavant, le message de succès d’importation fournissait un mauvais comptage.
- Les fichiers CSV exportés contiennent désormais des chemins d’accès corrects aux noms de catégorie enregistrés dans plusieurs langues. Un identifiant de magasin a été ajouté pour la collecte de catégories. Auparavant, les fichiers exportés contenaient des chemins d’accès mixtes avec différentes langues au lieu d’un chemin de catégorie dérivé de la vue de magasin par défaut.
- La mise à jour des options personnalisées d’un produit dans une vue de magasin spécifique via l’importation se termine désormais correctement. Auparavant, une erreur de serveur interne était générée si une ligne liée au produit était fractionnée en plusieurs lots.
- Le service d'import
Fixer.io
fonctionne désormais comme prévu. Les taux de change sont maintenant importés avec succès. GitHub-36010
Index
- L’indexeur
batch_size
de l’indexcatalogpermissions_category
est désormais remplacé par la valeur fournie dans le fichierenv.php
comme prévu. Auparavant, une faute de frappe dans le chemin de remplacement de l’indexeurbatch_size
empêchait de modifier la taille du lot en valeur fournie dansenv.php
. GitHub-652
- La réindexation des prix s’exécute désormais correctement lorsque le catalogue contient des produits en bundle ne sont attribués à aucun site web. Auparavant, l’erreur suivante se produisait lors de l’exécution de l’index de prix des produits :
Warning: Undefined array key <bundel product id > in vendor/magento/module-bundle/Model/ResourceModel/Indexer/Price/DisabledProductOptionPriceModifier.php on line 117
. GitHub-35796
Infrastructure
- Ajout de l’assainissement des valeurs
DATE
etDATETIME
dans les vidages de base de données pour la prise en charge d’Adobe Commerce. Auparavant, les champs de type datetime n’étaient pas assainis pour les tables de clients/devis/commandes dans la table de sauvegarde de la base de données.
- La fonction
escaper.js
escapeHtml
convertit désormais le caractère spécial esperluette (&) en"$amp;"
par la règleInnerHtml
. Cette solution générique résout les problèmes de conversion des références de caractères et de caractères spéciaux dans la zone de saisie du titre et enregistre la valeur exacte lorsqu’elle est insérée. Auparavant, les esperluettes (&) étaient incorrectement codées dans les noms de noeud dans la hiérarchie de contenu.
- Les problèmes avec le module externe
colinmollenhour/php-redis-session-abstract
et PHP 8.1 ont été résolus. GitHub-35634
Galerie de médias
- La galerie multimédia héritée est désormais désactivée par défaut. Auparavant, Enable old Media gallery était défini sur Yes.
- La nouvelle galerie de médias a été optimisée afin d’améliorer le chargement de l’arborescence des répertoires dans la page des catégories.
Journalisation
- Vous pouvez désormais générer des rapports système pour des fichiers journaux de 0 octets. Auparavant, Adobe Commerce générait une erreur lors de la génération d’un rapport pour une collection de fichiers journaux lorsqu’un ou plusieurs fichiers étaient vides.
Commande
- La page Note de crédit de commande client Admin affiche désormais le total général correct pour les commandes créées avec le crédit de magasin et plusieurs factures. Auparavant, le calcul du total général était incorrect et l’utilisateur ne pouvait pas générer d’avoir.
- Le préfixe de commande transmis dans le script d’installation est désormais correctement ajouté à l’identifiant de commande.
- La page Détails de la commande se charge désormais correctement lorsque la commande contient un produit avec une longue valeur de texte personnalisé. Auparavant, la page des détails de la commande ne se chargeait pas et la valeur de la colonne
sales_order_item.product_options
n’était pas stockée correctement si un produit contenait une valeur longue pour une option personnalisée de texte.
- L’état de la commande Storefront est désormais précis pour les commandes partiellement remboursées. Auparavant, une commande restait dans l’état de traitement après l’expédition lorsqu’un remboursement partiel était appliqué. GitHub-35528
- Le groupe de clients est désormais représenté avec précision sous la forme Non connecté pour une commande créée par un utilisateur invité. Auparavant, le groupe de clients était NULL dans les résumés des commandes d’invités, ce qui affectait les emails de confirmation et l’exportation des commandes. GitHub-35440
- Un état de Closed est désormais attribué aux commandes virtuelles comme prévu après l’émission d’une note de crédit et le remboursement du client. Auparavant, les produits virtuels s’affichaient sous la forme Complete dans la liste déroulante État , mais Closed dans le pied de page des commentaires de commande lorsque le commentaire était ajouté à partir de l’administrateur. GitHub-35283
- Les invités peuvent désormais passer des commandes pour des produits dont la quantité est inférieure à un et la quantité du produit est désormais strictement définie sur
float
. Auparavant, comme la quantité du produit était strictement définie surint
, les commandes pour une quantité inférieure à un échouaient avec ce message :Some of the products are disabled
. GitHub-36060
- Les remboursements de livraison sont désormais correctement calculés lorsque l’option de configuration Apply discount on prices est définie sur including taxes.
- Les grilles de facture, d’envoi et de note de crédit sont désormais mises à jour de manière asynchrone une fois les commandes archivées.
- Les commandes en double ne résultent plus de requêtes GraphQL identiques et simultanées. Les guillemets sont désormais verrouillés pendant 10 secondes au maximum pour empêcher la création de commandes en double, et la deuxième requête échoue avec ces erreurs :
The cart isn't active
ouThe order has already been placed and is currently processing
. Cette valeur de verrouillage peut être configurée via di pour le paramètreMagento\Quote\Model\PlaceOrderMutex
classlockWaitTimeout
. GitHub-36274
- L’ajout d’un commentaire à un ordre archivé ne le renvoie plus à la grille des commandes non archivées tout en conservant son état archivé.
- Les valeurs des attributs de la société s’affichent désormais comme prévu dans les sections des adresses de facturation et de livraison du workflow de passage en caisse. Auparavant, les attributs de société ne s’affichaient pas correctement sur la page des détails de la commande, car les magasins n’étaient pas correctement définis lors de la création de la commande. Les valeurs d’attribut n’étaient stockées correctement que lorsque la propriété Show Company a été définie sur optional pour Main Website dans le cadre de déploiements multi-magasins.
- La valeur
customer_address_id
est maintenant définie comme prévu pour une nouvelle adresse de facturation lorsque la case My billing and shipping address are the same est cochée. Une condition supplémentaire a été introduite pour déterminer si l’adresse de facturation est identique à l’adresse de livraison avant de définir l’identifiant de l’adresse du client pour l’adresse de livraison.
- Les problèmes de simultanéité liés à l’emplacement des commandes ont été résolus. Auparavant, si deux commandes étaient passées à partir de navigateurs différents au même moment, ou presque au même moment, les deux commandes se voyaient attribuer le même identifiant de commande. GitHub-35833
- Le placement d’une commande à facturation automatique pour un produit gratuit lorsque l’indexation asynchrone est activée fonctionne désormais comme prévu. Aucune entrée n'est ajoutée à la table
sales_order_grid or sales_invoice_grid
pour ces commandes. Auparavant, Adobe Commerce lançait une exception car l’application tentait d’indexer les grilles pendant le placement de la commande au lieu de dépendre decron
. GitHub-36334
Page Builder
- Vous pouvez désormais utiliser la fonction de glisser-déposer du Créateur de pages pour importer en bloc des images dans la galerie.
- Les problèmes liés à la règle CSS du curseur du Créateur de pages ont été résolus. GitHub-34527
- Les attributs
Dropdown
,Text area
etText field
sont désormais disponibles dans la liste des attributs de produit Page Builder. Auparavant, seuls les attributsDropdown
etText area
étaient disponibles.
Paiement
- Le mode de paiement DCO n’est plus rendu sur le workflow de paiement du storefront lorsque la DCO est exemptée pour le pays spécifié dans les adresses d’expédition et de facturation. Auparavant, les paramètres de configuration d’administration de cette fonctionnalité n’étaient pas implémentés.
- Les informations de paiement du coffre-fort ne s’affichent plus dans la section Paiement du workflow de création de commande de l’administrateur si l’acheteur n’a pas enregistré de jeton. GitHub-33954
- Les prix personnalisés ne sont plus doublés après l'application d'une remise par règle de prix du panier. GitHub-35154
- Le nouvel état de la commande en attente est désormais honoré comme prévu lorsqu’une commande est passée à l’aide du mode de paiement Achat de sous-total zéro .
- Les paramètres de messagerie des invités sont désormais respectés lors de la création de la commande pour un acheteur invité avec PayPal Express via GraphQL. Auparavant, l’adresse électronique définie était remplacée par l’adresse électronique définie dans le compte PayPal.
Braintree
- Les identifiants de commande sont désormais ajoutés aux demandes de règlement pour les transactions de paiement.
- Adobe Commerce ne renvoie plus l’erreur suivante lorsqu’un commerçant clique sur Reports > Braintree Settlement :
Error: Undefined constant Braintree\PaymentInstrumentType::ANDROID_PAY_CARD in /var/www/html/vendor/paypal/module-braintree-core/Ui/Component/Report/Listing/Column/PaymentType.php:49
. GitHub-35434
- La requête
customerPaymentTokens
ne renvoie plus de jetons de Braintree lorsque la coffre est désactivée sur l’administrateur.
- Le bouton et les bannières Pay Later ont été activés pour l'Italie et l'Espagne.
- Les utilisateurs administrateurs peuvent désormais créer une commande ou une réorganisation lorsque le mode de paiement du Braintree est activé. Auparavant, Adobe Commerce générait cette erreur :
report.CRITICAL: Error: Call to a member function getMethodInstance() on null in /app/vendor/paypal/module-braintree-core/Block/Form.php:174
.
- Le passage en caisse avec le mode de paiement du Braintree se termine désormais correctement lorsque Braintree PayPal est activé et Enable Card Payments est désactivé. Auparavant, la barre de progression n’était jamais résolue et Adobe Commerce affichait cette erreur de console :
adapter.js:66 Uncaught TypeError: Cannot read properties of undefined (reading 'clientToken')at Object.getClientToken (adapter.js:66:66)
. GitHub-35961
- La protection anti-fraude, les crochets web des méthodes de paiement locales et de paiement de l’acronyme ACH ont été mis en oeuvre. Le point d’extension Web de protection contre la fraude N’est déclenché que si une décision de risque a été prise en Braintree. Le point d’extension web ACH n’est déclenché qu’après la mise à jour d’un paiement ACH sur
settled
ousettlement decline
.
- Les champs de configuration Tagline et Layout ont été supprimés de tous les boutons PayPal de la section Style d’administration.
- L’option de mode de paiement Braintree Vault reste sélectionnée dans le workflow de paiement lorsqu’un acheteur met à jour son adresse de facturation. Auparavant, le mode de paiement était désélectionné lorsque l’acheteur désélectionnait le bouton My billing and shipping address are the same.
- Les éléments de ligne sont maintenant transmis pour les transactions PayPal lorsque le paramètre de configuration Send Line Items est activé à partir de l’administrateur.
- La logique de validation sur le champ de méthode de paiement ACH Account Number prend désormais en charge le texte de quatre à 17 chiffres.
- La requête
customerPaymentTokens
ne renvoie plus de jetons de Braintree lorsque la coffre est désactivée de l’administrateur.
- Les utilisateurs administrateurs peuvent désormais créer une commande ou une réorganisation pour les clients lorsque le mode de paiement du Braintree est activé. Auparavant, Adobe Commerce envoyait cette erreur :
report.CRITICAL: Error: Call to a member function getMethodInstance() on null in /app/vendor/paypal/module-braintree-core/Block/Form.php:174
- Les acheteurs peuvent désormais utiliser le mode de paiement du Braintree dans les vitrines où Enable Card Payments a été désactivé. Auparavant, Adobe Commerce générait cette erreur JavaScript :
_adapter.js:66 Uncaught TypeError: Cannot read properties of undefined (reading 'clientToken')at Object.getClientToken (adapter.js:66:66).
Performances
- L’indexeur de prix supprime désormais les données obsolètes comme prévu après le remplacement des enregistrements lors de la réindexation partielle des catalogues volumineux. Auparavant, le processus de réindexation supprimait les enregistrements obsolètes avant de les remplacer, ce qui entraînait la disparition temporaire des produits du storefront. GitHub-35616
- Les performances de la commande
bin/magento/setup:upgrade
ont été améliorées. Auparavant, cette commande recréait les déclencheurs de la base de données, ce qui entraînait un temps d’arrêt important lors de l’exécution de la commande. En outre, les indexeurs n’ont pas rétabli le mode planifié et sont restés en mode d’enregistrement. GitHub-33386
- La mise à jour des prix des niveaux par l’API s’exécute désormais plus rapidement. Auparavant, la mise à jour des prix des niveaux générait des requêtes
SELECT
inutiles, ce qui retardait l’exécution lorsque de nombreux groupes de clients étaient affectés à un produit.
- Le chargement des pages qui incluent la liste des produits du widget de catalogue a été optimisé. Auparavant, les attributs non globaux étaient chargés directement à partir de la base de données.
Rapports
- Le rapport Journal d’administration affiche désormais une valeur Value before change exacte lorsqu’une règle de catégorie est mise à jour.
- Le rapport Total de la commande des dates et à s’affiche désormais correctement après sélection dans le sélecteur de date.
- La constante
ANDROID_PAY_CARD
deBraintree/Ui/Component/Report/Listing/Column/PaymentType.php
a remplacéGOOGLE_PAY_CARD
. Ceci résout les problèmes liés au rapport du Braintree.
Autorisations de marchandisage de retour (RMA)
- Le champ de commentaire RMA (Orders > Return) ne contient plus d’espace blanc redondant. (Les balises
<textarea>
et<?php
se trouvent désormais sur une seule ligne.
- La case à cocher Use Config Settings du champ Enable RMA enregistre désormais sa valeur comme prévu lorsqu’un produit est enregistré.
Révisions
- Les utilisateurs administrateurs disposant d’un accès limité à une portée spécifique peuvent désormais supprimer les révisions de produits comme prévu.
Rôles
- Ajout d’une ACL manquante pour Stores > Configuration > Services > OAuth. Auparavant, vous ne pouviez pas définir l’accès à ce paramètre de configuration OAuth lors de la configuration des autorisations de rôle.
Rechercher search-heading
- Les recherches de chaînes entre guillemets fonctionnent désormais comme prévu lorsque le paramètre de configuration Minimum Terms to Match est activé. Auparavant, Adobe Commerce générait cette erreur :
{"error":{"root_cause":[{"type":"parsing_exception","reason":"[match_phrase] query does not support [minimum_should_match]' ...
.
- Le filtre de recherche Point d’inscription pour les enregistrements de clients sur les grilles de clients des commandes client fonctionne désormais comme prévu lors de la création de la commande.
- La qualité des suggestions de recherche a été améliorée pour les requêtes à plusieurs mots.
- Les résultats de recherche incluent désormais des sorties d’option hors stock pour tous les produits disponibles lorsque Display Out Of Stock Products est activé GitHub-36055
Expédition
- Les taux d’expédition pour FedEx, USPS et UPS sont correctement calculés lorsque la règle Panier gratuit est définie pour ne correspondre qu’à un sous-ensemble d’articles du panier.
- La page d’expédition Admin n’affiche plus l’option d’expédition gratuite lorsque le total de la commande est inférieur au montant minimum de commande spécifié qui est éligible à la livraison gratuite. GitHub-33697
- Adobe Commerce honore désormais le paramètre de configuration du client administrateur Show Company lors de l’affichage de l’adresse de livraison ou du client. Lorsque ce paramètre est désactivé, la société de livraison n’est plus incluse dans l’enregistrement de commande de la base de données, ni dans l’adresse de livraison, ni dans l’adresse du client. Auparavant, les informations s’affichaient même si le paramètre était désactivé. GitHub-33729
- Suppression d’une opération d’enregistrement superflue sur les guillemets lors de l’estimation de l’expédition.
- La portée
storeId
est désormais appliquée directement depuis$request->getStoreId()
pour s’assurer que la portée n’est pas perdue lorsqu’un guillemet est créé par un utilisateur administrateur. Auparavant, des problèmes se produisaient parfois avec les méthodes de livraison lorsqu’un guillemet était créé à partir de l’administrateur à l’aide de modules tiers.
- Les URL compatibles avec l’optimisation pour les moteurs de recherche sont désormais générées pour les produits dont le paramètre
url_key
est remplacé au niveau de l’affichage de magasin. Auparavant, les URL de produits de catégorie n’étaient pas redirigées vers des URL compatibles avec l’optimisation pour les moteurs de recherche.
- Adobe Commerce ne génère plus d’erreur de montant de commande minimal lorsqu’une remise est appliquée aux frais d’expédition.
- Les remboursements de frais de livraison sont désormais correctement calculés lorsque la taxe est appliquée après qu'une remise a été appliquée à l'expédition.
- Toutes les promotions applicables pour un panier demandé via la requête GraphQL
cart
sont renvoyées ensemble. Les promotions comprennent des remises sur les articles, des remises/règles de panier, des bons, des cartes-cadeaux et du crédit de magasin. GitHub-35545
- Ajout des types
price_excl_tax
etprice_excl_tax
à la sortie de la mutationsetShippingMethodsOnCart
. GitHub-31206
- Les identifiants d’expédition uniques sont désormais transmis dans les réponses GraphQL comme prévu avec les détails d’expédition des commandes expédiées à plusieurs adresses pour les requêtes GraphQL.
Évaluation
- La replanification de la date de fin d’une mise à jour intermédiaire n’entraîne plus d’erreur une fois la mise à jour terminée. Auparavant, les administrateurs ne pouvaient pas ouvrir les pages de produits et les grilles de produits, et Adobe Commerce envoyait cette erreur :
report.CRITICAL: Exception: Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "1" already exists
.
- Le tableau de bord intermédiaire affiche désormais le nombre total d’enregistrements correct et la pagination du tableau de bord fonctionne désormais comme prévu. Précédemment. le tableau de bord affichait un maximum de 20 enregistrements.
- Les aperçus d’évaluation du contenu se chargent désormais plus rapidement dans les déploiements avec de nombreux magasins. L’aperçu de la réindexation réindexe désormais uniquement les magasins sélectionnés.
- Les produits peuvent désormais être ajoutés au panier en mode d’aperçu de planification. La mise à jour des liens de chemin de navigation en mode de prévisualisation de la planification avec ces paramètres a corrigé ce problème :
version
,timestamp
etsignature
.
Taxe
- Le paramètre de configuration Display Zero Tax Subtotal est désormais appliqué comme prévu pour les commandes dans les déploiements offrant plusieurs méthodes de livraison. Auparavant, le champ de taxe zéro était visible sur la page du panier lors du passage en caisse avant qu’un mode de livraison ne soit sélectionné, même lorsque ce paramètre était désactivé. GitHub-35561
- Adobe Commerce peut désormais afficher les produits groupés avec taxe sur la page de catégorie storefront dans les déploiements exécutant PHP 8.1. Auparavant, Adobe Commerce n’affichait pas de liste de produits et lançait cette exception :
main.CRITICAL: Exception: Deprecated Functionality: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/m24/vendor/magento/module-tax/Pricing/Render/Adjustment.php on line 188 in /var/www/m24/vendor/magento/framework/App/ErrorHandler.php:61
. GitHub-35500
- Les vendeurs ne peuvent plus déplacer une mise à jour planifiée vers une autre mise à jour contenant le même ID de règle. Auparavant, les mises à jour de planification des règles de prix du panier créaient des plannings en double lorsqu’une mise à jour était déplacée vers une autre mise à jour contenant le même ID de règle.
- L’affectation automatique de groupe de clients fonctionne désormais lorsqu’aucun identifiant de TVA n’est associé à l’adresse du client. Si l’adresse ne contient pas d’identifiant de TVA, elle est traitée comme appartenant à un client non inscrit en TVA et Adobe Commerce remplace le groupe de clients par un groupe non inscrit en TVA. Auparavant, lorsque Enable Automatic Assignment to Customer Group était activé, le compte client n’était pas automatiquement affecté à l’
customerGroup
lorsque l’ID de TVA était supprimé du compte client.
- Les blocs dynamiques corrects s’affichent désormais pour les règles de catalogue intermédiaire en mode d’aperçu intermédiaire. Auparavant, des blocs dynamiques sans rapport étaient affichés.
- Plusieurs taxes sont désormais générées correctement dans la section Résumé des impôts des factures et des notes de crédit lorsque les frais d’expédition multiples sont appliqués lors du passage en caisse.
- Les remises ne sont plus appliquées lorsqu’un sous-total de commande incluant la taxe ainsi que le montant de la taxe sur les produits fixe dépasse la condition de règle du panier sur la page du panier. Auparavant, les remises étaient appliquées même lorsque le total dépassait la condition de règle du panier.
- Vous pouvez maintenant spécifier un
vat_id
lors de l’utilisation de GraphQL pour ajouter ou mettre à jour l’adresse d’un acheteur invité.
Test
- Correction des erreurs de tests unitaires pour différentes versions des bibliothèques
ICU
etlibxml
.
- Les développeurs peuvent désormais demander au système d’exécuter une installation de données dans une vue de magasin spécifique. Le nouveau paramètre facultatif
scope
accepte unstring
qui correspond à l’alias de l’appareil de magasin.
- Ajout de la possibilité de générer plusieurs instances d’une installation de données à l’aide du paramètre facultatif
count
.
- Suppression de la fonction
array_first
non native des dépendances de développement dans la structure MFTF.
Traductions et paramètres régionaux
- La traduction en ligne fonctionne désormais correctement avec les caractères spéciaux, y compris les caractères unicode étendus dans les expressions situées dans les balises SCRIPT. Auparavant, les caractères japonais s’affichaient incorrectement dans le script modifié lors de l’utilisation de la traduction intégrée.
- Le caractère
ñ
d’un nom de produit est désormais converti enn
lors de la génération de la clé d’URL.
- La sortie de l’exécution de
bin/magento i18n:collect-phrases
inclut désormais les traductions de modèles de courrier dans les constructionsdepend
comme prévu. GitHub-35449
- Il est désormais possible de saisir directement des caractères japonais dans le jeu d’attributs de la page du produit (zone combinée). Auparavant, la saisie directe de caractères japonais dans cette liste déroulante entraînait la modification ou la suppression de caractères lors de l’exécution du navigateur Firefox sur MacOS. L’attribut d’HTML
textInput
, qui peut mieux gérer la conversion des caractères japonais dans tous les navigateurs, a remplacé les attributsValue
etvalueUpdate
.
- La méthode
getOptions
récupère désormais correctement les valeurs d’étiquette d’attributprice
en fonction de la vue de magasin. Auparavant, l’attributprice
était traduit pendant les opérations GraphQL pour une vue de magasin incorrecte.
Interface utilisateur
- La devise spécifique au site web est désormais utilisée comme prévu pour les colonnes Prix spécial, Coût et MSRP dans la grille des produits d’administration. Auparavant, le symbole monétaire correct ne s’affichait pas dans la grille de produit du catalogue d’administration lors du filtrage par vue de magasin pour un prix spécial.
- La fonctionnalité de glisser-déposer des options personnalisées du produit fonctionne désormais comme prévu. Vous pouvez désormais déplacer une option personnalisable d’une page à une autre lorsque plusieurs pages sont disponibles dans la grille d’options personnalisables.
- Les tableaux de bord d’administration affichent désormais les intervalles de temps YTD entre le début de l’année civile en cours et la date en cours, comme prévu. Auparavant, les périodes s’étendaient sur 12 mois.
- Ajout d’une icône de favicon par défaut manquante sur la page d’accueil du storefront. GitHub-35493
- L’administrateur affiche désormais correctement la date de connexion la plus récente de chaque utilisateur administrateur. Auparavant, lorsqu’un utilisateur administrateur se connectait pour la première fois à l’administrateur, une valeur de date de connexion vide s’affichait sur la grille Utilisateur administrateur.
- La fonction de modèle de courrier électronique d’aperçu (Marketing > Communications > Email Templates) affiche désormais correctement les modèles. Auparavant, l’image d’aperçu était tronquée. GitHub-35697
- Ajout de la classe
new-shipping-address-modal
pour prendre en charge le style du nouveau modal d’adresse de livraison.
- Ajout d’un texte informatif sous le champ d’entrée
Storefront Properties
de l’attributSearch Weight
sur Admin Stores > Attributes > Product.
- Les aperçus d’email s’ouvrent désormais dans un onglet distinct au lieu d’une fenêtre contextuelle, qui offre une vue plus large du contenu de l’email. Auparavant, le contenu de l’email était tronqué.
- La fonction de filtre pour la grille de rôles utilisateur (Admin System > Permissions > User roles > Administrators) fonctionne désormais comme prévu. La valeur du tableau est désormais gérée séparément. Auparavant, lorsque vous tentiez de saisir une requête dans cette grille, Adobe Commerce renvoyait cette erreur de console et la page ne se chargeait pas :
Uncaught TypeError: Cannot read properties of null
. GitHub-35993
- La validation des valeurs d’attribut a été ajoutée lors de la création d’un client via l’API REST. Le processus de création échoue désormais lorsque des valeurs d’attributs non valides sont fournies. Auparavant, il n’y avait pas de validation pour le genre, qui n’est pas un champ obligatoire. Lors de la création du client, la valeur transmise pour le genre a été enregistrée dans la table
customer_entity
.
- Les adresses ajoutées lors du passage en caisse conservent désormais le format attendu. Auparavant, les lignes vides étaient ignorées.
- La modification de la vue de grille des colonnes de la grille de produit et la sélection de nouvelles colonnes pour une vue personnalisée ne déclenchent plus l’action Sélectionner toutes les colonnes de la grille . Auparavant, la zone de colonne disparaissait et les produits de la grille étaient sélectionnés ou désélectionnés. GitHub-36302
- Les utilisateurs administrateurs peuvent désormais effacer le journal des tâches de l’administrateur. Auparavant, l’administrateur affichait cette erreur :
Something went wrong
. GitHub-36255
- Le paramètre d’en-tête de thème
Welcome Text
peut désormais contenir un seul caractère de guillemet simple. Auparavant, Adobe Commerce générait cette erreur JavaScript :Uncaught SyntaxError: Unable to process binding "ifnot: function(){return customer().fullname }"
.
URL rewrites
- La modification de la visibilité du produit sur Not Visible Individually dans la portée globale Toutes les vues de magasin supprime désormais uniquement les réécritures d’URL pour les vues de magasin qui n’ont pas remplacé l’attribut de visibilité. La modification de la visibilité du produit de cette manière génère également des réécritures d’URL pour toutes les vues de magasin, y compris celles qui ont remplacé l’attribut de clé d’URL (mais pas le paramètre de visibilité). Auparavant, les règles de réécriture d’URL n’étaient pas appliquées lorsque les paramètres de visibilité étaient modifiés.
Marchandisage visuel
- Vous ne pouvez plus modifier manuellement les positions des produits dans les listes de catégories de marchandisage visuel lorsque les produits correspondent par règle.
- Les utilisateurs administrateurs dont l’accès est limité à un seul magasin ne peuvent plus faire glisser et déposer des produits dans une catégorie dans un marchandisage visuel. Ils peuvent désormais utiliser la colonne Position pour réorganiser la position du produit. Auparavant, ces utilisateurs pouvaient modifier la position du produit dans une catégorie uniquement par glisser-déposer.
- La section Produits dans la catégorie de la page de modification de la catégorie affiche désormais la quantité correcte de produits configurables. La colonne correcte du tableau est désormais utilisée pour récupérer la quantité configurable de produits.
Structure de l’API web
- L’API REST
DELETE /rest/V1/products/:sku/media/:entryId
renvoie désormais un message d’erreur si l’image n’est pas supprimée du produit car elle est affectée à un rôle dans d’autres vues de magasin. Auparavant, l’API renvoyait une réponse réussie même si l’image n’était pas supprimée correctement.
- Les commerçants peuvent désormais utiliser l’API REST pour créer une note de crédit pour une commande dont le total global est nul. Auparavant, Adobe Commerce affichait cette erreur :
The order does not allow a credit memo to be created. The credit memo's total must be positive. We can't create a credit memo for the invoice/order
.
- La page de modification du produit Admin reflète désormais fidèlement les affectations d’un produit une fois que l’affectation du site web du produit a été modifiée à l’aide de l’API REST. GitHub-36281
- Les ID d’option en double ne peuvent plus être inclus pour les attributs à sélection multiple lors des demandes d’API REST en masse pour mettre à jour les produits. Auparavant, vous pouviez définir des ID d’option en double pour des attributs à sélection multiple lors de l’envoi d’une demande d’API en bloc pour mettre à jour un produit. Lorsque cet attribut à sélection multiple a été configuré pour être inclus dans la navigation par couches, l’indexation d’EAV a échoué avec une erreur
Duplicate entry
.
- Les noms de produits des paniers utilisent désormais les valeurs de la vue de magasin spécifiée comme prévu. Auparavant, les noms de produits dans le panier renvoyaient toujours la valeur de vue de magasin par défaut dans les réponses du panier de l’API REST.
- Les valeurs des options personnalisées de l’élément de panier peuvent désormais être mises à jour à l’aide de l’API REST. GitHub-35768
- Les demandes d’API groupées pour plus de 20
sourceItems
sont désormais exécutées avec succès dans les déploiements où le stock est activé.
- Le service de devise du correcteur fonctionne désormais comme prévu avec les clés générées via ApiLayer, et les taux de change sont correctement exportés. Auparavant, Adobe Commerce générait une erreur lorsqu’un commerçant tentait d’importer des taux de change par l’intermédiaire de l’administrateur.
- Vous pouvez désormais utiliser la requête d’API REST
/rest/V1/bulk?searchCriteria[filter_groups]
pour interroger les opérations en bloc selon des critères de recherche. Auparavant, l’erreur suivante était renvoyée :report.CRITICAL: Report ID: webapi-624bbb1db96c4; Message: Item (Magento\AsynchronousOperations\Model\Operation) with the same ID "0" already exists.
- Les prix des produits sont désormais correctement mis à jour sur les pages de recherche de catalogue Admin et storefront à l’aide de l’API Gérer le prix de base. GitHub-33767
Liste de souhaits
- Les acheteurs peuvent désormais ajouter des produits à leur liste de souhaits après s’être connectés. Auparavant, en raison de problèmes liés à la validation de la clé de formulaire après connexion, la clé de formulaire envoyée avec la demande de liste de souhaits supplémentaires était invalidée.
- Les produits sont maintenant ajoutés comme prévu à la liste de souhaits à partir de la liste de produits et affichent les pages après qu’un client invité a confirmé son compte à partir d’un email de confirmation. Auparavant, les produits n’étaient pas ajoutés à la liste de souhaits après confirmation du compte.
- La requête
addProductsToWishlist
renvoie désormais un message d’erreur informatif lorsqu’un acheteur tente d’ajouter un élément à une liste de souhaits avec une valeur non valide pour l’option personnalisée du produitselect
. Auparavant, la validation du serveur pour la valeur de l’option personnalisée déroulante était manquante, ce qui entraînait une valeur non valide dans la base de données. Par conséquent, le point de terminaison a renvoyé cette erreur de serveur interne :GraphQL endpoint returns Internal server error with "Call
.
Problème connu
Problème : les étiquettes de règles de vente intermédiaire peuvent ne pas correspondre après une mise à niveau vers Adobe Commerce 2.4.6 ou version ultérieure à partir de versions de produit antérieures à la version 2.4.5. Solution : appliquez ACSD-50625_2.4.5-P1.patch avant l’étape de mise à jour des métadonnées. Reportez-vous à l’article problèmes d’étiquettes salesRules lors de la mise à niveau à partir des versions < 2.4.5 de la base de connaissances.
Étapes générales pour résoudre ce problème :
- Téléchargez le correctif requis. Reportez-vous à l’article problèmes d’étiquettes salesRules lors de la mise à niveau à partir des versions < 2.4.5 de la base de connaissances.
- Suivez les étapes de mise à niveau décrites dans la phase de gestion des packages du processus de mise à niveau Effectuer une mise à niveau.
- Appliquez ce correctif lors de la mise à niveau après la phase de gestion des packages et avant la phase de mise à jour des métadonnées. Voir Comment appliquer un correctif de compositeur fourni par Adobe .
- Terminez le processus de mise à niveau.
Problème : vous ne pouvez pas créer d’avoir lorsque la livraison gratuite est activée (Stores > Configuration > Sales > Delivery Methods) et que le prix de livraison affiché inclut la taxe. Lorsque vous essayez de créer une note de crédit, Adobe Commerce renvoie cette exception : "Division by zero".vendor/magento/module-sales/Model/Order/Creditmemo/Total/Tax.phpLine 139
. GitHub-36800
Solution : un correctif pour ce problème est désormais disponible. Accédez à Outil de correctifs de qualité : recherchez des correctifs et recherchez le correctif ACSD-50814.
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, le numéro de 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 membres de la communauté ayant contribué à la demande d’extraction, le numéro de la demande d’extraction externe et le numéro de problème GitHub qui lui est associé (le cas échéant).
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 Adobe Commerce 2.4.6 à l’aide de Composer.