Notes de mise à jour de Magento Open Source 2.4.4
Magento Open Source 2.4.4 introduit la prise en charge de PHP 8.1. Toutes les bibliothèques de projets et dépendances ont été mises à jour pour des raisons de compatibilité avec PHP 8.1. Les dépendances du compositeur principal et les bibliothèques tierces ont également été mises à niveau vers les dernières versions compatibles avec PHP 8.1. Cette version prend également en charge OpenSearch 1.2.
Cette version comprend près de 250 correctifs de qualité et améliorations.
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.
Autres informations de mise à jour
Bien que le code de ces fonctionnalités soit fourni avec des versions trimestrielles du code principal du Magento Open Source, plusieurs de ces projets 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.
composer.json
avant l’exécution des modules externes. Actuellement, les modules externes inclus dans la variable composer.json
, mais pas marqués comme approuvés, sont automatiquement installés. Toutefois, à compter de juillet 2022, le compositeur ne chargera pas les modules externes sauf s’ils ont été explicitement autorisés. Voir Problèmes liés aux modules externes du compositeur lors de la mise à niveau vers Adobe Commerce 2.4.4 Article de la base de connaissances pour obtenir des instructions sur la modification du composer.json
pour autoriser explicitement le chargement des modules externes.Correctifs inclus dans cette version
Magento Open Source 2.4.4 comprend la résolution de tous les problèmes résolus par les correctifs suivants, qui ont été fournis pour Adobe Commerce et Magento Open Source 2.4.3, 2.4.3-p1 et 2.3.7-p2 :
-
La vulnérabilité à laquelle fait face
MDVA-43395_EE_2.4.3-p1_COMPOSER_v1.patch
etMDVA-43443_EE_2.4.3-p1_COMPOSER_v1.patch
a été résolu dans cette version. -
AC-384_Fix_Incompatible_PHP_Method__2.4.3_ce.patch
. Ce correctif corrige une erreur PHP fatale qui s’est produite lors de la mise à niveau. 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.
Faits saillants de Magento Open Source 2.4.4
Recherchez les points forts suivants dans cette version.
Amélioration de la sécurité
Cette version comprend un correctif de sécurité et des améliorations de sécurité de la plateforme. Ce correctif de sécurité a été rétroporté à Magento Open Source 2.4.3-p2 et Magento Open Source 2.3.7-p3.
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 Bulletin de sécurité Adobe pour 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 :
-
L’utilisation des variables de messagerie a été abandonnée dans la version 2.3.4 dans le cadre d’une limitation des risques de sécurité au profit d’une syntaxe de variable plus stricte. Ce comportement hérité a été complètement supprimé dans cette version en tant que prolongement de cette limitation des risques de sécurité.
Par conséquent, les modèles de courrier électronique ou de newsletter qui fonctionnaient dans les versions précédentes de Magento Open Source peuvent ne pas fonctionner correctement après la mise à niveau vers Adobe Commerce 2.4.4 ou Magento Open Source 2.4.4. Les modèles concernés incluent des remplacements d’administrateur, des thèmes, des thèmes enfants et des modèles provenant de modules personnalisés ou d’extensions tierces. Votre déploiement peut encore être affecté même après l’utilisation de la variable Outil de compatibilité de mise à niveau pour corriger les utilisations obsolètes. Voir Migration de modèles de courrier électronique personnalisés pour plus d’informations sur les effets potentiels et les directives relatives à la migration des modèles concernés.
-
Les jetons d’intégration ne peuvent plus être utilisés pour l’authentification de jeton porteur d’API. Auparavant, un jeton d’intégration pouvait être utilisé comme clé autonome pour l’authentification par jeton. Cependant, ce comportement a été désactivé par défaut en raison des implications de sécurité d’un jeton d’accès sans expiration. Le comportement précédent peut être activé par le biais de la ligne de commande ou de l’administrateur. Voir Authentification basée sur les jetons.
-
Les ID de session ne sont plus stockés dans la base de données.
-
Les jetons d’accès OAuth et les jetons de réinitialisation de mot de passe sont désormais chiffrés lorsqu’ils sont stockés dans la base de données.
-
La validation a été renforcée afin d’empêcher le téléchargement d’extensions de fichiers non alphanumériques.
-
Ajout de la prise en charge de reCAPTCHA pour les codes de bon.
-
Swagger est désormais désactivé par défaut lorsque Magento Open Source est en mode de production.
-
Le protocole HTTPS est désormais activé par défaut pour le storefront du Magento Open Source. La variable Utilisation d’URL sécurisées sur Storefront et Utiliser des URL sécurisées dans Admin sont activés par défaut et tous les cookies intégrés sont désormais définis comme étant sécurisés.
-
Le module externe de confusion de dépendance est désormais requis pour toutes les installations de Magento Open Source. Auparavant, ce module externe était requis pour les installations basées sur le compositeur uniquement. Il autorise désormais les versions approuvées. Les marchands peuvent contourner les contraintes définies dans ce module externe qui interdisent certaines combinaisons d’installations de compositeur. Les contraintes peuvent être contournées pour les versions approuvées. Magento Open Source affiche désormais un avertissement avant de poursuivre l’installation.
-
Les développeurs peuvent désormais configurer la limite de taille des tableaux acceptés par les points d’entrée RESTful Magento Open Sources selon chaque point d’entrée. Voir Sécurité des API.
-
Ajout de mécanismes permettant de limiter la taille et le nombre de ressources qu’un utilisateur peut demander via une API web à l’échelle du système, ainsi que de remplacer les valeurs par défaut sur des modules individuels. Ceci résout le problème résolu par
MC-43048__set_rate_limits__2.4.3.patch
. Voir Sécurité des API.
Améliorations de la plateforme
Magento Open Source 2.4.4 prend désormais en charge PHP 8.1. Toutes les bibliothèques de projets et dépendances ont été mises à jour pour des raisons de compatibilité avec PHP 8.1. Autres améliorations de la plateforme :
-
Magento Open Source 2.4.4 prend en charge Elasticsearch 7.16 et OpenSearch 1.2. L’application Open Source des marchands avec des déploiements hébergés sur site peut utiliser l’une ou l’autre des solutions. Toutefois, OpenSearch est désormais le moteur de recherche par défaut pour les déploiements de Magento Open Source 2.4.4 hébergés dans le cloud. Tous les clients avec des déploiements cloud qui effectuent la mise à niveau vers la version 2.4.4 doivent utiliser OpenSearch. Voir Transformation en OpenSearch pour Adobe Commerce sur Cloud 2.4.4
-
La variable
JQuery
La bibliothèque a été mise à niveau vers la version 3.6. La variablejquery-ui
a été mise à niveau vers la version 1.13.0. Plusieurs autres bibliothèques JavaScript ont été mises à jour vers les versions les plus récentes. -
TinyMCE 5.8.1 est désormais pris en charge. TinyMCE 4 a été supprimé du code base.
-
La variable
RequireJS
La bibliothèque a été mise à niveau vers la dernière version (v2.3.6). GitHub-33672 -
PHPUnit a été mis à niveau vers la dernière version (9.5.x). Les structures de test et de test ont été mises à jour pour être compatibles avec la nouvelle version.
-
La plupart des dépendances Laminas ont été mises à niveau vers les dernières versions compatibles avec PHP 8.1. Trois dépendances Laminas ont été supprimées du code base pour réduire le nombre de dépendances.
Mise à niveau de l’interface utilisateur jQuery
L’interface utilisateur de jQuery a été mise à niveau vers la dernière version (v1.13.0). Les composants jQuery v1.10.0 suivants ont été supprimés :
-
ajaxOptions
etcache
pour les onglets. Voir Onglets. -
.zIndex()
. Inclusions de l’interface utilisateur jQuery v1.12.1jquery/z-index.js
, qui prend en charge l’utilisation de.zIndex()
. Voir Interface utilisateur Core. -
Blocages de données pour les noms de widgets. Vous devez utiliser le nom complet de la variable
.data()
clé. -
Codage dur des classes, par exemple
ui-corner-all
dans les widgets.
GraphQL
Cette version comprend les améliorations suivantes apportées à GraphQL :
-
Amélioration des performances:
-
Les performances des opérations de panier GraphQL ont été améliorées. La variable
collectQuoteTotals()
n’est désormais appelée qu’une seule fois lors d’une requête GraphQL, ce qui réduit le temps de réponse. -
Les performances de Storefront ont été améliorées par des modifications apportées à la manière dont les requêtes GraphQL sont mises en cache. Les requêtes GraphQL envoyées avec les fonctions Fastly et Varnish sont maintenant mises en cache
auth
jetons.
-
-
Nouveaux paramètres de configuration d’administration liés au storefront. La variable
storeConfig
La requête renvoie désormais les paramètres de configuration pour les méthodes de paiement "zéro sous-total passage en caisse" et "passage en caisse/commande d’argent". -
Mise à jour de la bibliothèque GraphQL principale. La variable
webonyx
La bibliothèque , qui permet au fonctionnement de GraphQL principal, a été mise à niveau vers la version ^14.9. -
Correction de problèmes de traduction dans GraphQL avec des magasins multisites et multilingues.. Le résolveur GraphQL renvoie désormais les chaînes traduites en fonction de la portée du magasin, comme prévu.
-
GraphQL fournit désormais à New Relic des noms de transaction descriptifs, qui peuvent s’avérer utiles pour le débogage. GitHub-30915
Voir Guide du développeur de GraphQL pour plus d’informations sur ces améliorations.
Extensions groupées par des fournisseurs
À l’exception de Braintree, toutes les extensions groupées par les fournisseurs ont été supprimées de la base de code Magento Open Source 2.4.4. Les vendeurs doivent migrer vers les extensions officielles, disponibles sur la page Commerce Marketplace.
Améliorations des paiements PayPal
-
L’option de paiement Venmo est désormais prise en charge.
-
Payer plus tard a été ajouté comme option pour les acheteurs en fonction de l’emplacement de l’acheteur, et non de l’emplacement du commerçant.
-
Les commerçants peuvent maintenant définir le pays d’achat lors du test de l’expérience client dans leur pays de choix. Auparavant, les tests étaient limités aux tests uniquement pour le pays dans lequel se trouve le commerçant. Cette modification est valide en mode sandbox uniquement.
-
La messagerie sur la page de passage en caisse affiche désormais des messages précis sur le montant et le nombre d’incréments que l’acheteur sera censé payer lors de l’utilisation de l’option Payer plus tard.
Mises à jour de l’accessibilité
Cette version apporte une conformité améliorée aux directives d’accessibilité standard. Il comprend des info-bulles améliorées, des noms et des balises accessibles pour les éléments d’écran, ainsi que des icônes et des boutons reconçus. Plus de 80 % de ces correctifs permettent d’améliorer l’expérience d’achat pour les utilisateurs sans vision ou vision limitée.
Page Builder
Les vendeurs peuvent désormais ajouter un texte alternatif (alt_text
) aux images (image, bannière, diapositive) afin d’améliorer l’accessibilité du contenu. GitHub-746
Problèmes résolus
Nous corrigeons des centaines de problèmes dans le code principal Magento Open Source 2.4.4. Un sous-ensemble de ces problèmes résolus est décrit ci-dessous.
Installation, mise à niveau, déploiement
- Magento Open Source consigne désormais les erreurs de déploiement de contenu statique dans les fichiers journaux de génération comme prévu.
- Les correctifs de données ne peuvent plus ignorer les contraintes uniques d’une table et insérer des valeurs en double dans une table de base de données MySQL. Auparavant, les correctifs pouvaient insérer des valeurs en double, ce qui endommageait la base de données.
- Les commerçants peuvent désormais passer d’un déploiement Magento Open Source 2.4.2 avec Klarna à Magento Open Source 2.4.3. GitHub-33760
- La configuration du générateur de plans de site peut désormais être modifiée à partir de la ligne de commande. Auparavant, l’applicationOpen Source affichait cette erreur lorsque vous tentiez de modifier la configuration du plan de site en dehors de l’administrateur :
Import failed: Notice: Trying to access array offset on value of type null in app/code/Magento/Cron/Model/Config/Backend/Sitemap.php on line 78
. GitHub-31428
- La variable
bin/magento app:config:import
s’exécute maintenant sans erreur lors de la mise à jour.time
valeurs dansconfig.php
. Auparavant, la modification de la configuration des alertes de produit par modification manuelle (c’est-à-dire sans utiliser l’administrateur) entraînait une erreur.
Accessibilité
- Les erreurs d’accessibilité avec navigation sur les pages de panier et de passage en caisse ont été résolues. GitHub-34483
- Les lecteurs d’écran peuvent désormais lire tous les éléments de formulaire pertinents sur les pages de produit.
- Le contraste a été amélioré pour la suppression d’images et le déplacement des boutons d’icône dans le storefront afin d’améliorer la lisibilité pour les utilisateurs malvoyants.
- L’icône en forme de loupe utilisée pour exécuter des recherches dans l’interface du produit se voit attribuer un nom accessible et une alternative textuelle.
- La barre d’outils de l’éditeur de texte enrichi est désormais accessible à l’aide de la touche de tabulation.
- La variable Cet article a du poids sélectionnez l’entrée sur le Catalogue > Produit la page détails comporte désormais des libellés visibles et un nom accessible.
- Le nom accessible du contrôle inclut désormais le texte de son libellé visible pour le nombre d’éléments par liste déroulante de page.
- Le tableau contrôle la variable Catalogue > Produit la page détails contient désormais des libellés visibles et un nom accessible lors de la réduction du tableau.
- Les liens d’édition de la table Produits contiennent désormais un texte de lien significatif unique.
- Les déclencheurs qui développent les info-bulles fournissent désormais des noms textuels.
- Les boutons du storefront ont désormais des noms accessibles uniques et descriptifs. Auparavant, les boutons fractionnés avec un bouton de texte et un bouton d’icône fléchée adjacent portaient le même nom accessible.
- Le contraste a été amélioré pour la suppression d’images et le déplacement des boutons d’icône dans le storefront afin d’améliorer la lisibilité pour les utilisateurs malvoyants.
- Des alternatives textuelles ont été ajoutées à l’icône en forme de crayon qui s’affiche lorsqu’un commerçant modifie l’entrée de l’accordéon Optimisation pour le moteur de recherche.
- L’icône en forme de loupe utilisée pour exécuter des recherches dans l’interface du produit se voit attribuer un nom accessible et une alternative textuelle.
- La page produit Nouvelle vue le champ de saisie de texte a désormais un nom accessible.
- La variable Cet article a du poids sélectionnez l’entrée sur le Catalogue > Produit la page détails comporte désormais des libellés visibles et un nom accessible.
Serveur principal
- Les administrateurs peuvent désormais se connecter à l’administrateur dans un déploiement pour lequel un chemin d’accès d’administrateur personnalisé est configuré et la clé secrète activée. Auparavant, applicationOpen Source affichait cette erreur :
Invalid security or form key. Please refresh the page
.
- Le Magento Open Source ne redirige plus vers la portée Affichage de l’ensemble du magasin lorsque la hiérarchie multi-magasin change. Auparavant, une fois la hiérarchie enregistrée, les acheteurs étaient redirigés vers une URL de magasin incorrecte et la portée Toutes les vues de magasin était sélectionnée dans un déploiement multi-magasin.
Lot de produits
- Les acheteurs peuvent désormais ajouter un produit en regroupement avec la taxe sur les produits fixe et deux options au panier. Auparavant, l’applicationOpen Source n’ajoutait pas le produit et affichait cette erreur :
We can't add this item to your shopping cart right now
.
- Validation de formulaire sous la forme du
data-validate
etmin
Des attributs ont été ajoutés au champ quantité du panier pour empêcher les valeurs négatives pour les produits du panier.
- La variable
products
query filtre désormais correctement les produits groupés lorsque les produits enfants sont désactivés au niveau de l’affichage de magasin. Auparavant, la requête renvoyait les produits enfants qui étaient désactivés au niveau de l’affichage en magasin.
cron
efface désormais le cache de catégorie de produits comme prévu pendant laindexer_update_all_views
exécution. Auparavant, l’applicationOpen Source affichait un nombre de produits incorrect sur la page de catégorie après la mise à jour en masse de nombreux produits de la catégorie.
- Magento Open Source met désormais à jour le cache de produits de catégorie comme prévu lorsqu’un produit de lot réapparaît en stock.
- La conversion de devise se produit désormais comme prévu dans les confirmations par e-mail pour les achats groupés de produits dans des déploiements multi-magasins utilisant des devises différentes. GitHub-33426
- Les remises spéciales sur les prix avancés s’affichent désormais correctement pour les produits groupés avec un préfixe % dans la grille de produits. Auparavant, une remise de % s’affichait incorrectement avec le préfixe $ au lieu de % dans la grille de produits.
- L’état du produit groupé dans l’administrateur se met désormais automatiquement à jour lorsqu’un produit associé modifie son état.
- Le résolveur GraphQL pour les produits de lot vérifie désormais si les produits de lot enfant ont été désactivés. Auparavant, cette vérification ne s’affichait pas et interrogeait ce type de requête.
categoryList
renvoyaient des produits enfants qui n’étaient pas vendables.
cart
les réponses de requête renvoient désormais des remises précises pour les produits groupés avec des prix dynamiques. Auparavant, les réponses de requête incluaient des remises appliquées individuellement à chaque produit du lot.
Cache
- L’algorithme de nettoyage du cache qui s’exécute pendant la réindexation a été optimisé. Les produits groupés s’affichent désormais comme prévu lorsqu’une catégorie est mise en cache lors de la réindexation. Auparavant, les produits groupés n’étaient pas affichés pendant des heures après que les catégories de produits aient été mises en cache lors de la réindexation.
- Le cache de page ne se développe plus rapidement lors d’une utilisation standard. GitHub-9458
- Le placement d’une commande n’entraîne plus la suppression de toutes les balises de cache liées aux produits commandés du cache de vernis. GitHub-30128
- Le cache de page de site complet n’est plus effacé lorsque vous mettez à jour un produit des catégories principales ou exécutez un index pour mettre à jour les attributs de produit ou l’état du stock. Auparavant, le cache de vernis ajoutait les identifiants de catégorie de menu supérieur à toutes les balises de cache de page. GitHub-33465
Panier et passage en caisse
- Le prix publicitaire minimum Qu'est-ce ? sur la page du panier, il est maintenant possible de cliquer sur le lien et ouvre la fenêtre contextuelle d’informations comme prévu. Auparavant, le fait de cliquer sur ce lien n’avait aucun effet.
- Les acheteurs peuvent désormais passer des commandes sans erreur après un délai d’expiration de session dans les déploiements où le panier persistant est activé. Auparavant, l’applicationOpen Source affichait une erreur de paiement après un délai d’expiration de session.
- L’attribution d’une valeur de commande de tri élevée à un attribut d’adresse du client ne provoque plus de dégradation des performances sur la page de passage en caisse.
- Magento Open Source rétablit désormais la quantité du produit du panier sur la valeur précédente si la quantité mise à jour n’est pas valide.
- Cliquez sur le bouton Ajouter au panier dans la section Récemment consultés , redirige désormais la page des détails du produit comme prévu. Auparavant, les acheteurs étaient redirigés vers la page de liste de produits.
- Les acheteurs invités peuvent désormais extraire avec succès une adresse client qui contient plusieurs types d’attributs d’adresse client personnalisés. Auparavant, les valeurs des attributs personnalisés n’étaient pas correctement formatées lorsqu’elles s’affichaient lors de l’extraction. GitHub-30290
- Magento Open Source applique désormais correctement le seuil de livraison gratuite aux commandes lorsque les taux de la table sont activés. GitHub-21832
- Vous pouvez désormais utiliser
POST /V1/guest-carts/:cartId/items
pour ajouter des produits simples avec différentes options à un panier. Auparavant, cet appel modifiait la quantité du premier produit simple que vous avez ajouté au lieu d’ajouter un second produit simple avec les options spécifiées. GitHub-32302
- La section Synthèse des commandes de la page de passage en caisse affiche désormais la devise et le montant corrects lorsqu’un déploiement est configuré pour
Poland
pays etPLN
devise. Auparavant, le panier et la page de passage en caisse affichaient la valeur PLN 0.
- Le Magento Open Source ne renvoie plus d’erreur lorsqu’un acheteur clique Mettre à jour le panier après avoir modifié une quantité de produit dans le mini panier. Auparavant, applicationOpen Source affichait cette erreur :
The quote item isn't found. Verify the item and try again
.
- GraphQL
products
les requêtes de produits configurables dans un magasin spécifique renvoient désormais les plages de prix des produits uniquement dans le magasin spécifié. Auparavant, les demandes renvoyaient des plages de prix pour les produits simples dans des magasins non spécifiés.
- Magento Open Source ne renvoie plus cette erreur lorsqu’un acheteur ajoute une adresse de facturation qui ne comporte pas de champ de rue :
Uncaught TypeError: Unable to process binding "text: function(){return currentBillingAddress().street.join(', ') }"
. GitHub-33826
- Magento Open Source ne génère plus d’erreur de console lors du passage en caisse dans les magasins à partir desquels le mini panier a été supprimé. GitHub-34513
- Le passage en caisse n’échoue plus à l’étape du paiement lorsque les valeurs des champs de rue sont manquantes à l’adresse de facturation ou que la valeur du champ de rue n’est pas un tableau. Auparavant, l’extraction échouait avec cette erreur :
Uncaught TypeError: Unable to process binding "text: function(){return currentBillingAddress().street.join(', ') }"
. GitHub-33826
- Magento Open Source calcule désormais correctement les remises lorsque deux règles de panier sont appliquées à une commande qui répond à ces conditions : une règle de panier est appliquée avec un code de coupon et un Prix fixe sur le panier entier et la deuxième règle de prix du panier ne comporte pas de coupon et un Pourcentage de remise sur le prix du produit condition. Auparavant, l’algorithme approprié ne pouvait pas fractionner correctement la remise proportionnellement entre les produits du panier lorsqu’une règle de panier précédente avait déjà appliqué une remise sur certains produits.
- Le total des ventes est désormais correctement calculé dans la grille de rapport des coupons. Auparavant, le total des ventes n’incluait pas le montant des frais de livraison.
- Les remises sur l’ensemble du panier sont désormais calculées correctement lorsque l’acheteur bascule entre les méthodes d’expédition.
- La liste déroulante de la variable État sur la page Créer un ordre de l’administrateur , le champ est maintenant renseigné par les valeurs prédéfinies du pays sélectionné. Auparavant, ce champ était un champ de texte de saisie au lieu d’un menu déroulant.
- Magento Open Source ne renvoie plus d’erreur une fois que vous avez utilisé la variable
addConfigurableProductsToCart
mutation pour ajouter un produit configurable à un panier directement après avoir modifié la vue du magasin.
- Magento Open Source ne génère plus d’erreur lorsque vous utilisez la variable
addConfigurableProductsToCart
mutation pour ajouter au panier un enfant désactivé d’un produit configurable. Auparavant, l’applicationOpen Source générait une erreur de violation de contrainte d’intégrité.
- La valeur d’utilisation du coupon ne change plus si la commande à laquelle le coupon a été appliqué échoue. Auparavant, les bons générés automatiquement à usage unique étaient marqués comme non valides après l’application du bon dans le panier, mais la commande n’était pas passée.
- La validation a été ajoutée au workflow de passage en caisse pour comparer l’adresse de rue du client à la valeur par défaut. Si le processus de validation identifie les modifications, il définit
customer_address_id
tonull
pour la traiter comme une nouvelle adresse client. Auparavant, si le client enregistrait l’adresse sans validation au passage en caisse et que le même client tentait de passer une commande à l’aide de la même adresse après l’application de la validation au champ de passage en caisse , l’application Open Source n’acceptait pas l’adresse modifiée et lançait une exception.
Règles de prix du panier
- La génération de coupon est désormais bloquée jusqu’à ce que la règle de prix du panier associée soit enregistrée avec la variable
auto
activée. Si vous essayez d’enregistrer cette règle sans activer la variableauto
, l’application Open Source affiche le message suivant :Rule is not saved with auto generate option enabled. Please save the rule and try again
.
- Ajout d’un test pour confirmer la bonne application d’une remise de règle de prix de panier.
- Règles de prix du panier qui utilisent une condition de SKU avec Si un élément est TROUVÉ/INTROUVABLE dans le panier avec toutes/toutes ces conditions vraies fonctionnent désormais comme prévu avec les produits configurables.
- Les règles de prix du panier sont désormais appliquées correctement pour les produits groupés à prix fixe. Auparavant, les règles de prix du panier ne s’appliquaient pas à ces produits lorsqu’au moins un produit enfant avait le même jeu d’attributs spécifié dans la condition de règle.
- Un produit au prix de 0 peut désormais être ajouté au panier avec succès lorsque Magento Open Source est configuré avec la variable Remise de montant fixe pour le panier entier règle de prix du panier. Auparavant, applicationOpen Source affichait cette erreur :
report.ERROR: Warning: Division by zero in /home/mer33515/public_html/ee24develop/app/code/Magento/SalesRule/Helper/CartFixedDiscount.php on line 85
.
- Correction d’une condition selon laquelle la fonction
cart
la requête renvoyait un montant de remise inexact lorsque les règles du panier avec remises fixes étaient activées.
Catalogue
- Le Magento Open Source ne lance plus d’exception lors de l’exécution d’une action de mise à jour d’attribut de masse sur la grille de produit lorsqu’un produit possède une
datetime
attribut.
- Les requêtes GraphQL renvoient désormais des résultats pour les produits enfants d’un produit configurable en fonction des paramètres de filtre de visibilité du ou des produits enfants.
- Magento Open Source ne modifie plus les prix des produits associés lorsque les attributs de produit configurables sont modifiés. Auparavant, le prix minimum publicitaire (MAP) pour un produit configurable dépassait le prix des produits associés sur le front de magasin.
- Le Magento Open Source ne lance plus d’exception lors de l’exécution d’une action de mise à jour d’attribut de masse sur la grille de produit lorsqu’un produit possède une
datetime
attribut.
- Les valeurs d’attribut de liste déroulante/à sélection multiple pour la grille de produits admin et les filtres sont désormais dérivées comme prévu des paramètres d’administration. Auparavant, les valeurs d’attribut étaient dérivées des paramètres de magasin par défaut.
- Les requêtes de catégorie GraphQL renvoient des informations sur les modifications apportées aux catégories intermédiaires comme prévu.
- Les listes de produits sont désormais rendues avec précision dans l’Admin dans les déploiements avec des produits affectés à la fois à une catégorie parente et à ses sous-catégories, mais à des positions différentes dans chaque catégorie. Auparavant, le rendu de la liste de produits échouait avec cette erreur :
Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "<ID>" already exists
. [GitHub-33145] (https://github.com/magento/magento2/issues/33145
- Les attributs à sélection multiple avec de nombreuses options (plus de 150) peuvent désormais être attribués à de nouveaux produits. Auparavant, les options d’attribut étaient enregistrées dans la variable
catalog_product_entity_varchar
et toutes les options n’étaient pas présentes lors de la réouverture du produit dans l’administrateur. GitHub-33486
- Ajout de la validation du cas où un routeur ne peut pas instancier une classe d’action collectée à partir d’une URL. L’application Open Source affiche désormais le message d’erreur standard. Auparavant, applicationOpen Source affichait cette erreur :
PHP Error: Cannot instantiate abstract class Magento\Catalog\Controller\Product\Compare
.
- L’affectation de nombreux produits (environ 10 000) à une catégorie n’entraîne plus le blocage du navigateur.
- Les attributs d’image sont désormais enregistrés de manière cohérente dans la base de données, qu’ils soient enregistrés depuis l’administrateur ou importés. Auparavant, les valeurs de texte ALT de l’image étaient enregistrées de manière incohérente. Si l’image existait et que le libellé était défini sur null, la valeur du libellé n’était pas réinitialisée dans la base de données.
- La requête SQL du widget du catalogue a été optimisée. Auparavant, les requêtes MySQL volumineuses ralentissaient le chargement des pages et entraînaient des pannes de MySQL.
- Les filtres de prix fonctionnent désormais correctement avec les produits configurables en rupture de stock. Auparavant, les produits configurables en rupture de stock ne s’affichaient pas dans la plage de prix correcte.
- La mise à jour d’un produit enfant ne supprime plus la remise de règle de catalogue héritée de son produit configurable parent pendant le processus d’indexation partielle. Auparavant, lorsque nous attribuions un produit configurable à une catégorie, mais pas à ses produits simples associés, puis utilisions cette catégorie pour créer une règle de catalogue, l’application Open Source supprimait la règle de catalogue affectée au produit simple pendant le processus d’indexation partielle.
- La liste en grille des produits regroupés et configurables contient désormais uniquement des produits simples et virtuels lors de l’ajout d’options de produit. Auparavant, l’application incluait des produits simples avec des options.
Règle de catalogue
- Les mises à jour quotidiennes des règles de catalogue ne provoquent plus de dégradation des performances. Auparavant, l’indexation partielle des prix de produit du catalogue ne supprimait pas les anciens prix ou les dates.
- Magento Open Source ne supprime plus les règles de prix du catalogue sur les produits configurables lors de la réindexation partielle. Auparavant, seuls les sous-produits étaient réindexés lorsque les produits configurables étaient réindexés.
- Les règles de prix du catalogue avec la variable category n’est pas category_id s’applique désormais aux produits qui n’appartiennent à aucune catégorie.
Produits configurables
- Le nom de l’étiquette de l’option de produit configurable est désormais basé sur la vue de magasin sélectionnée lors de la création de la commande d’administration. Auparavant, l’applicationOpen Source utilisait le nom du libellé de la vue de magasin par défaut.
- Les listes de produits incluent désormais correctement les produits enfants d’un produit en rupture de stock lorsque l’indicateur global pour l’affichage des produits en rupture de stock est activé. Auparavant, la liste de produits n’incluait pas le produit enfant si l’une des options de produits enfants était en rupture de stock lorsque cet indicateur était activé.
- Vous pouvez désormais utiliser la variable
addConfigurableProductsToCart
mutation pour ajouter un produit configurable au panier sur une vue de magasin autre que celle par défaut. Auparavant, vous ne pouviez pas ajouter un produit configurable à un panier lorsque l’ID de site web et l’ID de magasin différaient. GitHub-30948
- GraphQL
products
les requêtes ne renvoient plus de données sur les produits enfants désactivés des produits configurables.
- La création de nouvelles configurations pour un produit configurable ne remplace plus les modifications apportées aux configurations existantes. Auparavant, le statut des variations existantes était remplacé par le statut par défaut.
enabled
une fois de nouvelles variations générées.
- Magento Open Source ne génère plus d’erreur interne lorsque vous essayez d’ajouter au panier un enfant désactivé d’un produit configurable.
Client
- Magento Open Source prend désormais en compte la portée du site web pour les paramètres régionaux d’administration lors de la création de la commande. Auparavant, les détails de la commande tels que les attributs d’adresse du client fonctionnaient correctement sur un site web uniquement dans le cadre d’un déploiement multisite. GitHub-23254
- Les erreurs de validation de champ de courrier électronique dans la fenêtre contextuelle de connexion de passage en caisse correspondent désormais aux erreurs de validation de courrier électronique sur la page de connexion du client lorsqu’un client tente de se connecter à l’aide d’un compte de courrier électronique non valide.
- Le Magento Open Source n’inclut plus de message d’erreur dans l’e-mail des détails de l’expédition lorsqu’un commentaire d’expédition est ajouté par l’administrateur et la variable Notifier le client est activée. Auparavant, les emails de confirmation de livraison incluaient ce message :
We're sorry, an error has occurred while generating this content
.
- Les valeurs des identifiants de région et de pays sont désormais correctement converties dans les modèles de courrier électronique. Auparavant, lorsque vous cliquiez sur Lien Aperçu dans le modèle de courrier électronique Admin , le nom du pays et de la région ne s’affichaient pas correctement.
- Les courriers électroniques de mise à jour des ventes envoyés par l’administrateur pour les vues de magasin autres que celles par défaut contiennent désormais des libellés d’état de commande corrects. Auparavant, ces emails affichaient toujours l’état du magasin par défaut. GitHub-29263
- Le Magento Open Source comprend désormais
Content-Disposition: inline
en-têtes dans le courrier électronique comme prévu. GitHub-29258
- Les emails de notification de commande et d’envoi fonctionnent désormais comme prévu dans les déploiements utilisant Microsoft Outlook et MS Exchange Server. Auparavant, le corps de l’email était vide, mais contenait une pièce jointe étiquetée ATT*. GitHub-25076
- Les courriers électroniques de commande contiennent désormais des données localisées à l’aide des paramètres régionaux de l’acheteur, comme prévu. Auparavant, les courriers électroniques de commande utilisaient la langue d’administration.
- Cliquer sur l’aperçu d’un modèle d’email ouvre désormais l’aperçu du modèle dans une fenêtre distincte, comme prévu. Auparavant, l’application Open Source ouvrait l’aperçu du modèle simultanément à partir de la grille Modèles d’email et dans une fenêtre contextuelle.
- Les courriers électroniques de commande asynchrones envoyés à partir d’un site web autre que celui par défaut incluent désormais les URL de logo du site web approprié. Auparavant, ces emails incluaient toujours des logos du site web principal ou par défaut. (Une clé par défaut avec une
storeCode
a été affectée au deuxième argument de tableau transmis à la variableUrlInterface
getUrl
de la fonction Cette valeur fait la distinction entre les URL par rapport aux différents magasins/sites web et génère unbaseUrl
pour le contenu d’email envoyé au client.)
Frameworks
- Les comparaisons non strictes entre les nombres et les chaînes non numériques fonctionnent désormais en attribuant le nombre à une chaîne et en comparant les chaînes. Les comparaisons entre les nombres et les chaînes numériques continuent de fonctionner comme auparavant. Cela signifie que
0 == "not-a-number"
est désormais considéré comme faux. GitHub-33780
- L’assistant
Magento\Payment\Helper\Data
ne crée plus de nouvelles mises en page dans les constructeurs. Auparavant, lorsque cette assistance était utilisée dans des commandes personnalisées sans spécifier d’indicatif régional, Magento Open Source générait une erreur. GitHub-33908
- Mise à jour de la
allure-framework/allure-php-api
Dépendance du compositeur.
- Magento Open Source renvoie désormais un code de réponse 500 lorsqu’une exception se produit dans le fichier d’amorçage. Auparavant, applicationOpen Source renvoyait un code d’état 200 OK. GitHub-22196
- Le symbole de devise est désormais chargé comme prévu sur les pages de détails des produits storefront. Auparavant, ce symbole disparaissait parfois après le rechargement de la page JavaScript.
- Mise à jour
symfony/console
ne provoque plus d’échec lors de l’exécution debin/magento setup:di:compile
. GitHub-33595
- De nouvelles options requises ont été ajoutées au
.htaccess
etnginx.conf
fichiers distribués avec Magento Open Source pour la prise en charge de PHP 8.x. Les options obsolètes ont également été supprimées. GitHub-34358
- Les vendeurs peuvent désormais télécharger une vidéo pour plusieurs produits. Le processus de génération de fichiers ajoute désormais une extension au nom de fichier uniquement si le nom de fichier téléchargé inclut une extension. Auparavant, lorsqu’un commerçant tentait de télécharger puis d’enregistrer la même vidéo pour deux produits différents, l’application Open Source renvoyait cette erreur :
Notice: Undefined index: extension in /app/7ha7zds7wvqys_stg/vendor/magento/framework/File/Uploader.php on line 699
. Cela s’est produit car Magento Open Source a tenté d’ajouter une extension de fichier au nom, que le nom de fichier téléchargé ait ou non une extension.
- Correction de problèmes liés à
sprintf(__())
etsprintf(Magento\Framework\Phrase())
construction pour une compatibilité avec PHP 8.x dans tout le code base. Auparavant, l’applicationOpen Source générait ce type d’erreur :Expected parameter of type 'string', 'Magento\Framework\Phrase' provided
. GitHub-34085
- Amélioration de la validation des paramètres de requête de recherche avancée. GitHub-33589
- Exécution
bin/magento support:backup:code
crée maintenant une sauvegarde comme prévu. Auparavant, l’applicationOpen Source créait une sauvegarde, mais renvoyait une erreur.
- Exécution réussie
cron
les processus se voient désormais attribuer un état desuccess
. Auparavant, la mêmecron
le processus peut être exécuté deux fois, car la réussitecron
des processus ont été affectés à unepending
statut.
- La variable
Magento_Logging
prend désormais en charge le protocole IPv6.
Correctifs généraux
- Magento Open Source copie désormais tous les champs de produit en fonction de leur portée définie lors de la duplication d’un produit. Auparavant, la variable name et description les champs ont été réinitialisés sur
global
portée.
- Magento Open Source n’applique plus d’arrondi différentiel à une remise lorsque le prix du produit est de 0. Auparavant, applicationOpen Source calculait un montant de remise négatif.
- Produits avec un Définir comme nouveau qui se voit attribuer une date de début vide et une date de fin expirée peuvent désormais être enregistrés avec succès. Auparavant, l’applicationOpen Source générait cette erreur lorsque vous sauvegardiez un produit avec les paramètres suivants :
Make sure the To Date is later than or the same as the From Date
.
- Les administrateurs peuvent désormais relancer les opérations qui ont duré le temps de traitement maximum. La durée maximale par défaut est de 12 heures.
- Les erreurs de tuyaux rompues ne se produisent plus pendant le traitement des actions en masse en raison de messages non reconnus pour le consommateur. Une propriété prefetch count limite désormais ces messages pour le consommateur et évite les erreurs. Auparavant, l’exécution de
bin/magento queue:consumers:start async.operations.all
a généré cette erreur :Broken pipe or closed connection
.
- Les acheteurs sont désormais redirigés vers la page de connexion comme prévu après une deuxième tentative de connexion qui a échoué. Auparavant, les clients étaient redirigés vers une page 404 après une deuxième tentative de connexion infructueuse. GitHub-32885
- La validité du jeton de réinitialisation de mot de passe a été étendue afin d’éviter l’occurrence d’une condition de concurrence lors de l’envoi de la page de changement de mot de passe. GitHub-29647
- Les autorisations affectées à de nouvelles intégrations sont désormais respectées. GitHub-33347
- Correction d’un problème de régression qui affectait les messages laissés dans les journaux d’exception pour le formulaire de contact. GitHub-34483
- Résolution de plusieurs problèmes liés au chargement JavaScript des données client. GitHub-30498
- Utilisation
QuoteIdToMaskedQuoteId
dans une extension n’augmente plus significativement le temps de réponse. GitHub-33676
- La classe
BundleDiscountPrice
inmagento2/app/code/Magento/Bundle/Pricing/Price/ConfiguredPrice.php
est désormais déclaré comme prévu. Auparavant, l’applicationOpen Source renvoyait cette erreur :Class Magento\Bundle\Pricing\Price\BundleDiscountPrice not found
. GitHub-33334
- Les valeurs des champs CSV échappées écrites par l’adaptateur AWS S3 correspondent désormais aux données écrites par d’autres adaptateurs de système de fichiers.
- Le stockage compatible avec S3 est désormais pris en charge. GitHub-32114
- La déconnexion d’un appareil ne déconnecte plus automatiquement l’acheteur des autres appareils.
GraphQL
- La variable
generateCustomerToken
etrevokeCustomerToken
Les mutations fournissent désormais l’ID de cache correct pour l’état de l’utilisateur. Auparavant, ces mutations utilisaient une valeur non validex-magento-cache-id
, ce qui dégradait les performances.
- La variable
setBillingAddressToCart
La mutation utilise désormais correctement la variablesame_as_shipping
pour définir l’adresse de facturation en fonction de l’adresse de livraison. Auparavant, applicationOpen Source affichait cette erreur :The shipping method is missing. Select the shipping method and try again
. GitHub-30924
- Les opérations de panier GraphQL calculent désormais les totaux généraux de panier uniquement lorsque la requête le demande. Auparavant, les opérations de panier calculaient toujours le total général, qui est une opération gourmande en ressources.
- La variable
addProductsToCart
la mutation ajoute désormais au panier uniquement les produits affectés au magasin défini dans l’en-tête .
products
les requêtes utilisant des filtres de navigation par couches renvoient désormais des listes de catégories enfants correctes. GitHub-33387
- Requêtes et mutations renvoyant la variable
ConfigurableCartItem
contient des informations sur les variantes configurées, comme prévu.
- La variable
products
query renvoie désormais les valeurs des options de produit de configuration et les valeurs d’attribut de variante. Auparavant, ces valeurs étaient vides dans les réponses de requête.
- La variable
products
query filtre désormais correctement les produits groupés lorsque les produits enfants sont désactivés au niveau de l’affichage de magasin. Auparavant, la requête renvoyait les produits enfants qui étaient désactivés au niveau de l’affichage en magasin.
- La variable
setShippingAddressesOnCart
la mutation prend désormais en charge la définition des adresses de livraison sur un panier avec une valeur de numéro de téléphone vide lorsque la variable Afficher le téléphone Le paramètre de configuration de l’administrateur est défini sur facultatif. Auparavant, l’applicationOpen Source renvoyait cette erreur :Field CartAddressInput.telephone of required type String! was not provided
.
- Correction d’un problème en raison duquel la variable
addSimpleProductsToCart
mutation vous a permis d’ajouter des produits simples à un panier qui ne sont pas affectés au site web cible.
- Les requêtes MySQL ont été optimisées pour GraphQL.
products
requêtes qui utilisent des paramètres de recherche pour affiner les résultats de la recherche.
- La variable
addConfigurableProductToCart
mutation ne prend plus en charge l’ajout d’un produit à un panier si le produit n’est pas inclus dans la portée demandée.
- La variable
products
La requête renvoie désormais uniquement les variantes configurables affectées à l’affichage de magasin demandé. Auparavant, toutes les variantes du produit configurable demandé étaient renvoyées.
addSimpleProductsToCart
les requêtes peuvent désormais s’exécuter correctement en parallèle. Auparavant, plusieurs demandes pour le même SKU créaient des éléments de ligne en double pour le même ID de panier plutôt que d’augmenter la quantité de produits comme prévu.
- La variable
addProductsToCompareList
la mutation peut maintenant être utilisée pour comparer des variantes de produits configurables.
- Lorsque le prix d’un produit de niveau est mis à jour à partir du serveur principal, le nouveau prix est correctement mis à jour sur le panier du client. Auparavant, bien que le sous-total de la section de résumé du panier ait été correctement mis à jour, le sous-total de la ligne n’était pas mis à jour.
- La variable
addProductsToCart
la mutation ajoute désormais toutes les options sélectionnées au panier lorsqu’elle est utilisée pour ajouter des produits en regroupement avec plusieurs options de sélection. Auparavant, la mutation ajoutait uniquement la dernière sélection. GitHub-33123
- Les requêtes GraphQL renvoient désormais l’adresse de facturation comme prévu lorsque la valeur d’un champ téléphonique facultatif est définie sur une chaîne vide. Auparavant, les requêtes renvoyaient une valeur d’adresse nulle. GitHub-30218
- La variable
products
la réponse de requête répertorie désormais les produits selon l’ordre de tri spécifié lorsque plusieurs produits ont la même valeur de pertinence ou de prix.
- Contextuel
addSimpleProductsToCart
etaddProductsToCart
les demandes ne génèrent plus d’éléments de guillemet dupliqués.
products
les filtres de navigation en couches de requête renvoient désormais des listes de catégories enfants correctes. Seules les sous-catégories directes sont désormais incluses lorsque la variableincludeDirectChildrenOnly
est fourni dans la requête. Auparavant, toutes les catégories étaient incluses en réponse dans la section d’agrégation lorsqu’un produit était affecté à plusieurs catégories.
- Ajout de la fonctionnalité de suggestion de recherche pour les requêtes de recherche GraphQL.
- La variable
OrderAddress.telephone
est désormais facultatif dans la variablecustomer
requêtes ou autres requêtes et mutations qui renvoient ou modifient les adresses de commande du client.
- Les prix sont désormais correctement mis à jour pour les clients d’un groupe spécifié dans le storefront et dans l’administrateur lorsqu’un ID de groupe est modifié via l’API. Auparavant, ces prix n’étaient pas correctement mis à jour lorsqu’un ID de groupe était modifié via l’API.
Image
- Les images en filigrane avec des arrière-plans transparents n’ont plus d’arrière-plan blanc sur l’image de produit transparente qu’elle recouvre. Auparavant, lorsque l’image de filigrane et l’image de produit avaient un arrière-plan transparent, le filigrane s’affichait avec un arrière-plan blanc.
- Les logos des factures et des accusés de réception d'expédition sont désormais chargés et affichés comme prévu lorsque AWS S3 est activé.
- La balise multimédia associée à une image ajoutée à une page CMS dans un déploiement où l’administrateur est défini sur un domaine différent de celui de l’URL de magasin contient désormais les URL de magasin comme prévu. Auparavant, les balises multimédia contenaient des URL d’administration statiques au lieu des URL de magasin attendues. GitHub-32930
- Magento Open Source ne génère plus d’erreur lorsque vous videz le cache des images lors du chargement simultané des images sur le storefront.
Import/export
bin/magento remote-storage:sync
n’échoue plus lorsque les noms de fichier sont similaires, mais ne diffèrent que d’un ou deux caractères. Auparavant, la première image était stockée correctement, mais la seconde, appelée de la même manière, déclenchait un échec de synchronisation et cette erreur :Notice: Undefined index: media/catalog/product/5/_ in /src/vendor/magento/module-remote-storage/Driver/Adapter/Cache/Generic.php on line 197
. GitHub-34337
- Magento Open Source convertit désormais l’horodatage du nom du fichier d’exportation dans le fuseau horaire de l’utilisateur après une exportation planifiée. Auparavant, ces valeurs n’étaient pas converties et Magento Open Source affichait l’horodatage UTC.
- Magento Open Source ne crée plus d’images en double dans le stockage distant lorsque le même fichier CSV est importé plusieurs fois.
- L’importation ne échoue plus avec ce message :
Import failed: Area code not set: Area code must be set before starting a session
. GitHub-16171
- Vous pouvez désormais importer après l’exécution de
bin/magento app:config:dump
et modification manuelleconfig.php
. GitHub-31428
- Les séparateurs de valeurs multiples autres que par défaut peuvent désormais être utilisés dans des attributs personnalisés à sélection multiple. Auparavant, la validation échouait lors de l’importation. GitHub-23156
- La position du produit dans les catégories est désormais correctement affectée lors de l’importation à partir du fichier CSV.
Index
- Magento Open Source affiche désormais les produits comme prévu sur le storefront après réindexation. Auparavant, lorsque les 500 premiers produits réindexés étaient en stock et que les 500 autres produits étaient en rupture de stock, la vitrine n’affichait aucun produit supplémentaire.
- Résolution de problèmes de cohérence dans les
indexer.xml
fichiers . Les valeurs autorisées dansclassType
sont désormais identiques dans les éléments non fusionnés et fusionnés.indexer.xml
fichiers . GitHub-29609
- Un mécanisme de synchronisation a été mis en oeuvre dans les indexeurs de catégorie pour empêcher les indexeurs complets et partiels de s’exécuter en parallèle. Auparavant, lorsque ces indexeurs s’exécutaient en parallèle, les produits pouvaient être temporairement omis des pages de catégories storefront ou les pages de catégories pouvaient être temporairement vides des produits.
Infrastructure
- Non pris en charge
str_contains
a été remplacée par une fonction prise en charge. Il s’agissait d’un problème connu pour Magento Open Source 2.4.3. GitHub-33680
-
Refactorisation du code base pour corriger l’utilisation du mot-clé
match
: mot-clé réservé dans PHP 8.x. GitHub-33626 -
Les balises HTML sont désormais imbriquées et fermées correctement pour répondre aux normes de JQuery 3.5.x pour les éléments non vides, y compris les éléments personnalisés.
- Fixe
abs()
etround()
fonctions pour la compatibilité avec PHP7.x et PHP8.x. GitHub-34322
- Mise à jour
symfony/console
ne provoque plus d’échec lors de l’exécutionbin/magento setup:di:compile
. GitHub-33595
- Correction de la restriction pour la variable
colinmollenhour/cache-backend-redis
Dépendance du compositeur. GitHub-34177
- Le code base a été restructuré afin de supprimer les appels vers des méthodes obsolètes de
phpunit/phpunit
. GitHub-33916
- Magento Open Source affiche désormais une erreur informative lorsqu’un administrateur avec une lecture seule
pubs/media
tente d’accéder à la page des détails du produit pour un produit qui comprend des images. Auparavant, l’applicationOpen Source générait une erreur PHP. GitHub-32819
- Tous les niveaux de membre
@api
les annotations ont été déplacées dans leur classe tout au long du code base.
gift-card Cms
les données du widget ont été déplacées à partir deMagento/WidgetSampleData
(Magento Open Source) enMagento/GiftCardSampleData
(Adobe Commerce). Cela a résolu les problèmes d'installation (Magento Open Source) avec des exemples de données sur PHP8.1.
- Interfaces marquées dans le code d’intégration Adobe Stock avec
@api
selon les besoins. GitHub-32875
- Les entiers et les nombres flottants dans les jeux de résultats sont désormais renvoyés à l’aide de types PHP natifs plutôt que de chaînes lors de l’utilisation d’instructions préparées émulées. GitHub-34625
- La création automatique de tableaux à partir de valeurs fausses a été désactivée pour garantir la compatibilité avec PHP 8.1.
- L’assistant
Magento\Payment\Helper\Data
ne crée plus de nouvelles mises en page dans les constructeurs. Auparavant, lorsque cette assistance était utilisée dans des commandes personnalisées sans spécifier d’indicatif régional, l’application Open Source générait une erreur. GitHub-33908
- Vous pouvez désormais transmettre une
data
argument vers un constructeur d’instance de bloc pardi.xml
.
- Optimisé
Generator.php
pour plus de lisibilité. GitHub-33809
- Amélioration de l’archivage JWK dans la variable
JwsManager
pour gérer les situations lorsque l’algorithme est défini directement dans l’en-tête. Auparavant, ce contrôle ignorait ce scénario valide. GitHub-32636
Mises à jour des dépendances JavaScript
jquery-validate
bibliothèque tierce GitHub-33853
Less.js
(v3.13.1) GitHub-32845
Retraits et obsolescences de la bibliothèque
-
Les bibliothèques suivantes ont été supprimées, car tous les navigateurs pris en charge par Magento Open Source 2.4.x prennent en charge cette fonctionnalité de manière intégrée :
es6-collections.js
MutationObserver.js
Modernizr
FormData.js
-
Suppression de la valeur inutilisée
jquery.hoverIntent
Bibliothèque JavaScript. GitHub-33732 -
lib/internal/Magento/Framework/Filter/Money.php
a été abandonné. Contient la variablemoney_format()
qui a été supprimée dans PHP 8.x. GitHub-33870 -
Suppression de la version obsolète, non prise en charge
grunt-autoprefixer
module. GitHub-34037
Mises à niveau de bibliothèque
-
Les bibliothèques suivantes ont été mises à niveau vers des versions plus récentes :
script.aculo.us
Chart.js
moment.js
moment-timezone-with-data.js
matchMedia.js
underscore.js
PrototypeJS
RequireJS
LessCSS
Facture
- Casting vers
int
a été supprimé pour les identifiants de facture auto-incrémentés lorsqu’ils sont précédés d’une chaîne. Par conséquent, les factures affichent désormais un 0 pour les nombres précédés d’une chaîne. GitHub-34451
Journalisation
- Le Magento Open Source ne crée plus d’entrées de journal pour les appels API en échec exécutant des actions en bloc dans Système > Actions en bloc. Auparavant, des entrées permanentes pour les appels API ayant échoué étaient ajoutées au journal des actions en masse.
- La création automatique de tableaux à partir de valeurs fausses n’est plus autorisée. GitHub-34499, GitHub-34589
Adobe Commerce coding standard
- Mis à jour
phpunit/ phpunit
à la dernière version dumagento-coding-standard
référentiel. GitHub-33622
- Mise à jour de la
webonyx/graphql-php
dépendance à la version ^14.9 dans le référentiel Adobe Commerce coding standard. GitHub-32863
- Ajout d’un nouveau fragment de code
Magento2.PHP.ArrayAutovivification
à la norme de codage Adobe Commerce pour identifier la création automatique de tableaux à partir d’une valeur false. GitHub-34509
- Ajout d’un nouveau fragment de code
Magento2.Functions.DeprecatedFunction
à la norme de codage Adobe Commerce. GitHub-34547
- Ajout de fonctions obsolètes à flairer
Magento2.Functions.DiscouragedFunction
dans la norme de codage Adobe Commerce. GitHub-34548
- La variable
Magento2.Annotation.MethodAnnotationStructure
sniff n’échoue plus avec un faux positif. GitHub-34679
Galerie de médias
- La variable
bin/magento media-gallery:sync
n’échoue plus dans les déploiements où AWS S3 est activé.
- Les nouveaux titres de sous-menu de galerie de médias sont désormais affichés lorsque les options de menu dépassent 11 et que la Activer la vieille galerie de médias configuration est activé. GitHub-33889
- Le temps de chargement de l’onglet Galerie de médias lors de la modification d’un produit avec de nombreuses images a été amélioré. GitHub-33434
MFTF
-
CURLOPT_POSTFIELDS
n’accepte plus les objets en tant que tableaux. Pour interpréter un objet en tant que tableau, effectuez unearray
). Cette pratique s’applique également aux autres options qui acceptent les tableaux. GitHub-33781 -
curl_init()
renvoie désormais unCurlHandle
plutôt qu’une ressource. La variablecurl_close()
n’a plus d’effet. Au lieu de cela, la variableCurlHandle
est automatiquement détruite si elle n’est plus référencée. GitHub-33781
- Correction d’erreurs dans les tests MFTF pour les produits téléchargeables. GitHub-34270
- Supprimé
CliCacheFlushActionGroup
deCatalogSearch
,GroupedProduct
,Newsletter
,Paypal
,Quote
, etReview
modules. GitHub-33531
- Les comparaisons non strictes entre les nombres et les chaînes non numériques fonctionnent désormais en attribuant le nombre à une chaîne et en comparant les chaînes. Les comparaisons entre les nombres et les chaînes numériques continuent de fonctionner comme auparavant. Cela signifie que 0 == "not-a-number" est désormais considéré comme faux. GitHub-33780
parse_url()
fait désormais la distinction entre les requêtes et les fragments absents et vides. GitHub-33782
- Mise à jour du code base afin d’éviter une erreur fatale lors de l’utilisation de la variable
ReflectionType::isBuiltin()
. GitHub-34194
Nouveaux groupes d’actions
AdminCheckOrderStatusInGridActionGroup
GitHub-33747
StorefrontSelectFirstShippingMethodActionGroup
GitHub-33773
AdminClickUpdateChangesOnCreateOrderPageActionGroup
GitHub-33689
Groupes d’actions
Les actions répétitives ont été remplacées par des groupes d’actions dans ces tests :
AdminAddInStockProductToTheCartTest
GitHub-34512
AdminAddBundleItemsTest
GitHub-34312
AdminConfigurableProductAddConfigurationTest
GitHub-34511
AdminConfigurableProductBulkUpdateTest
GitHub-34435
AdminConfigurableProductDisableAnOptionTest
GitHub-34511
AdminConfigurableProductOutOfStockAndDeleteCombinationTest
GitHub-34316
AdminConfigurableProductOutOfStockTestDeleteChildrenTest
GitHub-34316
AdminConfigurableProductRemoveAnOptionTest
GitHub-34511
AdminConfigurableProductRemoveConfigurationTest
GitHub-34511
AdminCreateAndEditSimpleProductSettingsTest
GitHub-34435
AdminCreateAndEditVirtualProductSettingsTest
GitHub-34435
AdminCreateInactiveFlatCategoryTest
GitHub-34490
AdminCreateInactiveInMenuFlatCategoryTest
GitHub-34510
AdminCreateDuplicateCategoryTest
GitHub-34414
AdminCreateDuplicateProductTest
GitHub-34414
AdminDeleteSimpleProductTest
GitHub-33783
AdminEditRelatedBundleProductTest
GitHub-34313
AdminMassDeleteBundleProductsTest
GitHub-34313
AdminNavigateMultipleUpSellProductsTest
GitHub-34314
AdminSimpleProductSetEditContentTest
GitHub-34435
AdminSimpleProductTypeSwitchingToConfigurableProductTest
GitHub-33788
AdminConfigurableProductTypeSwitchingToVirtualProductTest
GitHub-33788
AdminCreateConfigurableProductWithDisabledChildrenProductsTest
GitHub-33775
AdminUpdateFlatCategoryAndAddProductsTest
GitHub-34490
AdminUpdateTopCategoryUrlWithNoRedirectTest
GitHub-33774
AdminUpdateTopCategoryUrlWithRedirectTest
GitHub-33774
CatalogProductListWidgetOperatorsTest
GitHub-34579
CreateProductAttributeEntityWithReservedKeysTest
GitHub-34422
EnableDisableBundleProductStatusTest
GitHub-34313
StorefrontCheckRefundGrandTotalActionGroup
GitHub-34315
StorefrontInactiveCatalogRuleTest
GitHub-33556
StorefrontConfigurableProductCantAddToCartTest
GitHub-33786
StorefrontConfigurableProductOptionsTest
GitHub-33785
StorefrontConfigurableProductCanAddToCartTest
GitHub-33784
StorefrontConfigurableProductGridViewTest
GitHub-34311
StorefrontConfigurableProductListViewTest
GitHub-34311
StorefrontProductNameWithHTMLEntitiesTest
GitHub-33806
StorefrontProductNameWithDoubleQuoteTest
GitHub-32991
Nouveaux tests
AdminCreateOrderWithCheckedAppendCommentCheckboxTest
GitHub-32381
CheckoutWithEnabledCaptchaTest
GitHub-32991
StorefrontAddProductWithBackordersAllowedOnProductLevelToCartTest
GitHub-33635
StorefrontGiftMessageForOrderOnCheckoutCartPageTest
GitHub-32821
StorefrontCaptchaCheckoutWithEnabledCaptchaTest
GitHub-32821
StorefrontCheckoutWithEnabledMinimumOrderAmountOptionTest
GitHub-33460
Tests restructurés
CaptchaWithDisabledGuestCheckoutTest
GitHub-30828
Newsletters
- Les utilisateurs disposant des autorisations appropriées peuvent désormais gérer les abonnements aux newsletters des clients comme prévu. Auparavant, seuls les administrateurs disposant d’autorisations complètes pouvaient gérer les abonnements aux newsletters des clients sur la page du compte client Admin.
Commande
- Les acheteurs peuvent désormais réorganiser une commande existante qui contient un produit avec la combinaison d’options personnalisées de type fichier et de type liste déroulante à partir du storefront et de l’administrateur. Auparavant, l’applicationOpen Source renvoyait une erreur et ne traitait pas le réorganisation.
- La page Détails de la commande de l’administrateur se charge désormais comme prévu. Auparavant, l’applicationOpen Source renvoyait l’erreur suivante lors du chargement de la page des détails de la commande pour les commandes avec certaines taxes :
Call to a member function getId() on array
.
- Les administrateurs disposant d’autorisations restreintes qui incluent des privilèges de commande et d’expédition peuvent désormais afficher la page de commande comme prévu. Auparavant, l’applicationOpen Source entraînait une erreur lorsqu’un administrateur disposant de ces autorisations tentait d’afficher une commande. GitHub-14633
- Les acheteurs peuvent désormais passer une commande qui inclut un produit configurable enfant lorsqu’une limite de quantité maximale autorisée est définie.
Modes de paiement
- Les acheteurs peuvent désormais utiliser Braintree pour passer une commande à l’aide d’une adresse de facturation sans région définie dans les déploiements avec 3DS activé. Auparavant, le passage en caisse se figeait lorsque l’acheteur cliquait Passer commande et l’achat n’a pas pu être terminé. GitHub-34204
- L’option de paiement Venmo est désormais prise en charge.
- PayPal peut désormais effectuer le suivi par code BN.
bin/magento setup:upgrade
s’exécute désormais comme prévu lors de la mise à niveau de Magento Open Source 2.4.2-p1. Auparavant, l’applicationOpen Source renvoyait cette erreur :Unable to apply data patch Magento\Paypal\Setup\Patch\Data\UpdateBmltoPayLater for module Magento_Paypal
. GitHub-33678
- L’identifiant de magasin correct est désormais utilisé pour récupérer les cartes de crédit enregistrées lors du placement de la commande d’administrateur. Les cartes de crédit stockées s’affichent désormais lors du placement de la commande, en fonction du paramètre de configuration de la portée du site web. Auparavant, lorsqu’un administrateur tentait de créer une commande pour un client à partir de l’administrateur et sélectionnait la méthode Stored Credit Cards (Cartes de crédit stockées), aucune option n’était disponible pour les cartes stockées.
- Les anomalies avec l’affichage du montant des cartes-cadeaux avec le crédit PayPal ont été résolues. Auparavant, lorsque le crédit PayPal était activé et que plusieurs montants de carte-cadeau étaient configurés, si un acheteur modifiait le montant de la valeur d’une carte-cadeau, le storefront ne mettait pas à jour le montant des paiements échelonnés. Il s’agissait d’un problème connu dans Magento Open Source 2.4.3.
PayPal
- Magento Open Source n’affiche plus d’erreur lors du passage en caisse avec le mode de paiement PayPal Express. Auparavant, même si le processus de passage en caisse était terminé, l’application Open Source affichait cette erreur :
Something went wrong
.
- PayPal Express fonctionne désormais comme prévu dans le panier. Auparavant, lorsque vous cliquiez sur la variable PayPal pour lancer l'extraction express à partir du panier, l'application Open Source a généré cette erreur :
To check out, please sign in with your email address
. GitHub-33445
- PayPal Payflow Pro effectue désormais une capture différée avec les identifiants de transaction parents corrects dans les déploiements où la passerelle PayPal Payflow Pro avec Action de paiement est défini sur Autorisation. A Sale la transaction est envoyée à Payflow avec un identifiant de transaction parent du jeton Vault créé lors du passage en caisse comme prévu. Auparavant, une Capture différée La transaction a été créée et envoyée à PayPal Payflow. GitHub-33445
- Les acheteurs sont désormais redirigés vers la page de succès comme prévu une fois le paiement effectué avec les paiements avancés de PayPal terminé. Auparavant, les acheteurs n’étaient pas redirigés vers cette page, même si le paiement était traité avec succès et qu’aucune erreur n’était consignée.
Performances
- Le temps d’exécution du chargement de la liste de modules a été amélioré.
- Les performances du cache de termes de recherche populaires ont été améliorées. Auparavant, plus la variable
search_query
plus une requête de recherche est longue. GitHub-27559
- Par défaut, Magento Open Source redimensionne les images de manière synchrone lors de l’enregistrement du produit. Les vendeurs peuvent désormais redimensionner les images en tant que processus asynchrone en arrière-plan par des modifications mineures apportées à une
di.xml
fichier .
- Les performances de l’indexeur de produits de catégorie ont été améliorées dans les déploiements multi-magasins. GitHub-33984
- Le nouveau cache en mémoire pour
glob()
les appels système améliorent les performances en réduisant le nombre deglob()
appels . GitHub-34025
- Les performances du processus de réindexation de la grille d’ordre asynchrone ont été améliorées.
- La consommation de mémoire lors de l’exportation du produit a été optimisée.
Tarifs
- Le tri des prix fonctionne désormais comme prévu lorsque les prix des produits sont proches ou égaux à zéro et que les catalogues partagés sont activés. Auparavant, les prix de niveau zéro étaient ignorés lors de la réindexation des prix.
ProductAlert
- La nouvelle
product_alert
consumer améliore l’envoi d’alertes client en créant des messages de file d’attente, en exécutant le consommateur et en améliorant le temps d’exécution. Auparavant, l’applicationOpen Source générait une exception de mémoire insuffisante lors de l’envoi de plus de 100 000 alertes de produit. L'application Open Source a également mis plus de 20 heures pour envoyer toutes les alertes.
- Magento Open Source ne renvoie plus d’erreur si le filtre de prix sur la page Catégorie ne contient pas de seconde valeur. Auparavant, l’applicationOpen Source renvoyait une exception dans le fichier journal.
Vidéo produit
- Magento Open Source active désormais la fonction Enregistrer des champs de bouton et de saisie automatique lorsque vous saisissez une URL incomplète lors de l’ajout d’une vidéo (Admin Catalogue > Produits > Ajout d’une vidéo). Auparavant, la variable Enregistrer était désactivé et les champs n’étaient pas renseignés.
Révisions
- La vue Liste des produits affiche désormais la bonne évaluation en étoile des produits. GitHub-30196
- Les révisions sont désormais visibles comme prévu lorsqu’un acheteur clique sur Réviser sur la page produit storefront.
- L’évaluation des produits par étoiles est désormais cohérente dans les vues Grille et Liste de la page de liste des produits storefront. Auparavant, les évaluations du même produit pouvaient différer en mode d’affichage Grille et Liste.
Ventes
- Les performances des mises à jour de la grille de vente en mode asynchrone pour les tables avec de grands ensembles de données après la mise à niveau vers MariaDB 10.2.34 ont été améliorées.
- Magento Open Source supprime désormais les balises de HTML comme prévu du storefront. Compte > Mes commandes > Afficher l’ordre page. Auparavant, l’applicationOpen Source affichait les balises de HTML dans la section de commentaire de commande client du storefront.
- Couverture de test automatisée pour vérifier l’existence d’un index pour
sales_shipment_grid.order_id
a été ajouté.
POST V1/orders
Les appels mettent désormais à jour les attributs d’extension sans erreur. Auparavant, une erreur de syntaxe SQL se produisait.
Rechercher search-heading
- Les options de navigation par couches pour la plage de prix fonctionnent désormais comme prévu avec des attributs de prix personnalisés. L’application Open Source utilise la configuration de l’étape de navigation par prix lors du filtrage des attributs de prix personnalisés. Auparavant, l’applicationOpen Source utilisait la configuration manuelle de l’étape.
- Le storefront affiche désormais toutes les sous-catégories de la catégorie actuelle dans la navigation par couches, quel que soit le nombre de catégories disponibles dans le catalogue.
- Les recherches de catalogue Elasticsearch ne sont désormais plus sensibles à la diacritique. Auparavant, les recherches de termes sans accent donnaient des résultats différents de ceux des recherches effectuées sur le même terme avec un accent.
- Le poids de la recherche est désormais correctement défini sur les attributs de SKU contenant des caractères spéciaux.
category_name
a été ajouté aux codes d’attributs de produit réservés au système. L’application Open Source affiche désormais une erreur si un utilisateur tente de créer un attribut de produit avec le code d’attribut.category_name
. Auparavant, les produits n’étaient pas répertoriés dans la catégorie attendue et une erreur d’Elasticsearch était consignée.
- Les termes de recherche populaires sont désormais mis à jour après chaque requête de recherche GraphQL.
- Magento Open Source ajoute désormais les champs de prix corrects au mapping d’index de prix Elasticsearch. Auparavant, des champs de prix incorrects étaient ajoutés à l’index avec l’ID de magasin au lieu de l’ID de site web.
Expédition
- L’e-mail d’expédition inclut désormais uniquement le numéro de suivi pour l’envoi actuel. Auparavant, lorsqu’une commande comprenait plusieurs envois, l’email de chaque expédition incluait les numéros de suivi de tous les envois liés à la commande.
- Magento Open Source met désormais à jour le mini-panier avec succès lorsqu’un acheteur supprime un produit de son panier en mode multi-expédition, puis passe à une seule adresse de livraison. Auparavant, les prix des produits n’étaient pas mis à jour comme prévu.
- L’importation des taux de table fonctionne désormais comme prévu lors de l’utilisation de l’adaptateur de stockage S3. Auparavant, applicationOpen Source affichait cette erreur :
File "https://[bucket].s3.eu-central-1.amazonaws.com/[prefix]/tmp/phpLjGmHf" not found
. GitHub-33072
- Vous pouvez désormais désactiver les emails de mise à jour des envois comme prévu depuis Magasins > Configuration > Ventes > Courriers électroniques de vente. GitHub-33165
- Magento Open Source affiche désormais les frais de livraison gratuits (0) sur les totaux de page des factures d’administrateur et de storefront. Auparavant, lorsque l’expédition était égale à zéro pour une commande, l’application Open Source n’affichait pas le montant de l’expédition dans les totaux sur le total de l’expédition de la page de facture.
- Les demandes de taux aux compagnies de navigation en ligne ont été réduites de plusieurs demandes à une. L’assurance package et le prix de gestion par article/package sont désormais correctement calculés. Auparavant, applicationOpen Source affichait des taux d’expédition incorrects pour les méthodes de livraison FedEx.
- Magento Open Source affiche désormais les taux UPS lors de la création de libellés d’expédition pour l’expédition depuis Porto Rico. Auparavant, l’applicationOpen Source n’affichait pas ces taux UPS.
- L’adresse de la rue d’expédition est désormais effacée complètement comme prévu après suppression de la zone de saisie. Auparavant, la zone de texte conservait un ou plusieurs caractères après la suppression de l’adresse.
Magasin
- La fonction Se connecter en tant que client fonctionne désormais comme prévu dans les déploiements qui contiennent plusieurs magasins sur différentes URL. Auparavant, l’applicationOpen Source ne chargeait pas le magasin correct, même lors de l’accès au domaine de magasin approprié.
Taxe
- Magento Open Source calcule désormais correctement le sous-total du mini panier lorsqu’un client supprime un article après avoir sélectionné l’expédition vers plusieurs adresses.
- Magento Open Source affiche désormais le même taux d’imposition sur toutes les pages de passage en caisse lorsque le panier contient uniquement des produits virtuels.
- Les prix de niveau pour les produits configurables affichent désormais des valeurs fiscales incluses et exclues précises sur le storefront. Auparavant, les mêmes valeurs s’affichaient pour les taxes incluses et exclues. GitHub-33673
Test
- Les tests WebAPI sont désormais compatibles avec PHP 8.1. GitHub-34653
- Les tests d’intégration sont désormais compatibles avec PHP 8.1. GitHub-34567, GitHub-34569
-
Les commerçants peuvent désormais tester l’expérience client du pays dans lequel se trouve l’acheteur, plutôt que l’emplacement du marchand.
-
Les tests fonctionnels ont été stabilisés pour la compatibilité avec PHP 8.x. GitHub-34327, GitHub-34188
- Correction de problèmes fonctionnels dans les tests WebAPI. GitHub-34196
- Correction d’erreurs qui généraient des tests statiques faux positifs. GitHub-34056
- Mise à jour de la couverture du test pour
call_user_func_array
. GitHub-34301
- La variable
Magento\GraphQl\CatalogGraphQl\ProductSearchTest
test ne renvoie plus cette erreur lorsqu’il est exécuté avec AWS Elasticsearch :Magento\GraphQl\CatalogGraphQl\ProductSearchTest::testSearchSuggestions Failed asserting that an array is not empty. /var/www/html/dev/tests/api-functional/testsuite/Magento/GraphQl/CatalogGraphQl/ProductSearchTest.php:94 /var/www/html/dev/tests/api-functional/framework/Magento/TestFramework/TestCase/GraphQlAbstract.php:257
.
-
Correction de plusieurs avertissements de test unitaire non critiques en renommant toutes les variables de simulation afin d’inclure la variable
Mock
suffixe et suppression de références à une classe Object Manager obsolète. GitHub-33695 -
La variable
Magento\Framework\MessageQueue\TopologyTest
test est désormais compatible avec le MQ AWS pour RabbitMQ service. Auparavant, ce test échouait avec ce message :Invalid exchange configuration: magento-topic-based-exchange1 Failed asserting that two arrays are equal
.
- Les tests unitaires sont désormais compatibles avec PHP 8.1. GitHub-34441
Test unitaire
Les tests unitaires suivants ont été restructurés pour utiliser PHPUnit
au lieu de AspectMock
:
AllureHelperTest
GitHub-33294
ObjectHandlerUtil
GitHub-33584
MockModuleResolverBuilder
GitHub-33583
MagentoTestCase
GitHub-33582
ModuleResolverTest
GitHub-33308
ParallelGroupSorterTest
GitHub-33306
SuiteGeneratorTest
GitHub-33299
OperationDataArrayResolverTest
GitHub-33296
Thème
- Les messages de notification s’affichent désormais correctement lorsqu’un sous-chemin d’accès du Magento Open Source est configuré dans son URL de base.
- Ajout d’une
aria-label
au modèle de page storefront afin d’indiquer la page à laquelle l’acheteur va accéder lorsqu’il clique sur un lien. Auparavant, le même texte de lien était utilisé pour les liens vers différentes pages. GitHub-33075
- Magento Open Source n’affiche plus de message d’erreur lors du chargement de la page d’accueil d’un magasin avec un thème personnalisé préexistant. Auparavant, applicationOpen Source affichait ce message :
The store will not work correctly in the case when cookies are disabled
.
Traductions et paramètres régionaux
- La variable
UserExpiration
le programme de validation n’échoue plus avecde_DE
etuk_UA
locales. Auparavant, l’applicationOpen Source entraînait une erreur lorsqu’un administrateur tentait de définir une date d’expiration lors de la création d’un nouvel utilisateur à partir de l’administrateur dont les paramètres régionaux étaient définis sur .de_DE
ouuk_UA
. GitHub-32497
- Les noms des régions suisses sont désormais systématiquement présentés en anglais dans les formulaires de création ou de modification d'adresses. GitHub-32602
- Mis à jour
zip_codes.xml
modèles pour Guernesey afin de prendre en charge les codes postaux de GY10 pour l’île de Sark. GitHub-33144
- Ajout des régions de Biélorussie à la
directory_country_region
table. GitHub-33924
- Les anomalies d'affichage avec des storefronts exécutant les paramètres régionaux philippins (Philippines) ont été résolues. GitHub-33996
- Vous pouvez désormais saisir la date de naissance d’un client lors de la création d’un nouveau compte dans les magasins dont le paramètre régional est Portugais (Portugal). Auparavant, Magento Open Source renvoyait une erreur lorsque vous tentiez de créer un compte. GitHub-34130
- La page des détails du produit s’affiche désormais avec le paramètre régional Arabe (Arabie saoudite). Auparavant, ce paramètre régional endommageait la page des détails du produit.
Interface utilisateur
- Correction des erreurs avec les tests MFTF qui utilisent
maps.googleapis.com
.
- Magento Open Source supprime désormais les espaces insécables du champ de saisie de l’email du formulaire de contact. Auparavant, le formulaire était envoyé sans supprimer les espaces insécables de l’entrée d’email (le cas échéant), ce qui provoquait des erreurs dans les fichiers journaux. La variable Réponse n’apparaissait pas non plus dans le message électronique de contact généré envoyé à l’administrateur du magasin.
- Magento Open Source affiche désormais les produits associés, les produits de vente incitative et les produits de vente croisée en fonction de leurs postes dans l’administrateur.
.action-close
les boutons fonctionnent désormais comme prévu lorsqueMultiselect
est utilisé dans un modal. Auparavant, la variableaction-close
ne fonctionnait pas, car il héritait du CSS de la fonction.action-close
du modal. GitHub-27240
- Le fragment de code riche Offres est désormais présent dans le champ de prix principal dans la vue Produit. Auparavant, ce fragment de code était absent de ce champ dans le bloc de produits associé dans la vue Produit, ce qui entraînait l’affichage de prix incorrects dans les résultats de recherche Google. GitHub-34063
- Les problèmes de hauteur modale sur les appareils exécutant iOS ont été résolus. GitHub-34467
- Les menus déroulants des actions sont désormais correctement positionnés dans le storefront. GitHub-31379
- Les erreurs d’accessibilité avec navigation sur les pages de panier et de passage en caisse ont été résolues. GitHub-34483
- Les lecteurs d’écran peuvent désormais lire tous les éléments de formulaire pertinents sur les pages de produit.
- Ordre de tri des widgets de produit du catalogue Storefront (Catalogue > Catégorie > Produits) correspond désormais à l’ordre configuré dans l’Admin. GitHub-27126
- Le sélecteur de région fonctionne désormais comme prévu sur la page Créer un compte . GitHub-30099
- La grille Admin client affiche désormais toutes les données client, y compris les données nouvellement ajoutées.
date
attributs personnalisés, comme prévu. Auparavant, l’applicationOpen Source renvoyait une erreur et n’affichait pas correctement la grille d’administration du client lorsque la variabledate
a été défini en tant que colonne.
- Libellés de saisie sur le Catalogue > Produit la page détails a été modifiée afin de refléter précisément l’objectif de l’entrée. Les champs pour lesquels la saisie de l’utilisateur n’est plus requise n’affichent plus les libellés avec un astérisque.
- La barre d’outils de l’éditeur de texte enrichi est désormais accessible à l’aide de la touche de tabulation.
- Le nom accessible du contrôle inclut désormais le texte de son libellé visible pour le nombre d’éléments par liste déroulante de page.
- Le tableau contrôle la variable Catalogue > Produit la page détails contient désormais des libellés visibles et un nom accessible lors de la réduction du tableau.
- Les boutons du storefront ont désormais des noms accessibles uniques et descriptifs. Auparavant, les boutons fractionnés avec un bouton de texte et un bouton d’icône fléchée adjacent portaient le même nom accessible.
- Ajout d’une Aujourd'hui Pour afficher un récapitulatif des ventes et des commandes tout au long de la journée, sélectionnez l’option Admin tableaux de bord Commandes et montants . GitHub-34008
- État actif (clic) de la sélection multiple Fermer fonctionne désormais de manière cohérente. GitHub-34338
- Magento Open Source n’affiche plus ce message après la mise à niveau lorsque le mode Restriction des cookies est désactivé :
The store will not work correctly in the case when cookies are disabled
. GitHub-33811
- Les images de produit plein écran s’affichent désormais correctement sur les thèmes dont le sens de navigation des miniatures verticales est visible sur les appareils mobiles. Auparavant, les images de produit étaient mises à l’échelle ou invisibles sur les thèmes avec une direction de navigation verticale par miniatures sur les appareils mobiles en mode Plein écran.
- Les messages d’erreur de la page des détails du produit ne disparaissent plus rapidement lorsque la variable Synchronisation des produits de widget avec le stockage principal configuration est activé.
- La validation des valeurs négatives a été ajoutée au Quantité à renvoyer sur le formulaire Créer un retour .
- Magento Open Source n’affiche plus les adresses en double lorsqu’un acheteur clique Modifier l’adresse sur la page Révision et paiements d’un déploiement dans lequel la variable Recherche d’adresses configuration est activé.
- La variable Ajouter des produits est désormais activé comme prévu pour les administrateurs disposant d’autorisations restreintes lors de l’utilisation de la portée d’affichage en magasin sur la page Catégorie d’administrateur.
- Les points d’arrêt des vues sont désormais cohérents dans l’ensemble du Magento Open Source.
- Magento Open Source affiche désormais correctement les attributs de date client personnalisés avec des paramètres régionaux personnalisés sur la page client Admin.
- Les images ajoutées à l’aide du Créateur de pages ne sont plus dupliquées sur le storefront lorsqu’elles sont affichées avec une largeur de fenêtre de navigateur de 768 px. Auparavant, avec cette largeur de fenêtre du navigateur, l’application Open Source dupliquait les images sur le storefront en affichant les versions mobile et de bureau des images.
URL rewrites
- Les réécritures d’URL ne sont plus regénérées pour toutes les vues de magasin lors de la création d’une vue de magasin lors de l’exécution de
bin/magento setup:upgrade
. GitHub-32954
Structure de l’API web
- Les demandes d’API Web pour les ressources client auto-autorisées ne génèrent plus d’erreurs d’autorisation lorsque le panier persistant est activé.
- Vous pouvez désormais créer des objets à l’aide des classes enfants de
\Magento\Framework\Api\AbstractSimpleObjectBuilder
sous PHP 7.3. Auparavant,preg_match
a lancé ce message d’avertissement lorsque Magento Open Source était hébergé sur Redhat avec PHP 7.3 :Warning: preg_match(): Compilation failed: unrecognized character follows...
.
- Les totaux récupérés par la variable
PUT /V1/guest-carts/:cartId/collect-totals
sont désormais mises à jour par lashippingMethod
. GitHub-18508
- L’ajout d’un nouveau désérialiseur à l’API REST ne supprime plus les autres désérialiseurs. Auparavant, l’API REST acceptait un nouveau type de contenu, mais les types de contenu définis CORE pour les API ne fonctionnaient plus et renvoyaient une erreur 400. GitHub-26433
- Vous pouvez désormais supprimer un remplacement pour un paramètre défini dans une
webapi.xml
fichier . GitHub-33843
- Le Magento Open Source génère désormais un
customertoken
par les demandes de l’API GraphQL ou REST, comme prévu après plusieurs tentatives de connexion ayant échoué consécutivement. Auparavant, applicationOpen Source ne vérifiait pas si la valeur delock_expires_at
inoauth_token_request_log
était supérieur à la date et l’heure actuelles et renvoyait toujours le nombre de tentatives ayant échoué, ce qui empêchait le client de se connecter un jour. GitHub-34067
- Ajout d’un ID de devis masqué à
QuoteRepository::getList
ne provoque plus de boucle infinie. Auparavant, l’utilisation du processeur de paiement qui utilisait l’API REST pour mettre à jour les commandes déclenchait ce comportement. GitHub-33675
- La variable
/rest/all/V1/categories/<above_created_category_id>
L’appel du PUT respecte désormais les valeurs spécifiées paravailable_sort_by
. Auparavant, le menu déroulant Trier par liste de produits disponible était sélectionné avec toutes les options possibles sur la page Catégorie et le Utiliser tout a été sélectionnée. GitHub-32596
- Les performances des demandes d’API REST pour créer des jetons client ont été améliorées.
- Correction d’une erreur qui se produisait lors de la Ajout de code de magasin aux URL est défini sur Oui et un appel REST n’incluait pas de code de magasin. Bien que la payload ait été valide, l’appel renvoyait l’erreur suivante :
Fatal error: Allowed memory size of **​**​**​**​**​ bytes exhausted (tried to allocate ​**​** bytes) in vendor/magento/module-store/Model/StoreRepository.php on line 75
.
- Il est désormais possible de créer simultanément des factures partielles pour la même commande à l’aide de l’API REST.
Liste de souhaits
- Le Magento Open Source ne rend plus une liste de souhaits dans la barre latérale de la catégorie lorsque la variable Afficher dans la barre latérale l’option de liste de souhaits est désactivée. Auparavant, applicationOpen Source ignorait cette option.
WYSIWYG
- PageBuilder effectue désormais correctement le rendu des widgets personnalisés avec l’éditeur WYSIWYG.
Problèmes connus
Problème: les marchands peuvent remarquer des avis de rétrogradation de version de package pendant la mise à niveau d’Adobe Commerce 2.4.4 vers Adobe Commerce 2.4.4-p1. Ces messages peuvent être ignorés. L’incohérence des versions de package résulte d’anomalies au cours de la génération de package. Aucune fonctionnalité de produit n’a été affectée. Voir Packages rétrogradation après mise à niveau de 2.4.4 à 2.4.4-p1 Article de la base de connaissances pour une discussion sur les scénarios et les solutions applicables.
Problème: les acheteurs ne peuvent pas ajouter un produit à leur panier lorsqu’aucune option n’est sélectionnée dans Admin. Magasin > Configuration > Général > Options de pays > Autoriser les pays. L’application Open Source affiche à la place l’erreur de console suivante : Failed to load resource: the server responded with a status of 400 (Bad Request)
.
Problème: description de Dotdigital sur Recherche de partenaires et d’extensions > Magento Marketplace est obsolète. Voici une description mise à jour :
Dotdigital est une plateforme d’engagement client qui aide les spécialistes du marketing numérique et les développeurs à diffuser des communications sur le parcours client. Nous exploitons la puissance des données client, ce qui optimise l’engagement, la conversion et la fidélité des marques au fur et à mesure qu’elles se développent et évoluent. Les clients apprécient notre plateforme conviviale qui connecte les données propriétaires sur les systèmes, en exposant de puissantes informations et en automatisant les messages prédictifs cross-canal.
Plus de 350 employés de Dotdigital servent des entreprises de taille moyenne et d'entreprise partout dans le monde et dans différentes industries. Nous aspirons à inspirer un marketing responsable et nous sommes engagés dans la durabilité, la confidentialité et la sécurité. Dotdigital est fier d’être la première plateforme d’automatisation de marketing neutre en carbone au monde, certifiée selon les normes ISO 14001, ISO 27701 et ISO 27001.
Voir Dotdigital — Automatisation du marketing pour obtenir des informations sur les achats et les téléchargements.
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, 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 Magento Open Source 2.4.4 à l’aide de la version 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.