Notes de mise à jour d’Adobe Commerce 2.4.2

Adobe Commerce 2.4.2 comprend des améliorations des performances et de la sécurité ainsi que des améliorations importantes de la plateforme. Les améliorations de sécurité incluent l’extension de la prise en charge de la variable SameSite pour tous les cookies. Les améliorations B2B portent principalement sur la prise en charge des paiements en ligne pour les commandes d’achat. Elasticsearch 7.9.x et Redis 6.x sont désormais pris en charge.

Cette version comprend plus de 280 nouveaux correctifs pour le code principal et 35 améliorations de sécurité. Elle comprend la résolution de près de 290 problèmes GitHub par les membres de notre communauté. Ces contributions de la communauté vont du nettoyage mineur du code principal à des améliorations significatives dans GraphQL.

Tous les problèmes connus identifiés dans la version 2.4.1 ont été corrigés dans cette version.

NOTE
Les versions d’Adobe Commerce peuvent contenir des modifications incompatibles avec l’arrière-plan (BIC). Pour examiner les modifications incompatibles avec l’arrière-plan, voir Référence BIC. Les principaux problèmes incompatibles avec le passé sont décrits dans la section Faits saillants de la BIC. Toutes les versions n’introduisent pas de code BIC majeur.

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.

Correctif de sécurité disponible

Les vendeurs peuvent désormais installer des correctifs de sécurité sensibles au temps sans appliquer les centaines de correctifs fonctionnels et d’améliorations fournis par une version trimestrielle complète (par exemple, 2.4.1-p1). Le correctif 2.4.0.12 (package du compositeur 2.4.1-p1) est un correctif de sécurité qui fournit des correctifs pour les vulnérabilités identifiées dans notre version trimestrielle précédente, 2.4.1. Tous les correctifs qui ont été appliqués à la version 2.4.1 sont inclus dans ce correctif de sécurité. (A correctif fournit un correctif à une version publiée qui résout un problème ou un bogue spécifique.)

Pour obtenir des informations générales sur les correctifs de sécurité, voir Présentation de la nouvelle version du correctif de sécurité. Pour plus d’informations sur le téléchargement et l’application de correctifs de sécurité (y compris le correctif 2.4.1-p1), voir Démarrage rapide de l’installation sur site. Les correctifs de sécurité incluent uniquement des correctifs de sécurité, et non les améliorations de sécurité supplémentaires incluses dans le correctif complet.

Autres informations de mise à jour

Bien que le code de ces fonctionnalités soit fourni avec des versions trimestrielles , plusieurs de ces projets (par exemple, 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.

Tons clairs

Recherchez les points forts suivants dans cette version.

Améliorations substantielles de la sécurité

Cette version comprend plus de 35 correctifs de sécurité et améliorations de la sécurité de la plateforme. Tous les correctifs de sécurité ont été rétroportés à 2.4.1-p1 et 2.3.6-p1.

Plus de 35 améliorations de sécurité qui permettent de fermer les vulnérabilités d’exécution de code distant (RCE) et de script de site à site (XSS)

Aucune attaque confirmée liée à ces problèmes n'a été survenue à ce jour. Cependant, certaines vulnérabilités peuvent être exploitées pour accéder aux informations sur les clients ou prendre le contrôle des sessions d’administrateur. La plupart de ces problèmes nécessitent qu’un attaquant obtienne d’abord l’accès à l’administrateur. Par conséquent, nous vous rappelons de prendre toutes les mesures nécessaires pour protéger votre administrateur, y compris, mais sans s’y limiter, les efforts suivants : placé sur la liste autorisée IP, authentification à deux facteurs, l’utilisation d’un VPN, l’utilisation d’un emplacement unique plutôt que /admin, et bonne hygiène des mots de passe. Voir Bulletin de sécurité Adobe pour une discussion sur ces problèmes résolus.

Améliorations supplémentaires de la sécurité

Les améliorations de sécurité pour cette version sont les suivantes :

  • Tous les cookies principaux prennent désormais en charge SameSite attribut.

  • L’application affiche désormais des messages qui identifient un contenu potentiellement malveillant dans les champs de description de produit et de catégorie lorsque l’utilisateur tente d’enregistrer des valeurs dans ces champs.

  • Les opérations du système de fichiers sur les composants ont été normalisées et renforcées afin d’éviter les chargements malveillants.

  • Les violations de la stratégie de sécurité du contenu principal (CSP) ont été corrigées.

NOTE
À compter de la version 2.3.2, nous assignerons et publierons des numéros CVE (Vulnérabilités et expositions courantes indexées) avec chaque bogue de sécurité signalé par des tiers externes. Cela permet aux utilisateurs d’identifier plus facilement les vulnérabilités non corrigées dans leur déploiement. Pour en savoir plus sur les identifiants CVE, voir CVE.

Améliorations des infrastructures

Cette version contient des améliorations de la qualité de base, qui améliorent la qualité du framework et ces domaines fonctionnels : compte client, catalogue, CMS, OMS, Import/Export, Promotions et Ciblage, Panier et Passage en caisse, B2B, Évaluation et Aperçu.

Améliorations de la plateforme

  • Elasticsearch 7.9.x est désormais pris en charge. Bien que nous recommandions d’exécuter Elasticsearch 7.9.x, la version 2.4.x reste compatible avec Elasticsearch 7.4.x.

  • 2.4.2 a été testé avec Varnish 6.4. La version 2.4.x reste compatible avec Varnish 6.x.

  • Redis 6.x est désormais pris en charge. La version 2.4.x reste compatible avec Redis 5.x.

  • 2.4.2 est désormais compatible avec Compositeur 2.x. Nous recommandons aux commerçants de migrer vers le compositeur 2.x. Bien que vous puissiez installer cette version à l’aide du compositeur 1.x, le compositeur 1.x atteindra bientôt la fin de vie. Pour obtenir un aperçu des fonctionnalités du compositeur 2.x, voir Composer 2.0 est désormais disponible !

La possibilité de configurer une installation pour utiliser une base de données partagée est désormais obsolète dans cette version. Les commerçants qui utilisent actuellement une base de données partagée doivent commencer à planifier la restauration ou la migration vers une base de données unique ou utiliser une autre approche. Voir Abandon de la fonctionnalité de base de données partagée dans Adobe Commerce Article de DevBlog pour un aperçu de ce problème. Voir Rétablissement d’une base de données partagée en une seule base de données pour les instructions de migration.

Améliorations des performances

Cette version comprend des améliorations du code qui améliorent les performances de l’API et le temps de réponse de l’administrateur pour les déploiements avec des catalogues volumineux. Plusieurs améliorations de l’évolutivité permettent à la version 2.4.2 de prendre en charge en mode natif des catalogues complexes jusqu’à 20 fois plus volumineux que dans les versions précédentes.

GraphQL

Cette version ajoute la couverture GraphQL pour les fonctionnalités suivantes :

  • Ajout de la prise en charge de plusieurs listes de souhaits. Vous pouvez utiliser GraphQL pour create, delete, et renommer listes de souhaits et move ou copy entre eux.

  • Ajout de la prise en charge des autorisations de marchandisage renvoyées (RMA). Les acheteurs peuvent demander un retour. Si le commerçant accepte la demande, il peut effectuer des tâches telles que ajouter un commentaire et ajouter des informations de suivi.

  • Ajout de la prise en charge des fonctionnalités B2B suivantes :

  • Prise en charge des unions dans GraphQL. GitHub-29425

  • Ajout de la prise en charge de listes de comparaison. Les acheteurs peuvent create et delete des listes de comparaison, et add et remove dans les listes de comparaison. En outre, les acheteurs qui créent une liste de comparaison en tant qu’invités peuvent se connecter en tant que client et conserver leurs listes de comparaison.

  • Ajout de la generateCustomerTokenAsAdmin mutation et mise à jour de la variable Customer pour prendre en charge l’assistance relative aux achats à distance.

  • Ajout de la prise en charge de la localisation dans les magasins pour prendre en charge des tâches telles que le changement de langue, de panier et de devise.

  • Le schéma GraphQL a été amélioré afin d’optimiser la récupération des données de produit pour les produits configurables avec de nombreuses variantes.

  • Les identifiants d’objet de type entier ont été abandonnés au profit de uid attributs de type ID.

  • Ajout de la staging à l’attribut ProductInterface et CategoryInterface pour déterminer si un produit est intermédiaire et afficher les informations de campagne associées.

Voir Guide du développeur de GraphQL pour plus d’informations sur ces améliorations.

B2B

2.4.2 introduit B2B v1.3.1. Cette version comprend la prise en charge des paiements en ligne pour les commandes d’achat ainsi que plusieurs correctifs.

Les commandes d’achat peuvent désormais être effectuées à l’aide de méthodes de paiement en ligne.. Les acheteurs B2B sont invités à sélectionner le mode de paiement de leur choix pour chaque commande lors du passage en caisse initial. Une fois la commande approuvée, les acheteurs sont invités à saisir les détails du paiement pour convertir la commande en commande finale.

Pour prendre en charge un processus complet d’acceptation des paiements en ligne, cette fonctionnalité permet également :

  • Remplace les modèles de méthode de paiement existants lors du passage en caisse initial pour maintenir la conformité PCI.

  • Maintient la compatibilité avec les méthodes de paiement tierces, personnalisées et développées par la communauté.

  • Avertit les acheteurs par courrier électronique lorsqu’ils doivent ajouter des détails de paiement à une commande approuvée.

  • Permet de personnaliser les emails de l’administrateur, ce qui permet aux commerçants d’utiliser des modèles cohérents avec leur marque.

  • Introduit un Approved – Pending Payment état des commandes d’achat pour indiquer clairement quand une action est requise.

  • Empêche l’ajout ou la suppression des codes de remise à l’étape de paiement finale, ce qui garantit que le montant total de la commande reste inchangé pour les commandes approuvées.

  • Permet aux acheteurs de modifier le mode de paiement lors de l’étape de paiement finale afin de conserver une certaine souplesse et d’augmenter la conversion.

Cette version comprend également plusieurs correctifs de bogues. Voir Notes de mise à jour B2B.

PWA Studio

Cette version de PWA Studio inclut :

  • Internationalisation et localisation. Venia prend désormais en charge plusieurs langues et devises.

  • Amélioration de la structure d’extensibilité pour la prise en charge des modifications de code par le biais d’extensions.

  • Composants initiaux pour les fonctionnalités liées à Mon compte, telles que Liste blanche, Paiements enregistrés, Carnet d’adresses et Historique des commandes.

  • Diverses optimisations de performances et corrections de bogues.

Pour plus d’informations sur les améliorations et les correctifs, voir Versions PWA Studio. Voir compatibilité pour obtenir la liste des versions de PWA Studio et de leurs versions compatibles.

Page Builder

Cette version comprend des améliorations de la migration de contenu du Créateur de pages et de la personnalisation CSS du Créateur de pages :

  • Les développeurs peuvent désormais mettre en forme différemment la sortie de type de contenu par fenêtre d’affichage sans utiliser la variable !important de .

  • Le contenu migré vers le Créateur de pages n’est plus ajouté avec la mise en forme intégrée par défaut.

  • Le Créateur de pages n’a plus besoin de placer tous les types de contenu dans une ligne. La variable Étape du créateur de pages est maintenant vide au départ et prend en charge l’ajout direct des types de contenu suivants à l’étape : lignes, colonnes, onglets, code de HTML, blocs, blocs dynamiques.

  • Les marges et les plages prédéfinies ne sont plus nécessaires pour les types de contenu.

  • Le nouveau mobile sélecteur de fenêtre d’affichage et la fenêtre d’affichage des valeurs de champ de formulaire permet aux utilisateurs et aux développeurs d’effectuer les actions suivantes :

    • Afficher le contenu sur différents ports d’affichage lors de la création

    • Optimisez le paramètre de champ de hauteur minimale sur différents types de contenu pour chaque fenêtre d’affichage. (Un seul paramètre (hauteur min.) est pris en charge prêt à l’emploi. Développement personnalisé nécessaire pour activer l’optimisation mobile pour d’autres paramètres de contenu.)

    • Ajoutez la portée du champ aux champs personnalisés et aux ensembles de champs (développeurs).

Conseils interactifs intégrés au produit

Les conseils intégrés interactifs aux produits fournissent aux marchands des conseils d’utilisation et des informations sur les nouvelles annonces de fonctionnalités, des guides de présentation, des informations d’intégration et des info-bulles à l’intention des administrateurs. Les administrateurs doivent s’inscrire auprès de l’administrateur pour recevoir des conseils intégrés aux produits si cette fonctionnalité n’est pas activée.. Voir Collecte de données d’utilisation et Utilisation de l’administrateur.

Intégration Adobe Stock

Cette version inclut l’intégration Adobe Stock v2.1.1.

Galerie de médias

Nouvelles ressources de rôle pour la galerie multimédia. Cette version permet aux commerçants de limiter l’accès administrateur uniquement à la galerie de médias et de contrôler qui peut effectuer ces actions :

  • Insérer des ressources multimédias dans du contenu

  • Chargement de ressources

  • Modification des détails des ressources

  • Suppression de ressources de la galerie de médias

  • Gestion de la structure de dossiers.

Images optimisées pour le web dans le contenu. Les vendeurs peuvent désormais utiliser rendu d’image optimisé pour le web dans le contenu plutôt que dans les images haute résolution. L’image d’origine n’est pas modifiée dans la galerie multimédia et le rendu de l’image est généré dynamiquement lorsque l’image est insérée dans le contenu.

Améliorations de la prise en charge d’AWS S3

La prise en charge d’Amazon Simple Storage Service (AWS S3) a été améliorée afin d’inclure la prise en charge des éléments suivants :

La prise en charge d’AWS S3 a été ajoutée à tous les modules, y compris l’intégration B2B, PageBuilder et Adobe Stock.

Structure de test fonctionnel (MFTF)

MFTF 3.2.1 est désormais disponible. Cette version introduit la tolérance aux erreurs dans les tests et la génération de suites de tests. D’autres améliorations et correctifs sont décrits dans la section Modification de la structure de test fonctionnelle.

Système de gestion des commandes (OMS)

Le connecteur MCOM est entièrement compatible avec la version 2.4.2. Les correctifs et améliorations apportés au connecteur sont décrits dans la section Notes de mise à jour de Connector. Cette version comprend des améliorations de l’interface de ligne de commande OMS, qui fournit désormais des informations détaillées que les partenaires et les équipes d’assistance peuvent utiliser pour résoudre les problèmes. retry, queue_prune, order_sync, message process, et catalog export processus.

Extensions développées par le fournisseur

Consultez les articles suivants pour connaître les mises à jour des fonctionnalités et des modifications de cette version :

Problèmes résolus

Nous avons corrigé des centaines de problèmes dans le code principal 2.4.2.

Installation, mise à niveau, déploiement

  • Les commerçants peuvent désormais mettre à niveau un déploiement Open Source qui exécute MySQL 8.x vers un déploiement Commerce. Auparavant, l’application générait une exception lors de la AUTO_INCREMENT valeurs rétablies sur les valeurs initiales de toutes les tables où row_id a été ajouté pendant la mise à niveau.
  • L’application affiche désormais un message d’erreur qui identifie le chemin utilisé pour créer le correctif en cas d’erreur lors de l’exécution. bin/magento/setup:db:generate-patch. GitHub-27523
  • block_html, full_page, et layout Les caches sont désormais désactivés comme prévu après bin/magento/setup:upgrade exécution. GitHub-28186
  • La version PHP minimale requise dans bootstrap.php a été mis à jour. GitHub-30004
  • Vous pouvez désormais exécuter bin/magento/setup:upgrade après l’installation des exemples de données. Auparavant, lorsque vous tentiez de vous exécuter. bin/magento/setup:upgrade, l'application affichait cette erreur : unable to apply data patch magento\catalogrulesampledata\setup\patch\data\installcatalogrulesampledata for module magento_catalogrulesampledata. L'application a également affiché cette erreur dans le journal système : main.ERROR: Sample Data error: Unable to unserialize value. Error: Syntax error. GitHub-30685
  • Vous pouvez maintenant définir une clé d’API YouTube à partir de la ligne de commande comme prévu. Auparavant, l’application renvoyait cette erreur lorsque vous tentiez de l’exécuter. bin/magento config:sensitive:set catalog/product_video/youtube_api_key: There are no sensitive configurations to fill.
  • L’application honore désormais la variable maxMessages valeurs définies dans queue_consumer.xml. Auparavant, l’application utilisait uniquement les valeurs de configuration de déploiement. GitHub-29522
  • La génération d’URL pour un nouveau magasin fonctionne désormais comme prévu lorsque le magasin est créé à l’aide de bin/magento setup:config:import. Auparavant, les réécritures d’URL n’étaient pas générées dans les environnements de production. GitHub-30025
  • L’application n’affiche plus cette question lorsque vous exécutez bin/magento setup:install pour se connecter à une base de données existante : Overwrite the existing configuration for db-ssl-verify?[Y/n]. GitHub-29612

AdminGWS

  • La variable Ajouter une nouvelle évaluation et le bouton Enregistrer, Supprimer, Réinitialiser Les boutons ne sont plus disponibles sur la Magasins > Attribut > Évaluation pour un administrateur disposant d’autorisations restreintes.
  • L’administrateur affiche désormais uniquement les données des sites Web auxquels l’administrateur connecté est autorisé à accéder. Auparavant, l’administrateur affichait les données de tous les sites web du déploiement.
  • Tous les sites web sélectionnés sont désormais stockés dans gws_websites quelle que soit la taille de l’identifiant du site web. Auparavant, les ID de site web étaient tronqués et la liste des sites web sélectionnés n’était pas stockée dans la base de données. Les rôles utilisateur n’étaient pas correctement enregistrés et l’application affichait cette erreur lorsqu’un commerçant tentait de modifier et d’enregistrer un rôle : The "X" store ID is incorrect. Verify the store ID and try again.
  • L’application affiche désormais le nombre d’éléments correct dans les grilles d’administration pour les utilisateurs administrateurs à accès limité. Auparavant, le nombre affiché pour ces grilles reflétait les données de tous les pays, tandis que les grilles elles-mêmes affichaient les données de pays spécifiques uniquement. (Ce correctif corrige un problème lié aux segments des clients, aux règles de prix du catalogue, aux règles de prix du panier, à tous les utilisateurs, aux utilisateurs verrouillés et aux grilles de rôles utilisateur.)
  • Administrateurs dont les autorisations excluent Magento_Catalog::edit_product_design (Modifier la conception du produit) peut désormais créer un produit en enregistrant un produit existant portant un nouveau nom dans la vue de magasin sélectionnée. Auparavant, l’application affichait cette erreur : Not allowed to edit the product's design attributes. GitHub-28106
  • L’application n’affiche plus le Ajouter un attribut sur les pages situées sous Magasins > Attributs lorsqu’un administrateur ne dispose pas des autorisations appropriées pour créer ces entités. Auparavant, l’application générait une erreur 404 lorsqu’un administrateur de site web qui ne disposait pas des autorisations appropriées tentait de créer une Jeu d’attributs ou Client attribut.
  • L’application ne renvoie plus d’erreur lorsque vous essayez de modifier backend-frontname en utilisant la variable ssh après avoir installé Adobe Commerce. GitHub-26762

Intégration Adobe Stock

  • Prise en charge de la lecture ajoutée exif_image.png ou exif-image.jpeg métadonnées. GitHub-1449
  • Le contenu affiché lorsque vous cliquez sur le signet Vue par défaut pour la galerie multimédia n’est plus filtré. Auparavant, la vue par défaut contenait un filtre appliqué à partir de url-filter application. GitHub-1813, GitHub-1789, GitHub-1780
  • La logique a été supprimée du contrôleur WYSIWYG OnInsert (Magento\Cms\Controller\Adminhtml\Wysiwyg\Images\OnInsert::execute()) et ajouté à la variable Model\Wysiwyg\Images\PrepareImage::execute() modèle. GitHub-1504
  • L’émulation de zone a été supprimée de la media-content:sync Commande (\Magento\MediaContentSynchronization\Console\Command\Synchronize::execute). GitHub-1784

Analytics

  • Les rapports avancés fonctionnent désormais comme prévu pour plusieurs environnements du même domaine. Auparavant, les fichiers CSV générés par les rapports avancés échouaient car les guillemets doubles étaient précédés de barres obliques inverses plutôt que d’un autre guillemet double, comme l’exige la norme CSV RFC4180.
  • La variable analytics_collect_data La tâche s’exécute maintenant correctement lors de l’utilisation du port par défaut ou non par défaut pour se connecter à MySQL dans env.php. Auparavant, analytics_collect_data générait une erreur lorsque vous utilisiez le port autre que le port par défaut.
  • Fichiers CSV générés par analytics_collect_data sont désormais correctement échappés. Auparavant, ces fichiers n’étaient pas générés avec l’échappement correct, ce qui empêchait la génération de rapports d’inventaire.

Braintree

  • Les acheteurs peuvent désormais utiliser la fonction Payer d’Apple pour passer une commande de produits virtuels. Auparavant, l’application générait cette erreur : There are no shipping methods available for you right now. Please try again or use an alternative payment method.

  • Le mode de paiement par défaut PayPal Express Checkout fonctionne désormais comme prévu avec le mode de paiement Carte de crédit Braintree. Auparavant, l’application n’affichait pas la variable PayPal lorsque le mode de paiement Carte de crédit du Braintree a été activé.

Lot de produits

  • L’application ne définit plus les prix des articles enfants à prix fixe groupés.
  • Le tri des prix fonctionne désormais comme prévu lorsque les produits en bundle incluent des produits en rupture de stock. Auparavant, le tri des prix par ordre décroissant n’affichait pas les produits par ordre décroissant de prix.
  • L’application applique désormais automatiquement une quantité par défaut de 1 pour les options de produit groupé lorsqu’il existe de nombreuses options. Auparavant, les marchands devaient affecter manuellement une quantité par défaut à chaque option.
  • La page de création de la facture de commande affiche désormais les produits enfants pour les produits regroupés comme prévu. GitHub-27350
  • L’application attribue désormais les prix corrects des produits lorsque vous réorganisez des produits simples qui font partie d’un produit groupé avec un prix personnalisé. Auparavant, la définition d’un prix personnalisé sur un produit groupé générait des prix incorrects sur les produits simples joints lors de la réorganisation. GitHub-30343
  • Appel de POST /V1/order/{orderId}/ship pour envoyer une commande qui contient un produit en bundle, la commande est désormais terminée comme prévu. Auparavant, l’application affichait ce message d’erreur : You can't create a shipment without products. GitHub-9762

Panier et passage en caisse

  • L’estimateur de méthode d’expédition fonctionne désormais comme prévu lorsque des attributs d’adresse personnalisés sont présents à l’étape d’expédition du workflow de passage en caisse. Auparavant, l’application affichait ce message d’erreur : {"message":"Error occurred during \"custom_attributes\" processing. A custom attribute is specified with a missing attribute code. Verify the code and try again."} GitHub-27505
  • L’application affiche désormais la variable You have no items in your shopping cart message dans le mini panier, comme prévu lorsqu’un acheteur supprime le seul article de son panier. Auparavant, les données du panier n’étaient pas mises à jour pour checkout/cart/removeFailed lorsqu’un acheteur a supprimé l’élément unique et que l’application a affiché ce message : 1 product requires your attention.
  • L’application n’affiche plus le coût de livraison d’une commande pour un mode de livraison non applicable. Auparavant, l’application affichait un prix de 0 pour un mode de livraison non applicable dans le workflow de passage en caisse.
  • L’adresse de facturation par défaut d’un client est désormais sélectionnée lorsque la variable Mes adresses de facturation et de livraison sont les mêmes n’est pas sélectionnée dans le workflow de passage en caisse.
  • Les administrateurs peuvent ajouter un produit à un panier par SKU depuis l’administrateur sans être redirigés hors de l’administrateur. L’administrateur n’est plus redirigé vers une page de storefront et l’application affiche le produit dans la section Éléments du panier d’administration comme prévu.
  • L’application affiche désormais des messages d’erreur informatifs lorsque vous chargez un fichier CSV contenant plusieurs types d’erreurs lors de l’ajout de produits au panier par SKU. Auparavant, l’application affichait une page vierge et un message d’erreur générique lorsque vous cliquiez Choisir un fichier on Gérer le panier > Ajouter au panier par SKU.
  • Le contenu du panier n’est plus perdu lorsqu’un acheteur passe d’un magasin à un autre dans un autre domaine.
  • Les acheteurs peuvent désormais terminer une commande à l’aide de l’option Extraire avec plusieurs adresses lors de l’utilisation de plusieurs méthodes de livraison. Auparavant, l’application affichait cette erreur : There has been an error processing your request. GitHub-30197
  • L’application affiche désormais le pays par défaut correct sur la page d’expédition du workflow de passage en caisse lorsque l’acheteur modifie la vue de magasin à partir du panier.
  • L’application exclut désormais la session en cours lors du nettoyage des sessions clients après la réinitialisation d’un mot de passe post-déconnexion lorsqu’un acheteur invité est connecté. Auparavant, l’application vidait le panier lorsque l’acheteur réinitialisait son mot de passe.
  • L’application affiche désormais le pays par défaut correct pour une vue de magasin lorsqu’un acheteur modifie la vue de magasin dans le panier. Auparavant, lorsque la vue du magasin était modifiée dans le panier, le pays par défaut était incorrect.
  • L’ordre dans lequel les autorisations de catalogue sont configurées n’empêche plus les administrateurs disposant des autorisations appropriées d’ajouter des produits au panier. Auparavant, l’application ne vérifiait pas la variable addToCart paramètres de configuration pour le groupe de clients actuel. Par conséquent, lorsqu’un administrateur a tenté d’ajouter un produit au panier, l’application a généré une erreur.
  • Appels redondants à la fonction /rest/V1/guest-carts/cart_id/totals-information Les points de terminaison du panier ont été supprimés, ce qui a amélioré les performances du panier. Auparavant, lorsqu’un acheteur ajoutait un produit au panier, puis consultait le panier, l’application appelait la variable collectAddressTotals plusieurs fois.
  • L’application n’affiche plus le Région pour un pays dans le workflow de passage en caisse lorsque la variable Autoriser l’état s’il est facultatif pour le pays est désactivé. GitHub-30747
  • L’application ne répète plus d’adresse de livraison dans le workflow de passage en caisse du storefront lorsqu’une commande est récommandée à partir de l’administrateur.
  • Correction de problèmes liés à la conception de AdminMediaGalleryInsertLargeImageFileSizeTest.
  • Tous les nouveaux enregistrements dans la variable quote La valeur de 1 dans la table des invités est désormais indiquée dans la variable customer_is_guest field. Auparavant, pour chaque nouvel invité qui ajoutait un produit dans le panier, un 0 était affecté à l’enregistrement dans la variablequote.customer_is_guest champ .
  • La variable Envoyer le bouton de la section Révision et paiements du workflow de passage en caisse a été déplacé vers l’intérieur. <form id="purchaseorder-form"...></form>, ce qui rend possible l’envoi implicite du formulaire sans modifier aucun script JavaScript. GitHub-27925
  • L’application n’affiche plus le Région sur le workflow de passage en caisse lorsque la variable Autoriser l’état s’il est facultatif pour le pays est désactivé. GitHub-30747
  • L’application met désormais correctement à jour le sous-total d’éléments d’un panier lorsqu’un acheteur clique sur Mettre à jour le panier lors de l’extraction avec plusieurs adresses. GitHub-30408
  • L’application ne renvoie plus d’exception lorsque config.xml des noeuds existent pour les méthodes de paiement qui ne sont pas actuellement installées. Auparavant, l’application envoyait une exception lors de l’extraction. GitHub-29555
  • L’application effectue désormais le rendu des noms de produits qui contiennent correctement des caractères spéciaux dans le mini panier. GitHub-29075
  • L’application définit désormais le package de remise approprié pour le taux de la table. Auparavant, l’application n’appliquait pas de règle de panier définissant une remise sur le panier lors du calcul du taux tabulaire. GitHub-30169

Règle de prix du panier

  • Les règles de prix du panier sont désormais appliquées comme prévu lorsque les sous-totaux des commandes sont calculés sans tenir compte des taxes. La nouvelle Subtotal (Incl. Tax) a été ajoutée en tant que condition de règle de prix de panier.
  • L’application d’une règle de prix avec un coupon à l’aide de GraphQL fonctionne désormais comme prévu lorsque la variable Remise de montant fixe pour le panier entier est utilisée.

Catalogue

  • L’application affiche désormais tous les produits réactivés dans le storefront, comme prévu. Auparavant, lorsqu’un produit était désactivé puis réactivé, l’application n’affichait pas le produit tant que le cache de page vernis n’était pas effacé ou que le magasin n’était pas réindexé, car le cache de page n’était pas invalidé après la réactivation d’un produit.
  • La réindexation partielle des catalogues volumineux fonctionne désormais comme prévu. Auparavant, les produits disparaissaient de manière aléatoire de la page de catégorie de storefront lors de la réindexation avec la variable catalogsearch_fulltext indexeur partiel.
  • Les acheteurs peuvent désormais réorganiser une commande facturée d’un produit avec des options personnalisables comme prévu. Auparavant, l’application renvoyait cette erreur lorsqu’un acheteur tentait de réorganiser : {"0":"The product's required option(s) weren't entered. Make sure the options are entered and try again.
  • Vous pouvez désormais définir correctement la variable Disposition sur la page Conception de catégorie , définissez sur Aucune mise à jour de mise en page. Auparavant, l’application revenait à Catégorie - FullWidth lorsque vous avez affecté la variable Aucune mise à jour de mise en page .
  • Les problèmes liés à l’ordre de tri des produits sur le storefront ont été résolus. Auparavant, lorsque l’application indexait les prix des produits, elle définissait parfois le min_price et max_price à 0 dans la variable catalog_product_index_price qui affectait l’ordre de tri des prix sur le storefront.
  • L’application met désormais à jour avec succès les attributs étiquetés. Product Type. Auparavant, la variable product_type était réservé dans le code, l'application affichait ce message lorsque vous tentiez de mettre à jour un Product Type attribute: An attribute with the same code (product_type) already exists.
  • L’application ne modifie plus la position d’une vidéo téléchargée dans la section Images et vidéos de la page des détails du produit lorsque vous enregistrez le produit. Auparavant, une valeur d’index (position dans la liste) était affectée à la nouvelle position de l’image. Si les positions d’image existantes n’étaient pas alignées sur leurs valeurs d’index, la nouvelle image était mal placée dans la liste.
  • La variable Ajouter au panier fonctionne désormais comme prévu chaque fois que la fonction Ajouter au panier est accessible en cliquant sur . Auparavant, si vous cliquiez plusieurs fois sur ce bouton en attendant le chargement d’une page de produit, l’application générait cette erreur : Invalid Form Key. Please refresh the page.
  • L’application ne vide plus le cache de catégorie lorsqu’un commerçant ajoute ou supprime des produits désactivés dans ou depuis une catégorie. Auparavant, l’application purgeait le cache des catégories connexes, en dépit de l’état du produit. Les catégories n’étaient pas non plus affectées lors de l’enregistrement d’une catégorie, ce qui entraînait le vidage du cache de catégorie.
  • Filtrage des produits du catalogue dans la variable Toutes les vues de magasin fonctionne désormais correctement. Auparavant, les produits dont l’état était Enabled ou Disabled étaient affichées dans la grille tout en filtrant uniquement les produits activés ou désactivés.
  • La réindexation partielle ne génère plus de produits manqués et de catégories vides.
  • La réorganisation fonctionne désormais comme prévu lorsque Utilisation du calendrier JavaScript est activé (Magasins > Configuration > Catalogue > Options personnalisées Date et heure). Auparavant, lorsque ce paramètre était activé, l’application affichait cette erreur lorsque vous tentiez de réorganiser la commande précédemment importée auprès de l’administrateur : Please specify date required option(s).
  • L’application affiche désormais la devise correcte dans les déploiements multisites lors de la création du prix du niveau.
  • Les attributs personnalisés d’image de produit sont désormais correctement précédés d’une séquence d’échappement. La variable data-src a la même valeur que src , comme prévu. Auparavant, les symboles spéciaux d’URL étaient placés dans une séquence d’échappement.
  • La mise à jour d’une catégorie via l’API REST ne désactive plus la fonction Utiliser la valeur par défaut sur les attributs Activer la catégorie, Inclure dans le menu et Clé URL .
  • L’activation des autorisations de catégorie à partir de l’administrateur n’entraîne plus l’échec de la mise en cache des pages de catégorie dans le cache de la page entière lors des visites répétées sur la page de catégorie. Auparavant, les visites suivantes sur la page n’étaient pas diffusées à partir du cache comme prévu et les performances étaient dégradées.
  • L’enregistrement d’une catégorie vide désormais uniquement le cache de bloc associé à cette catégorie. Auparavant, l’application purgeait le cache de tous les blocs de catégorie.
  • Le prix d’une option personnalisée avec un prix en pourcentage est désormais converti comme prévu dans la devise de base de la boutique active dans les déploiements multi-magasin. Auparavant, le prix d’une option personnalisée avec un prix en pourcentage était converti incorrectement. GitHub-26432
  • L’application recrée désormais correctement les images. Ces images sont visibles dans l’administrateur comme prévu chaque fois qu’un commerçant envoie des données de galerie multimédia à l’aide de POST. rest/all/V1/products. Auparavant, l’application recréait les images, mais les supprimait lorsqu’un commerçant envoyait des données de galerie de médias via POST. rest/all/V1/products si les images ont été supprimées dans pub/media mais il y avait encore des archives dans les médias qui contenaient encore des archives pour ces images. Par conséquent, le marchand n’a vu que des espaces réservés dans l’administrateur, car les images ont été créées et supprimées pendant le processus de mise à jour.
  • Les enregistrements sont désormais supprimés comme prévu lorsque vous avez annulé l’attribution d’un élément à un site web. Auparavant, les images étaient dupliquées lorsque POST rest/all/V1/products a été exécuté.
  • La variable /V1/categories/{categoryId}/products L’appel renvoie désormais une liste de tous les produits appartenant à la catégorie parent, comme prévu. Auparavant, si un produit appartenait à plusieurs sous-catégories de la catégorie parent, l’application générait ce type d’erreur : Internal Error. Details are available in the application log file. Report ID: webapi-5f8579e37db54. GitHub-30461
  • La variable /V1/products/attributes/:attributeCode/options Le point de terminaison REST prend désormais en charge la mise à jour d’une option d’attribut existante.
  • Le prix d’une option personnalisée avec un prix en pourcentage est désormais converti comme prévu dans la devise de base de la boutique active dans les déploiements multi-magasin. Auparavant, le prix d’une option personnalisée avec un prix en pourcentage était converti incorrectement. GitHub-26432
  • Les vendeurs peuvent désormais enregistrer un nouvel attribut lors de la création du produit. Auparavant, l’application n’enregistrait pas l’attribut et redirigeait le commerçant vers la page d’accueil de la vue de magasin lorsqu’il tentait d’enregistrer l’attribut. GitHub-30362
  • Les grilles de produits sur la Ventes > Commandes et Catalogue > Produits les pages répertorient désormais tous les magasins pertinents, et pas seulement le magasin le plus récemment créé. GitHub-29267
  • Le référentiel de produits utilise désormais store_id s’il est disponible pour enregistrer les valeurs d’attribut d’un produit existant. Auparavant, la classe de référentiel de produit remplaçait l’ID de boutique de produits et se voyait toujours attribuer l’ID de boutique par défaut. GitHub-29933

Règle de catalogue

  • Les règles de prix du catalogue fonctionnent désormais comme prévu avec les options personnalisées sur les pages Détails du produit. Auparavant, les prix des produits sur cette page ne reflétaient pas les règles de prix du catalogue applicables. GitHub-22856
  • Les caches de produit et de catalogue expirent désormais comme prévu. Auparavant, les caches expiraient tous les jours, car сron a exécuté la variable catalogrule_apply_all une fois par jour, qui réindexait toutes les règles de catalogue et les indexeurs dépendants, et effacait le cache de tous les produits et catégories.

Nettoyage

Nettoyage des caractères et de la grammaire

  • Le titre de la page Echec de la commande a été modifié pour garantir la précision. Auparavant, cette page était intitulée : Nous avons reçu votre commande !. GitHub-29416
  • Suppression des espaces inutiles dans app/code/Magento/Contact/view/frontend/templates/form.phtml. GitHub-29779
  • Correction d’une faute de frappe dans le message d’aide pour la variable bin/magento/setup:config:set sous-commande. GitHub-28802
  • Correction de la grammaire dans le PHPDoc pour le framework/Registry.php fichier . GitHub-29661
  • Suppression d’un espace blanc superflu de app/code/Magento/Catalog/Helper/Product/View.php. GitHub-30601
  • Correction d’une faute de frappe dans un nom de fonction dans app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js. GitHub-29987
  • Correction de la pluralisation de "l’article" dans le mini panier et la synthèse des commandes de passage en caisse. GitHub-29920
  • Suppression de l’espace blanc dans les éléments insérés dans les filtres de navigation superposés aux balises. GitHub-30448
  • rl a été corrigé sur url in \Magento\Framework\Filter\Template\Tokenizer\Parameter. GitHub-29185

Nettoyage du code

  • Un HTML superflu <br> La balise a été supprimée de la zone de message Vérifier les données de Système > Importer page.
  • AccessChangeQuoteControl et ses tests unitaires ont été restructurés. GitHub-29672
  • Correction du style de code de la déclaration de type de retour dans app/code/Magento/Captcha/CustomerData/Captcha.php. GitHub-29712
  • Correction de la position de la liste des boutons sur la page Nouvel attribut .
  • Ajout de la classe de bloc correcte pour le front-end viewModel exemple de référence pour le \Magento\Framework\View\Element\Template classe . GitHub-30450
  • Un jeu de champs redondant dans le formulaire Règle de vente a été supprimé. GitHub-29599
  • Le code inutile a été supprimé de la variable hierarchy/edit.phtml modèle.
  • Correction du commentaire PHPdoc dans app/code/Magento/CatalogImportExport/Model/Export/Product.php. GitHub-30833
  • Annotation de bloc pour la variable PublisherInterface a été corrigé. GitHub-30190
  • Arguments corrigés dans la variable getStatusByState . GitHub-30173
  • Description correcte de la méthode dans app/code/Magento/Quote/Model/Cart/Totals/ItemConverter.php. GitHub-30125
  • Suppression des affectations de variables redondantes dans la même ligne dans plusieurs fichiers. GitHub-30133
  • Modifié @param string $attribute to @param AbstractAttribute|string[]|string $attribute in EntityAbstract.php. GitHub-30191
  • Balises non valides (par exemple, @package et @subpackage) ont été supprimés des docblocs dans toute la base de code. GitHub-30061
  • Paramètres inutilisés dans la construction de la variable AdvancedPricing ont été supprimées. GitHub-29531

Produits configurables

  • Le filtrage par prix des produits configurables en rupture de stock affiche désormais les résultats dans la plage de prix correcte.
  • Un produit virtuel ne change plus de type lorsque son état passe de activé à désactivé (ou vice versa). Auparavant, l’application changeait le type d’un produit de virtuel à simple lorsque son état changeait.
  • La variable getValue() ne déclenche plus d’erreur fatale lors de la mise à jour des paniers.
  • Les produits configurables disponibles sur plusieurs sites web n’affichent plus les produits enfants simples qui ne sont pas attribués à un site web spécifique. GitHub-28291
  • Les pages de produits Storefront affichent désormais les prix des niveaux sans taxes comme prévu. GitHub-12225
  • Les prix MSRP des produits configurables sont désormais correctement convertis dans la devise choisie. Auparavant, l’application affichait les prix dans la mauvaise devise et générait cette erreur : Call to a member function setAppliedTaxes() on null. GitHub-26526, GitHub-29603
  • Les vendeurs peuvent désormais enregistrer une étiquette d’option d’attribut d’échantillon de texte spécifique au magasin avec une valeur de 0 (zéro). Auparavant, une valeur de 0 était remplacée par la valeur de l’option Libellé de l’administrateur . GitHub-30073
  • Paramètres inutilisés dans la construction de la variable AdvancedPricing ont été supprimées. GitHub-29531

cron

  • La liste des messages système reflète désormais exactement les mises à jour de produit après cron s’est exécuté et l’application a mis à jour les produits comme prévu.
  • Un index basé sur schedule_id et status a été ajouté à la variable cron_schedule table. GitHub-29601

Attributs du client personnalisés

  • L’application affiche désormais les attributs du client de type file sur la page Informations du compte après sa création. Auparavant, lorsque vous tentiez d'enregistrer un nouvel attribut de ce type, l'application affichait les erreurs suivantes : The "newAttribute" attribute value is empty. Set the attribute and try again et Validation is failed.
  • L’application affiche désormais correctement les valeurs d’attributs du client multilignes. Auparavant, toutes les données n’étaient pas affichées.
  • L’application avertit désormais les acheteurs lorsqu’ils saisissent une date de naissance non valide lors de la création d’un compte. Auparavant, le programme de validation ignorait les paramètres régionaux et les acheteurs étaient redirigés vers la page Créer un compte client avec une erreur de date non valide.
  • Les attributs d’adresse personnalisés sont désormais inclus comme prévu dans l’étape Paiement du workflow de passage en caisse.
  • Les attributs à sélection multiple d’adresses personnalisées s’affichent désormais correctement lors du passage en caisse de l’invité et sur la page de détails des commandes Admin et Mon compte .
  • Les attributs d’adresse personnalisés s’affichent désormais correctement dans la zone Mon compte et dans la page Détails de la commande de l’administrateur.
  • Vous pouvez désormais supprimer un zéro de début dans un attribut client personnalisé lorsque Input Type est défini sur Text et Input Validation est défini sur Numeric Only.
  • L’application exporte désormais avec succès les données client qui incluent une valeur d’attribut gender personnalisée.
  • L’application enregistre désormais les valeurs d’attributs du client personnalisées pour les utilisateurs B2B comme prévu. Auparavant, les attributs client personnalisés créés pour ajouter ou modifier des utilisateurs de la société n’étaient pas liés au formulaire Ajouter un nouvel utilisateur et, par conséquent, les valeurs d’attribut n’étaient pas enregistrées. En outre, l’attribut de date personnalisé a été dérivé de la base de données sous forme de chaîne et n’a pas été converti au format de date approprié pour l’affichage du storefront.

Client

  • Le widget Calendrier pour le champ de date de naissance de la page du compte client storefront utilise désormais les paramètres régionaux de magasin désignés.
  • L’application n’enregistre plus les entrées en double d’une adresse client lors de l’extraction d’une commande de nouveau pour un client existant auprès de l’administrateur.
  • La suppression de toutes les adresses de plusieurs clients de l’administrateur supprime désormais toutes les adresses de la liste des adresses client et supprime les adresses de facturation et de livraison par défaut. Auparavant, l’application supprimait l’adresse de la liste des adresses du client, mais ne supprimait pas les adresses de facturation et de livraison par défaut.
  • L’onglet Admin adresse du client affiche désormais correctement le nombre d’adresses après qu’un administrateur a effectué une suppression en masse des adresses. Auparavant, l’application incluait les adresses supprimées dans son décompte.
  • Format DateTime de la variable Date de naissance sur la page d’enregistrement du client a été corrigé. Auparavant, le zéro de début qui précède un jour à un seul chiffre était manquant.
  • Validation du format de date pour la variable Date de naissance fonctionne maintenant avant que l’acheteur ne clique sur la variable Créer un compte bouton . Auparavant, un acheteur pouvait saisir une valeur dans un format non valide et, lorsqu’il cliquait sur la variable Créer un compte , l’acheteur a été redirigé vers la page Créer un compte client avec une erreur de date non valide.
  • L’application ne génère plus d’erreur fatale lorsqu’un administrateur tente d’enregistrer un nouveau compte client contenant des données non valides pour un attribut.
  • L’application ne renvoie plus d’erreur 400 lorsqu’un client tente d’accéder à son panier dans un déploiement où Magento Shipping a été précédemment installé et où le thème par défaut Luma est actuellement déployé. Auparavant, l’application ne filtrait pas les noms de section créés par des modules précédemment installés/activés qui n’étaient pas pris en charge dans l’administrateur avant d’envoyer des requêtes au serveur, ce qui générait des erreurs.
  • L’application affiche désormais un message comme prévu lorsqu’un acheteur crée un compte d’invité lorsque la variable Confirmation de l’exigence des emails est activé et Magento\Customer\Controller\Account\CreatePost a été remplacé. Auparavant, l’application n’autorisait pas ce type de personnalisation du processus d’enregistrement des utilisateurs. Dans ces conditions, l’état de confirmation par e-mail d’un utilisateur était considéré comme terminé, le nouvel utilisateur était automatiquement connecté et aucun message d’erreur n’était affiché.
  • L’application affecte désormais un acheteur au groupe de clients correct lorsque l’acheteur passe une commande avec un groupe de clients autre que par défaut dans un magasin où Activation de l’affectation automatique au groupe client est activée. GitHub-26976
  • La grille Admin clients est désormais disponible comme prévu lorsque le site web autre que celui par défaut est supprimé dans un déploiement multisite lorsque les index sont définis sur Mise à jour par planification. Auparavant, l’application n’affichait pas la grille et renvoyait cette erreur : [2020-12-09 11:31:54] report.CRITICAL: The website with id 2 that was requested wasn't found. Verify the website and try again. \{"exception":"[object] (Magento\\Framework\\Exception\\NoSuchEntityException(code: 0): The website with id 2 that was requested wasn't found. Verify the website and try again. at /var/www/html/magento24ee/vendor/magento/module-store/Model/WebsiteRepository.php:110)"}

dotdigital

  • La gestion des erreurs a été améliorée lors de la récupération des listes de programmes à partir de dotdigital Engagement Cloud.

  • La valeur synchronisée dans la colonne nom de magasin lors de la synchronisation des invités est désormais le nom de vue de magasin comme prévu. Auparavant, le nom du site Web était inclus dans cette colonne.

  • Ajout d’une vérification de tableau avant la boucle sur les automatisations d’état de commande après l’enregistrement d’une commande.

  • Résolution de problèmes liés aux mises à niveau du compositeur qui étaient le résultat de la dépendance du module dotdigital sur magento/module-authorization.

Téléchargeable

  • L’application ne répertorie plus un produit téléchargeable dans l’onglet Mes produits de téléchargement une fois que le produit téléchargeable a été partiellement remboursé. GitHub-28388

Bloc dynamique (anciennement bannière)

  • L’application n’affiche plus de bloc dynamique sur le storefront après avoir supprimé le segment client associé au bloc.
  • L'application prend désormais correctement en compte les règles de prix du catalogue lors de la détermination de l'affichage ou non d'un bloc dynamique.

EAV

  • Attributs personnalisés qui utilisent \Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend maintenant, utilisez les valeurs par défaut si aucune valeur n’est fournie dans la payload lorsqu’un produit est créé par un appel API.

Email

  • \Magento\Config\Model\Config\Source\Email\Template::toOptionArray ne renvoie plus d’erreur lorsque setPath() n’est pas appelé avant toOptionArray(). GitHub-29315
  • L’application convertit désormais correctement le texte brut en HTML lorsque vous cliquez sur Renvoie La Version Html lors du chargement d’un modèle d’email.
  • Les courriers électroniques envoyés aux clients qui contiennent des factures partielles incluent désormais des sous-totaux exacts. Auparavant, le sous-total de cet email était le total de la quantité commandée, et non le montant total de la quantité facturée.
  • L’application envoie désormais des rappels à tous les clients concernés avec des adresses électroniques valides. Auparavant, l’application arrêtait d’envoyer des emails de rappel aux clients après avoir rencontré une adresse incorrecte.
  • L’envoi d’emails de vente en mode asynchrone fonctionne désormais comme prévu après la suppression d’un produit d’un catalogue. Auparavant, l’envoi asynchrone d’emails était bloqué et l’application affichait cette erreur : main.ERROR: Cron Job sales_send_order_invoice_emails has an error: Call to a member function getData() on null. Statistics: {"sum":0,"count":1,"realmem":0,"emalloc":0,"realmem_start":73400320,"emalloc_start":37177640} [] []main.CRITICAL: Error when running a cron job {"exception":"[object] (RuntimeException(code: 0): Error when running a cron job at /var/www/html/vendor/magento/module-cron/Observer/ProcessCronQueueObserver.php:327, Error(code: 0): Call to a member function getData() on null at /var/www/html/vendor/magento/module-catalog/Helper/Image.php:502)"} []. GitHub-26878
  • L’application ne copie plus un client dans un email de confirmation de commande lors de la sales_email/order_comment/enabled est désactivé et sales_email/order_comment/copy_method est défini sur bcc. GitHub-29915

Frameworks

  • Les groupes de filtres personnalisés sont désormais correctement appliqués lors de la recherche sur les clients. Auparavant, la variable afterSearch n’utilisait pas les filtres OU comme prévu. GitHub-24576
  • Les images de la page d’accueil d’un magasin sont désormais affichées avec succès. Auparavant, le HTML source de la page était corrompu, car les trois barres obliques consécutives du code base64 de l’image étaient mal interprétées comme un commentaire.
  • Le sélecteur de date fonctionne désormais correctement lors du filtrage des commandes sur la liste Commandes d’administration dans les magasins utilisant le paramètre régional arabe (ar_SA - Saudi Arabia).
  • Le sélecteur de date affiche désormais la date correcte après l’enregistrement d’une règle de prix de panier dans un déploiement. GitHub-30382
  • L’application représente désormais correctement les symboles de regroupement des milliers en arabe et de séparateur décimal en arabe. Auparavant, les symboles arabes étaient supprimés. GitHub-26676
  • L’application supprime désormais les sessions de base de données expirées de la base de données. session selon les besoins.

Correctifs généraux

  • Vous pouvez désormais configurer un gestionnaire de session natif qui diffère du gestionnaire défini dans php.ini. Auparavant, SessionManager n’a pas défini le memcache comme save_handler, mais à la place, utilisait le session_handler. l’application a généré cette erreur : main.CRITICAL: Warning: SessionHandler::read(): open(127.0.0.1:11211/sess_0imeeaqmnvemdg4e3h57tat0ik, O_RDWR) failed: No such file or directory (2) in../vendor/magento/framework/Session/SaveHandler/Native.php on line 22 {"exception":"[object] (Exception(code: 0): Warning: SessionHandler::read(): open(127.0.0.1:11211/sess_0imeeaqmnvemdg4e3h57tat0ik, O_RDWR) failed: No such file or directory (2) in ../vendor/magento/framework/Session/SaveHandler/Native.php on line 22 at ../vendor/magento/framework/App/ErrorHandler.php:61)"}. GitHub-24717
  • Les améliorations suivantes ont été apportées au LoginAsCustomer modules :

    • Remplacé par around plug-in avec after

    • Suppression du code redondant

    • Remplacé (bool)->getValue() avec isSetFlag. GitHub-29689

  • Le rechargement de toutes les sections de données client par un caractère générique (*) n’entraîne plus les demandes pour customer/section/load pour générer une erreur 400. GitHub-28154
  • L’application transmet désormais les exceptions qui se produisent lorsqu’une mise en page est rendue en mode de production à var/report. GitHub-29606
  • L’application ne redirige plus les clients vers la page d’accueil lors du changement de vue de magasin. La variable \Magento\VersionsCmsUrlRewrite\Model\StoreSwitcher::switch() ne redirige désormais les acheteurs vers la page d’accueil que lorsque $urlPath est introuvable pour la deuxième vue de magasin.
  • L’application renvoie désormais une exception lorsqu’un client qui n’existe pas demande la réinitialisation d’un mot de passe. GitHub-26288
  • L’application affiche désormais un message d’erreur informatif lorsqu’un administrateur tente d’enregistrer un compte client contenant une valeur non valide pour un attribut du client lors du téléchargement d’un fichier contenant cette valeur d’attribut. Auparavant, l’application entraînait une erreur fatale. GitHub-30295
  • L’application applique désormais la variable Logo pour l’affichage d’impression par HTML paramétrage de la configuration sur les PDF de facture storefront comme prévu. GitHub-24730
  • static:: a été remplacé par self:: tout au long du code base pour accéder aux constantes privées. GitHub-30781
  • L’application ouvre désormais la page Nouvel attribut, comme prévu lorsqu’un commerçant clique sur le bouton Créer un attribut deux fois lors de la création du produit. Auparavant, l’application affichait une page vide et renvoyait une erreur. GitHub-30361
  • L’application n’affiche plus le The coupon code has been accepted message après la suppression d’un bon. GitHub-30255
  • Les administrateurs peuvent désormais attribuer des widgets à des catégories spécifiques. GitHub-30009
  • Sélecteur d’attributs input[type=datetime] a été remplacé par un sélecteur de type d’entrée moins spécifique. GitHub-30064
  • L’application affiche désormais les valeurs spécifiques au magasin associées aux attributs de catégorie personnalisés comme prévu. GitHub-13440
  • L’application affiche désormais une invite vous demandant si le groupe de clients doit être modifié lorsque vous cliquez sur le Valider le numéro de TVA sur la page de création de la commande lorsque l’adresse du magasin et la destination d’expédition appartiennent à différents pays de l’UE. GitHub-29652
  • La variable \Magento\Catalog\Model\ImageUploader a été restructurée afin d’utiliser la nouvelle moveFileFromTmp . GitHub-29598
  • L’application affiche désormais un message d’erreur plus informatif lorsqu’un commerçant tente de créer un attribut de produit avec product_type et type_id codes à rendre plus descriptifs. GitHub-28479
  • Correction de la logique de validation pour le Durée de vie du jeton client (heures) et Durée de vie du jeton d’administration (heures) champs de l’administrateur Magasins > Configurations > Services > OAuth page. GitHub-29502
  • L’application analyse désormais correctement le texte qui contient }} dans le champ de contenu du widget. GitHub-12087
  • Vous pouvez désormais supprimer un filtre de la page Catégories de produits . Auparavant, lorsque vous tentiez de supprimer le filtre, l’application ne vous permettait pas de le supprimer et affichait cette erreur : Something went wrong. GitHub-8538
  • Magento\Framework\MessageQueue\ConfigInterface peut désormais être instancié lorsque le module optionnel Magento_MessageQueue est désactivée. Auparavant, l’application générait cette erreur : PHP Fatal error: Uncaught Error: Cannot instantiate interface Magento\Framework\MessageQueue\ConfigInterface in /var/www/magento2/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php:121. GitHub-26080
  • La logique qui détermine quand l’application peut récupérer la valeur de courrier électronique à partir d’un stockage persistant a été améliorée. Auparavant, l’application affichait les champs de mot de passe renseignés sur la page de passage en caisse lorsqu’un utilisateur non enregistré retournait à la page de passage en caisse après avoir rempli le champ de courrier électronique pour la première fois. GitHub-26903
  • Un manquant aclResource a été ajouté à l’en-tête Admin. AdminNotification bloc de barre d’outils. Auparavant, l’entrée de la barre d’outils de notification d’administrateur était visible même lorsque l’utilisateur administrateur ne disposait pas des autorisations de ressources de rôle pour l’afficher. GitHub-29067
  • La variable framework/database/select where fonctions désormais en charge type correctement. GitHub-29590
  • Utilisation inefficace de array_merge les boucles in ont été améliorées dans l’ensemble du code base, ce qui a amélioré les performances à plusieurs endroits, y compris dans le processus de déploiement de contenu statique. GitHub-30183
  • La durée de vie par défaut de la session d’administrateur a été déplacée du module de chiffrement vers le module de sécurité. GitHub-30859
  • L’application recherche désormais des constantes privées dans une classe et affiche un avertissement en cas d’occurrence. static:: les appels à . Auparavant, l’application générait cette erreur : Undefined class constant.
  • Ajout de règles à editorconfig pour prendre en charge la mise en retrait des fichiers JSON et YAML de deux espaces. GitHub-30066, GitHub-30063
  • La variable FlushCacheByTags a été mise à jour afin d’utiliser les plug-ins "after-plug-ins" plutôt que les plug-ins "contournement". GitHub-29558
  • MessageValidator n’échoue plus sur les tableaux de hachage qui n’incluent pas d’élément 0 élément . GitHub-30563
  • Code dans la variable checkout_index_index.xml a été amélioré par la suppression de la fonction sortOrder de messages, authentication, progressBar, estimation, et sidebar checkout composants. GitHub-30550
  • Contenu dans calc est désormais placée dans une séquence d’échappement, ce qui se traduit par une valeur correcte. calc dans le fichier de sortie CSS. Auparavant, l’application renvoyait une calc . GitHub-30542
  • Le générateur de réécriture d’URL définit désormais l’objet de catégorie. url_key, url_path, et store_id aux valeurs de magasin par défaut lors de l’enregistrement de l’URL de catégorie réécrit pour la portée globale. Auparavant, il était enregistré. url_key, url_path, et store_id avec les valeurs du dernier identifiant de magasin traité. GitHub-29585
  • \Magento\Widget\Controller\Adminhtml\Widget\Instance\Validate reconnaît maintenant une valeur de résultat de phrase comme message d’erreur et la transmet à l’utilisateur lors de la validation du widget. GitHub-27397
  • Liste codée en dur des attributs de catégorie dans Magento\Catalog\Model\Category\DataProvider::getFieldsMap() a été remplacé par une liste d’attributs générés à partir du cache. GitHub-13440
  • Hachage redondant de req.http.host/client.ip a été supprimé et le hachage est géré par le VCL intégré au vernis. GitHub-29988
  • Ajout d’un rappel d’échec à la variable Magento_Ui téléchargeur de fichiers. GitHub-29557
  • Un acl.xml incohérence survenue lors de Magento_LoginAsCustomerAssistance était activé mais Magento_LoginAsCustomerAdminUi ou Magento_LoginAsCustomerLog ont été corrigées. Auparavant, lorsque l’administrateur avec ces informations d’identification tentait de se connecter à l’administrateur, l’application affichait une page vierge et renvoyait cette erreur lorsque : Exception #0 (LogicException): Could not create an acl object: Invalid Document Element 'resource': The attribute 'title' is required but missing. Line: 13. GitHub-30680
  • L’application ne lance plus une Undefined class constant lorsqu’une Interceptor est généré lors de la création du module externe. GitHub-28981, GitHub-29879
  • L’application gère désormais correctement la messagerie et la journalisation pour les opérations en bloc asynchrones. Auparavant, bien que les produits aient été mis à jour, la variable magento_operation et queue_message_status n’étaient pas correctement mises à jour et les messages système étaient incorrects. GitHub-29718
  • Un acheteur est maintenant redirigé vers la page Définir un nouveau mot de passe , comme prévu lorsqu’il clique sur Définir un nouveau mot de passe dans l’e-mail Réinitialiser le mot de passe lorsque Confirmation de l’exigence des emails est activé pour le magasin. Auparavant, l’acheteur était redirigé vers le Mot de passe oublié sur la page de connexion. GitHub-27954
  • Correction de l’erreur de conversion de chaîne du tableau lors de l’enregistrement de la configuration du système de lignes avec les valeurs par défaut. GitHub-30314
  • Vous pouvez désormais définir des arguments pour les files d’attente de messages. GitHub-30216
  • Le collecteur de fichiers de base respecte désormais AppState->emulateAreaCode(). GitHub-39656
  • La nouvelle BlockByIdentifier prend en charge la récupération d’un bloc de mise en page à partir de l’identifiant de bloc CMS. Par conséquent, lorsqu’un bloc CMS est supprimé du cache, l’application efface également le cache du bloc de mise en page. GitHub-28309
  • Correction de problèmes liés à la conversion des arguments numériques dans les files d’attente. Auparavant, lorsque vous déclariez une file d’attente avec des valeurs numériques. type arguments dans la variable queue_topology.xml, la valeur de l’argument a été convertie en chaîne. GitHub-29615

Cartes cadeau

  • Les courriers électroniques contenant un code de carte-cadeau ne sont désormais envoyés qu’une fois la commande enregistrée avec succès lorsque la variable Créer un compte de carte-cadeau lorsqu’un article de commande est commandé configuration est activé. Auparavant, un code de carte-cadeau était réutilisé et envoyé à différents clients si un compte de carte-cadeau était généré lorsqu’un article était commandé, mais qu’une exception survenait après l’envoi de la carte-cadeau virtuelle.
  • L’application ne duplique plus les commandes de cartes-cadeaux. Auparavant, lorsqu’un acheteur commandait une carte-cadeau, l’application fournissait deux codes-cadeaux. Ce problème se produisait car cron tâches appelées \Magento\GiftCard\Observer\GenerateGiftCardAccountsInvoice::execute(), et cette méthode n’a pas vérifié si les codes de carte-cadeau avaient déjà été générés lors de la création de la facture.
  • Les vendeurs peuvent désormais annuler l’affectation de produits à des catégories comme prévu. Auparavant, l’application renvoyait une erreur similaire à celle-ci : Could not save product "4" with position 0 to category 3.
  • Ajout de la prise en charge des liens symboliques root dans les pages erreurs et le mode de maintenance. Auparavant, si la variable root ou magento/pub étaient liés symboliquement dans un autre répertoire, le processeur d'erreurs (Magento\Framework\Error\Processor) n’a pas généré une URL de fichier d’affichage correcte. GitHub-30296
  • Ajout de l’élément manquant order_data tableau à EmailSender classes. Ces classes sont ainsi alignées sur la recommandation du Magento d’utiliser des variables scalaires au lieu d’objets dans les modèles de courrier électronique. GitHub-29604

Gestionnaire de balises de Google

  • Gestionnaire de balises de Google productClick fonctionne désormais comme prévu. Auparavant, productClick n’a pas été déclenché sur les produits figurant sur les pages de liste et le Gestionnaire de balises de Google n’a pas pu capturer cet événement.
  • Les options de produit configurables du Gestionnaire de balises de Google se mettent désormais à jour comme prévu dans le lecteur de données après avoir modifié une option de produit configurable dans le panier. Auparavant, les données de la variable removeFromCart était incorrectement réécrit lorsque l’option de produit était modifiée et que la quantité restait identique.

GraphQL

  • La variable urlResolver query gère désormais correctement les paramètres de requête.
  • La variable urlResolver La requête ne renvoie plus la valeur NULL lorsqu’un noeud et une page CMS personnalisés sont spécifiés comme entrée. GitHub-30474
  • La variable category La requête ne renvoie plus les catégories enfants d’une catégorie parente qui a été désactivée. GitHub-30468
  • La variable category la requête renvoie maintenant le chemin correct d’une image de catégorie lorsque les réécritures d’URL sont désactivées.
  • La variable resetPassword mutation renvoie désormais un message plus informatif lorsqu’une erreur se produit. GitHub-30179
  • Résultats mis en cache de products les requêtes sont invalidées comme prévu lorsque les positions de produit changent. GitHub-30467
  • La variable products la requête renvoie maintenant les résultats attendus lorsque la variable category_id Le filtre est spécifié avec la propriété in mot-clé. GitHub-30349
  • La variable categories et categoryList les requêtes prennent désormais en compte la disponibilité des catégories en fonction de la configuration des autorisations de catégorie et de l’ID de catégorie parent. GitHub-29880, GitHub-30624
  • La variable updateProductsInWishList la mutation valide désormais correctement les éléments de liste bloquée. GitHub-30467
  • Plusieurs attributs obsolètes dans la variable ProductInterface et CategoryInterface pour empêcher leur utilisation sur le storefront. GitHub-30625

  • Les prix sont désormais masqués des résultats de la requête de produits lorsque les autorisations de catégorie sont définies pour les masquer. GitHub-29926

  • Vous pouvez désormais utiliser la variable addProductsToWishList mutation pour ajouter un produit groupé avec une quantité définie par l’utilisateur à une liste de souhaits.
  • Les mutations qui ajoutent des produits à un panier respectent désormais les autorisations de catalogue. GitHub-30179
  • Le temps de réponse de GraphQL pour les ajouts aux opérations de panier a été amélioré.
  • La variable products la requête renvoie désormais les valeurs de prix de niveau comme prévu. GitHub-29168
  • Suppression d’un élément redondant getMappedNums à partir d’une boucle dans lib/internal/Magento/Framework/GraphQl/Query/EnumLookup.php. GitHub-30031
  • La variable products ne renvoie plus d’erreur lorsque le produit interrogé a un produit associé désactivé. GitHub-28892
  • La variable cart query renvoie désormais les prix qui ont été convertis dans la devise appropriée (la devise d’affichage par défaut). Auparavant, la requête renvoyait la valeur du prix de l’article dans la devise de base et le code de devise était renvoyé en tant que devise d’affichage par défaut.
  • GraphQL honore désormais les autorisations de catalogue. L’application limite les éléments renvoyés pour un products requête basée sur le groupe de clients du client du client du client.
  • Ajout de la customizable_option à plusieurs types de données qui implémentent la variable CartItemInterface.
  • Ajout d’attributs pour la variable storeConfig requête pour renvoyer des informations sur le magasin, le groupe de magasins et le site web.
  • La fonction SelectedCustomizableOption.type attribut. En outre, la variable customizable_options dans les différentes implémentations de la fonction CartItemInterface sont désormais non nuls.
  • La fonctionnalité de recherche de la variable products La requête ne renvoie plus les éléments dans lesquels les autorisations de catégorie ont été activées.
  • La variable products La requête renvoie la devise correcte pour les vues de magasin ayant plusieurs devises.
  • Étiquettes pour products les filtres de requête renvoient désormais les valeurs traduites, le cas échéant pour les vues de magasin autres que par défaut.
  • Correction des montants en devise de la boutique sur les cartes-cadeaux dans le panier.
  • Ajout de la ConfigurableProductOptionsSelection type de données, qui contient des métadonnées correspondant aux options configurables sélectionnables pour un produit. Utilisez cet objet dans une products requête afin de minimiser le nombre d’éléments de la galerie multimédia qui s’affichent lorsque l’acheteur sélectionne des options de produit configurables.

Produits regroupés

  • La requête products renvoie désormais toutes les données attendues pour les produits groupés. Auparavant, product_links était un tableau vide.
  • Un produit groupé est désormais répertorié comme en rupture de stock sur la page de modification du produit lorsque tous les produits simples enfants sont en rupture de stock.
  • L’état d’un produit groupé est désormais mis à jour correctement sur la page de modification du produit lorsque l’état de ses produits simples enfants passe en état hors stock. Auparavant, l’article de stock pour le parent du produit groupé n’était pas mis à jour une fois que ses enfants avaient changé de statut de stock.

Images

  • Les images de la page d’accueil d’un magasin sont désormais affichées avec succès. Auparavant, le HTML source de la page était corrompu, car les trois barres obliques consécutives du code base64 de l’image étaient mal interprétées comme un commentaire.
  • La dépendance à l’égard de la variable fileinfo L’extension a été supprimée du module CMS. Auparavant, l’application entraînait une erreur lorsque vous tentiez de télécharger une image à l’aide du téléchargeur d’images, qui est lancé lorsque vous cliquez sur l’événement Insérer une image lorsque vous ajoutez du contenu. GitHub-24332, GitHub-16531, GitHub-29852
  • Prise en charge de la lecture ajoutée exif_image.png ou exif-image.jpeg métadonnées. GitHub-1449
  • Les images s’affichent désormais par le widget du carrousel des événements de catalogue après le téléchargement comme prévu. Auparavant, la variable catalog_event_status_checker la tâche cron a supprimé les images téléchargées.
  • Les couleurs des images CMJN sont désormais correctement rendues. Lorsque l’adaptateur Imagick détecte désormais qu’une image ouverte possède un espace colorimétrique CMJN, l’espace colorimétrique est converti en SRVB. Auparavant, ces images étaient restituées avec des couleurs inversées. GitHub-22375
  • Les valeurs booléennes ne sont plus définies pour image_with_border.phtml. Redondant max-width et height ont été supprimés de .product-image-photo. (Ces valeurs sont déjà définies globalement sur l’image via les styles de réinitialisation.) GitHub-30186

Import/export

  • Adresse client region_id n’est plus affecté à une NULL valeur lorsque vous importez des adresses client à l’aide d’un fichier CSV (entity type = "customer address" et import behavior = "add/update") à partir de laquelle certaines valeurs de champ ont été supprimées.
  • Vous pouvez désormais masquer les images de produit sur le storefront lors de l’importation.
  • Un processus d’importation de produits planifié met désormais à jour les produits avec des champs de données corrects lorsque le fichier CSV contient également des entrées incorrectes. Auparavant, aucune entrée n’était mise à jour si le fichier CSV incluait des entrées incorrectes lors de la En cas d’erreur : poursuivre le traitement a été activé.
  • Lorsqu’un produit importé a qty défini sur 0 mais is_in_stock set à 1 dans le fichier CSV, le produit n’est pas répertorié sur la page de catégorie et la page des détails du produit l’identifie comme étant en rupture de stock. Auparavant, les produits avec ces valeurs étaient visibles sur le storefront après l’importation.
  • L’importation CSV n’ignore plus la variable dropdown et textarea pour les attributs supplémentaires. Auparavant, ces valeurs d’attribut n’étaient pas mises à jour lors de l’importation.
  • Le fichier CSV d’exportation de produits apparaît désormais dans la liste d’administration des fichiers CSV d’exportation, comme prévu. Auparavant, l’application entraînait une erreur lors de l’exécution de cette commande : bin/magento queue:consumers:start exportProcessor --single-thread --max-messages=10000.
  • L’application ne renvoie plus d’erreur lors de l’importation de données CSV contenant des caractères de l’alphabet bengali (bengali).
  • L’application affiche désormais un message d’erreur informatif lorsqu’un administrateur clique Vérifier les données lors de l’importation d’un fichier qui a été modifié depuis l’exportation lors de l’utilisation de Chrome. Auparavant, l’application affichait une erreur de console, sans indiquer à l’utilisateur comment procéder.
  • L’application ne duplique plus les images de produit lorsque vous importez plusieurs fois les mêmes données CSV de produit. GitHub-21885
  • La limite de 90 caractères pour les noms de fichiers image dans vendor/magento/framework/File/Uploader.php a été supprimé. Auparavant, la longueur du répertoire et du nom de fichier ne pouvait pas dépasser 255 caractères. L’application a importé des produits avec des images dont le nom de fichier dépassait cette limite, mais n’a pas importé le fichier image. GitHub-29377
  • Les codes coupon peuvent désormais être correctement exportés au format CSV ou XML. Auparavant, l’application affichait une erreur 404 lorsque vous cliquiez Exportation CSV ou Exporter XML lorsque vous avez tenté d’exporter des bons. GitHub-29277
  • Les images de produit dupliquées sont désormais supprimées après l’importation d’un fichier CSV contenant des images. GitHub-14398, GitHub-21885

Index

  • Nous avons amélioré les performances de l’indexeur partiel. L’application efface désormais les ID de cache qui ont été modifiés pour chaque itération par lot de 1 000 identifiants. Le contexte du cache n’accumule plus d’identifiants. Auparavant, le contexte de mise en cache cumulait les identifiants de cache pour chaque itération par lots de 1 000 identifiants et effacait le même ensemble d’identifiants à chaque itération.
  • Les incohérences entre le système de réindexation partielle et le système de réindexation complet ont été corrigées. Les deux systèmes d’indexation utilisent désormais le même code, qui fonctionne correctement. Auparavant, les deux systèmes d’indexation utilisaient une logique différente en ce qui concerne les indexeurs partagés, ce qui pouvait entraîner l’invalidation des indexeurs après chaque exécution du système de réindexation partielle. GitHub-29478, GitHub-29297
  • Nous avons résolu des problèmes liés à l’indexeur manuel qui entraînaient des pages de catégorie vides ou une réduction du nombre de produits sur les pages de catégorie. Des problèmes avec des pages de catégorie incomplètes ou un nombre de produits se sont produits lorsque :

    • la valeur catalogsearch_fulltext et catalog_product_price les indexeurs partiels étaient exécutés sur un catalogue volumineux jusqu’à ce que ces indexeurs terminent l’exécution.

    • l’indexeur partiel a été exécuté sur catalog_category_product ou catalog_product_category et dans le même temps, une réindexation complète a été effectuée sur l'un de ces indices. Ces deux processus d’indexation pouvaient entrer en conflit, ce qui entraînait l’absence de produits dans les pages de catégorie.

    • bin/magento indexer:reindex inventory a été exécuté sur un catalogue volumineux. Les produits étaient absents des pages de catégorie jusqu’à ce que la variable catalogsearch_fulltext l’indexation partielle a terminé l’exécution.

  • Un indexeur a été ajouté à la variable Magento_Bulk La table MySQL, qui a amélioré les performances des opérations en masse.
  • Les commentaires dans les tables de base de données reflètent désormais exactement l’état de la table après réindexation (bin/magento indexer:reindex). Auparavant, les commentaires de tableau après réindexation contenaient les mêmes valeurs que les commentaires après une nouvelle installation.
  • La variable SELECT entity_id IN a été améliorée dans les déploiements implémentant MariaDB v.10.3.18, ce qui a amélioré les performances de l’indexation des catégories de catalogues. GitHub-25199
  • Adobe Commerce a amélioré les performances du cache en éliminant le vidage des balises plusieurs fois par instance d’indexeur. GitHub-29890

Infrastructure

  • Vous pouvez désormais utiliser app/etc/env.php pour changer le courtier de messages de MYSQL en AMQP.
  • Les problèmes liés au calcul des restes pour les valeurs décimales des quantités de produits ont été corrigés dans la bibliothèque JavaScript correspondante. L’application avait précédemment calculé des fractions décimales de plus de deux chiffres de manière incorrecte, puis affiché un message incorrect.
  • La variable \Magento\Authorization\Model\Rules::update a été abandonnée. GitHub-29128
  • L’application ne renvoie plus d’erreur fatale lors de la conversion d’un objet de date à partir de l’UTC. Auparavant, sous certaines conditions, la variable convertConfigTimeToUtc a généré une exception. GitHub-29525
  • DataObject a été remplacé par le modèle de produit dans \Magento\MediaGalleryCatalogUi\Ui\Component\Listing\Columns\Thumbnail::prepareDataSource.GitHub-1711
  • La variable RequireJS n’échoue plus à détecter les ressources bloquées. Auparavant, le programme de résolution ne détectait pas correctement si toutes les ressources d’une page étaient chargées ou gérées correctement, et la page continuait à charger. GitHub-28116
  • La validation du code du référentiel d’attributs respecte désormais Magento\Eav\Model\Entity\Attribute::ATTRIBUTE_CODE_MAX_LENGTH plutôt qu’une valeur codée en dur. GitHub-29017
  • La minimisation de HTML n’supprime plus les barres obliques triple (https://experienceleague.adobe.com//?lang=fr) des chaînes de HTML dans les fichiers PHTML. Auparavant, les trois barres obliques étaient interprétées comme des commentaires lors de la minimisation, et le reste de la ligne était complètement supprimé dans le fichier HTML généré lors du déploiement.
  • Les vendeurs peuvent désormais configurer les abonnements des indexeurs au niveau des colonnes du tableau plutôt qu’au niveau du tableau. Un nouvel argument a été ajouté à \Magento\Framework\Mview\View\Subscription pour que les colonnes soient ignorées pour une combinaison spécifique de vues ou de tableaux. GitHub-30243
  • Cliquez sur le bouton Ajouter au panier avant l’initialisation complète de la page du produit, JavaScript ne provoque plus la duplication form_key valeurs. Auparavant, un produit pouvait être ajouté au panier avec une mise en cache form_key qui a déclenché une exception. When Ajouter au panier a fait l’objet d’un clic avant que le code JavaScript ne soit complètement initialisé, puis la fonction form_key la valeur envoyée dans les données de formulaire ne correspondait pas à la session des utilisateurs et le produit n’a pas été ajouté au panier. GitHub-13746
  • Le client cURL actuel respecte désormais les noms d’en-tête insensibles à la casse. Auparavant, la variable Set-Cookie était sensible à la casse, ce qui pouvait entraîner des problèmes avec certains serveurs HTTP. GitHub-29524
  • Format d’URL XSD mis à jour api-functional et des fichiers XML de cas de test. GitHub-30552
  • Un préfixe d’événement et un objet d’événement ont été ajoutés à la collection de valeurs de l’option de produit du catalogue pour améliorer la personnalisation du chargement de la collection de \Magento\Catalog\Model\ResourceModel\Product\Option\Value\Collection. GitHub-29621
  • Toutes les occurrences de array_merge ont été restructurés afin d’utiliser le format recommandé dans la norme de codage. GitHub-30005
  • A head.additional bloc de type \Magento\Framework\View\Element\Text\ListText a été ajouté à la variable adminhtml default layout (par magento2/module-base). GitHub-29165
  • Ajout de la méthode d’URL d’échappement manquante au widget du module de modèle de mise en page. GitHub-30036
  • La variable \Magento\Framework\Filesystem\Io\File::read() est désormais compatible avec \Magento\Framework\Filesystem\Io\IoInterface::read(). GitHub-27866

Klarna

  • Suppression de la dépendance au module PayPal. GitHub-29421

Journalisation

  • La variable Magento_Logging module enregistre désormais correctement les nouvelles valeurs ainsi que les valeurs qui les ont précédées. Auparavant, les valeurs de la colonne Valeur avant changement affichaient les valeurs N/A, qu’il s’agisse de la première modification ou de la suivante ou que la valeur par défaut soit renvoyée. GitHub-26943

Galerie de médias

  • L’administrateur Magasins > Configuration > Avancé > Système a été mise à jour afin d’afficher le nom de produit correct (Media Gallery). Des reconceptions mineures de l’interface utilisateur ont été incluses. GitHub-1738
  • Les liens de la section Utilisé(e) dans des descriptions d’image de la galerie multimédia affichent désormais une grille qui a été filtrée selon l’image sélectionnée comme prévu. Auparavant, le titre de la grille affichée n’était pas correct et les entrées de liste n’étaient pas exactes. GitHub-1694
  • Vous pouvez désormais modifier plusieurs images dans la galerie de médias. Auparavant, vous ne pouviez pas ajouter de balises à une seconde image après l’ajout de balises à une seule image. GitHub-1755
  • Le menu déroulant Balises est désormais vide comme prévu une fois que vous avez supprimé des balises d’une image dans la galerie multimédia. GitHub-1703
  • Le traitement par lots des messages de file d’attente de synchronisation Media Gallery est désormais pris en charge. GitHub-1724
  • L’application affiche désormais une page 404, comme prévu lorsque vous essayez d’ouvrir la galerie de médias lors de la Amélioration de la galerie multimédia est désactivée. GitHub-1760
  • MediaGalleryMetadata ignore maintenant le lecteur de segments si une exception se produit et analyse et affiche à la place les métadonnées d’image comme prévu. Auparavant, les métadonnées de l’image étaient vides en raison d’une exception de la variable exif_read_data lecteur de segments. GitHub-1782
  • La longueur du nom de dossier n’empêche plus le chargement d’une image dans la galerie de médias. La galerie de médias définit désormais la colonne de chemin comme type text. GitHub-1778
  • Le téléchargeur d’images affiche désormais la taille d’image correcte lorsqu’un rendu est inséré à partir de la galerie multimédia. GitHub-1806
  • La vérification de chemin a été ajoutée à la variable Mediagallery module de téléchargement. Auparavant, la validation échouait et l’application n’importait pas de produits lors de la Activer la vieille galerie de médias était désactivé. GitHub-30649
  • Magento_Cms::media_gallery Des sous-ressources ACL ont été ajoutées et appliquées pour la nouvelle galerie de médias afin de prendre en charge les autorisations configurées pour les opérations discrètes suivantes :

    • Chargement de ressources
    • Insérer des ressources dans du contenu
    • Suppression de ressources
    • Création de dossiers
    • Supprimer des dossiers. GitHub-1487
  • Les chaînes de texte et les noms de dossiers de la Longue galerie de médias ne sont plus recadrés. Auparavant, l’application affichait le texte recadré et les images, puis le message suivant : We couldn't find any records. GitHub-1763, GitHub-1758
  • L’application n’affiche plus le Ajouter la sélection lorsqu’aucune image n’est sélectionnée lors de l’édition du contenu d’une nouvelle page. GitHub-1769
  • Les filtres sont désormais appliqués comme prévu sur la variable Contenu > Galerie de médias Grille de catégories. GitHub-1763
  • La configuration des options de point d’arrêt de multiplication des galeries fonctionne désormais comme prévu. Auparavant, la configuration des options de point d’arrêt ne fonctionnait pas correctement car mediaCheck a déclenché la fonction de requête exit media au chargement de la page. GitHub-29933

MFTF

  • Remplacement des actions répétitives par des groupes d’actions dans CheckStaticBlocksTest. GitHub-30561
  • AdminUpdateCategoryAndMakeInactiveTest et VerifyChildCategoriesShouldNotIncludeInMenuTest ont été restructurés pour se conformer aux bonnes pratiques de la MFTF. GitHub-30058
  • Suppression des doublons AdminOpenCMSBlocksGridActionGroup. GitHub-30896
  • Remplacé AdminOpentCmsBlockActionGroup avec AdminOpenCmsBlockActionGroup. GitHub-29839
  • Ajout de groupes d’actions au Analytics module . GitHub-29500
  • Mis à jour CheckCheckoutSuccessPageAsRegisterCustomerTest et CheckCheckoutSuccessPageAsGuestTest pour annuler les commandes créées après l’exécution des tests. GitHub-28324
  • Supprimé AdminNavigateToPageGridActionGroup en raison de la redondance. GitHub-29838
  • Un problème avec StorefrontProductListWidgetWithSharedCatalogTest qui entraînait le saut du test a été résolu. GitHub-322
  • Implémenté ActionGroup pour accéder à la page passage en caisse. GitHub-29843
  • Implémenté AdminOpenCreateNewCMSPageActionGroup pour créer une page CMS. GitHub-29824
  • Correction de problèmes liés au saut dans les tests MFTF pour la page CMS pour Media Gallery. GitHub-30164
  • Des titres et descriptions significatifs ont été ajoutés aux tests MFTF pour la variable Company, CompanyCredit, CompanyPayment, CompanyShipping, et ConfigurableSharedCatalog modules. GitHub-30164

Nouveaux tests

  • Ajout d’un test pour activer l’envoi d’un courrier électronique à un ami dans l’administrateur. GitHub-29145
  • Ajout d'un test pour la suppression d'un bloc CMS d'une grille par un administrateur. GitHub-30372
  • Ajout d’un test pour appliquer une règle de panier à un seul article de lot. GitHub-28921
  • Ajout de tests pour vérifier si Utilisé dans les informations relatives à une image de galerie multimédia s’affichent une fois l’entité supprimée. GitHub-1774

Nouveaux groupes d’actions

Newsletter

  • Les utilisateurs administrateurs peuvent désormais modifier un compte client comme prévu lorsque le client est abonné à une newsletter mise en file d’attente. GitHub-30645
  • L’application envoie à nouveau une confirmation d’abonnement à la newsletter si l’acheteur ne confirme pas son inscription à la newsletter. GitHub-28422
  • Vous pouvez désormais modifier un compte client comme prévu lorsque le client est abonné à une newsletter mise en file d’attente. GitHub-30645

Modes de paiement

  • Les méthodes de paiement sont désormais chargées dans l’administration de tous les sites web, comme prévu dans un déploiement multi-magasin.
  • L’application n’affiche plus le Purchase Order number is a required field message situé au-dessus du champ code de bon avant que l’acheteur ne saisisse des informations dans les déploiements où le bon de commande a été configuré comme la seule option de paiement disponible.
  • L’application effectue désormais les paiements de Payflow Pro avec succès lorsque le nom de l’acheteur contient des lettres accentuées. Auparavant, le paiement ne s’était pas terminé et l’application consignait cette erreur : report.CRITICAL: String to be escaped was not valid UTF-8 or could not be converted.
  • Les acheteurs invités peuvent désormais passer des commandes PayPal lorsque Attribution automatique au groupe client est activée. Le paiement est traité sur la passerelle PayPal, la commande est créée en Magento et l’acheteur voit la page de remerciement de la commande. Auparavant, la commande était traitée correctement sur la passerelle PayPal, mais elle n’était pas créée dans Adobe Commerce. L’acheteur était redirigé vers la page de révision des commandes, où l’application affichait cette erreur : Failed address validation: %1" error. GitHub-25399

PayPal

  • Les commerçants peuvent désormais passer une commande de l’administrateur après avoir basculé d’un mode de paiement utilisant une carte de crédit à un mode de paiement autre que carte de crédit. Auparavant, lorsqu’un commerçant cliquait sur la variable Envoyer la commande , le processus de chargement a commencé mais n’a jamais été terminé et la commande n’a pas été placée.
  • L’application ne crée plus de commandes en double lorsqu’une commande est passée avec PayPal Express. Auparavant, lorsqu’un acheteur tentait de payer une commande avec PayPal Express mais que PayPal renvoyait une erreur, l’application créait toujours la commande. Cela entraînait la duplication des commandes sur le site du commerçant. GitHub-13952
  • Les rapports de règlement PayPal sont désormais disponibles à l’adresse Rapports > Ventes > Règlement PayPal comme prévu. Auparavant, l’application ne répertoriait pas ces rapports sur la grille de rapport de règlement PayPal et affichait ce message : We couldn't find any records.
  • Cliquez sur le bouton PayPal lors du passage en caisse ne déclenche plus une web-api appelez . Auparavant, deux demandes étaient déclenchées, ce qui doublait le coût du produit.

Performances

  • Magento_Csp/Model/BlockCache a été restructuré afin de réduire à la fois la consommation de mémoire et la génération de chaînes mises en cache inutiles. Auparavant, les pages qui incluaient des scripts et des styles placés dynamiquement sur liste blanche étaient souvent confrontées à des problèmes de performances. GitHub-29964
  • Nous avons amélioré les performances des exportations planifiées de catalogues qui incluent plus de 100 000 produits utilisant des consommateurs.
  • L’application ne vide plus le cache de catégorie lorsque vous ajoutez ou enregistrez un produit désactivé dans une catégorie. Auparavant, l’application purgeait le cache des catégories associées, en dépit de l’état du produit, ce qui affectait les performances du serveur.
  • Le délai de chargement des pages pour la mise à jour de la quantité de produits dans le panier a été amélioré. Auparavant, l’application effectuait plusieurs requêtes distinctes pour chaque produit dans le panier, ce qui augmentait le temps de chargement des pages.
  • Un indexeur a été ajouté à la variable Magento_Bulk La table MySQL, qui a amélioré les performances des opérations en masse.
  • L’application met désormais en cache les ID enfants des produits configurables. Cela a amélioré les performances de chargement des pages en réduisant le nombre de requêtes de base de données. GitHub-30585
  • Le chargement du tableau de bord Admin a été amélioré. Auparavant, l’application affichait les noms d’onglet sous forme de liste avant que la page ne se charge.
  • La gestion du cache des segments a été améliorée grâce à l’ajout de limites d’expiration pour les caches de mise en page. Auparavant, les caches Redis atteignaient rapidement la mémoire maximale allouée dans les déploiements volumineux et l’application générait des erreurs lors des opérations d’écriture.
  • Les performances de passage en caisse ont été améliorées par la suppression d’une requête de base de données redondante dans app/code/Magento/Catalog/Model/CategoryLink.php. GitHub-29453
  • Magento\Framework\DB\Adapter\Pdo\Mysql->isTableExists a été restructuré afin d’améliorer les performances. Appels redondants vers SHOW TABLE STATUS pour vérifier l’existence d’une table a été réduite. GitHub-29662
  • getPageLayoutsConfig est désormais enregistré dans le cache, ce qui a amélioré les performances du créateur de configurations. GitHub-29546
  • Les performances d’Adobe Commerce lors des opérations de modification et d’enregistrement pour les segments de clients qui contiennent plus de 3 000 000 clients ont été améliorées.

Persistant

  • Les acheteurs ne peuvent plus commander une fois que le cookie de session a expiré lorsque le panier persistant est activé. À la place, l’application affiche la page de connexion afin que l’acheteur puisse se connecter. Auparavant, l’application plaçait la commande. L’application n’a pas correctement validé le client persistant lorsque PHPSESSID avait expiré, et customerSession a été recréé à partir des informations persistantes.
  • L’application affiche désormais le message de bienvenue comme prévu une fois qu’un acheteur s’est connecté à un magasin où le panier persistant est activé. Auparavant, l’application affichait la variable Pas vous ? après vous être connecté.
  • L’application n’affiche plus le Pas vous ? texte lorsqu’un client sélectionne la variable Mémoriser lors de la connexion à un déploiement pour lequel le panier persistant est activé.
  • L’application n’affiche plus le contenu du panier d’un client une fois la session des clients expirée. Auparavant, l’application affichait cette erreur lorsqu’un client invité tentait d’extraire son panier persistant : No such entity with cartid = 0.

Tarifs

  • Les mises à jour de prix asynchrones consécutives n’interagissent plus les unes avec les autres, et l’état correct est affecté à chaque opération. Auparavant, si une mise à jour de prix asynchrone échouait, toutes les mises à jour de prix asynchrones suivantes échouaient jusqu’au redémarrage du consommateur de file d’attente correspondant. GitHub-27865

Rapports

  • Rapports > Marketing > Produits en panier affiche désormais uniquement l’enregistrement dans la portée autorisée de l’utilisateur qui génère le rapport. Auparavant, toutes les données étaient disponibles pour toutes les portées.
  • L’application utilise désormais la devise spécifiée dans la portée du rôle du marchand qui génère le rapport lors de l’affichage de la devise du produit dans le rapport Produits dans le panier.
  • Les fonctionnalités des produits récemment consultés et récemment comparés affichent désormais les statistiques pour différents magasins et sites web dans l’administration, comme prévu dans un déploiement multi-magasin. Auparavant, ces fonctionnalités ne prenaient pas en compte tous les magasins ou sites web.
  • Les rapports Prix dans la commande utilisent désormais le bon symbole monétaire.
  • L’application vérifie désormais l’existence d’un jeton lorsqu’un utilisateur clique sur le tableau de bord Admin. Accéder au rapport avancé bouton . Si le jeton existe, l’application affiche la page Création de rapports avancés . Si le jeton n’est pas configuré, l’application affiche une page d’informations dans le Guide de l’utilisateur. GitHub-25411

Autorisations de marchandisage de retour (RMA)

  • Les options sélectionnées s’appliquent désormais aux éléments de ligne fractionnés lorsque vous fractionnez une RAM. Auparavant, les valeurs des options Raison de retour, Condition d’élément et Résolution n’étaient pas enregistrées.
  • Vous pouvez désormais supprimer les informations de suivi et d’expédition pour une RMA lorsque le regroupement JavaScript est activé.
  • Les administrateurs disposant d’un accès limité aux seuls produits d’une portée de site web spécifique peuvent désormais ajouter un élément à un retour, même si cet élément n’est plus dans la portée de leur site web.

Révisions

  • Le nombre d’évaluations affichées sur Magasins > Attribut > Évaluation correspond désormais au nombre d’évaluations dans un déploiement multisite. GitHub-30258
  • La page Nouvelle révision se charge désormais comme prévu lorsque vous cliquez sur le bouton Nouvelle révision bouton sur l’administrateur Marketing > Toutes les révisions. Cliquer sur un produit sur cette page ouvre le nouveau formulaire de révision attendu pour ce produit.
  • L’application ne renvoie plus cette erreur lorsque vous essayez de modifier une commande à partir de l’administrateur. Marketing > Toutes les révisions: Uncaught TypeError: Event.observe is not a function. GitHub-30388

Références

  • Les points de rétribution sont désormais calculés comme prévu pour les commandes imposables lorsqu’une commande partielle se termine.
  • Les commerçants peuvent désormais obtenir un remboursement partiel pour une commande qui a été achetée avec des points de récompense et qui a ensuite remboursé le reste de la commande. Auparavant, les marchands ne pouvaient pas rembourser les points de récompense pour le reste de la commande.
  • L’application n’affiche plus cette erreur lorsqu’un acheteur réapplique des points de récompense après les avoir supprimés : You removed the reward points from this order.
  • Les points de récompense sont désormais correctement calculés lorsqu’un client passe une commande dans une devise autre que la devise de base dans un magasin qui prend en charge plusieurs devises.

Ventes

  • La variable order_created_at de la colonne sales_shipment_grid est désormais mis à jour comme prévu après chaque mise à jour.
  • Vous pouvez désormais réorganiser un produit avec une date d’options personnalisées à partir d’un magasin pour lequel Utilisation du calendrier JavaScript est activée. Auparavant, lorsque vous tentiez de réorganiser l’article, l’application n’ajoutait pas l’article dans le panier et affichait cette erreur : Could not add the product with SKU "simp1" to the shopping cart: Please specify date required option(s).
  • L’application ne ferme plus immédiatement une commande lorsqu’un acheteur extrait une commande composée d’un produit virtuel dont le coût total est de 0 $ dans les déploiements où la méthode de passage en caisse du sous-total zéro est activée.
  • L’application n’archive plus une commande avant de la traiter. Auparavant, une action à sélection multiple sur la grille Admin order order affectait les commandes non sélectionnées.
  • La grille des notes de crédit affiche désormais le symbole monétaire correct lorsque le riyal saoudien (SAR) est défini comme devise de base.
  • L’application affiche désormais de manière cohérente les informations d’adresse de livraison comme prévu sur la page de commande lors du passage en caisse.
  • La valeur de total_qty correspond désormais à la valeur de total_qty_ordered dans les factures de ventes.
  • L’envoi asynchrone d’emails de vente envoie désormais un email uniquement pour les commandes créées après la date de la dernière mise à jour. Auparavant, l’application ne filtrait pas les emails par date lorsque l’envoi asynchrone était activé.
  • L’application envoie désormais une facture électronique comme prévu lorsqu’une commande est passée auprès de l’administrateur.
  • L’application efface désormais les données de commande existantes au cours d’une session lorsqu’un commerçant crée une nouvelle commande pour un client à partir de l’administrateur.
  • Vous pouvez désormais modifier le groupe de clients pour les nouveaux clients créés dans un ordre d’administration lors de la Activation de l’affectation automatique au groupe client est activée. Vous pouvez également attribuer un groupe de clients en fonction de la validation de la TVA. Auparavant, lors de la validation du numéro de TVA, l’objet de requête ne vérifiait pas la requête affectée. group_id. Par défaut, il utilisait la valeur par défaut group_id.
  • L’application ne modifie plus l’état d’une commande personnalisée avec Suspected Fraud statut à Processing après qu’un commerçant crée une livraison partielle à l’aide de l’API REST.

Règle de vente

  • Les codes coupon appliqués selon le mode d’expédition ne sont plus appliqués lorsqu’un acheteur modifie le mode d’expédition. Auparavant, l’application n’effaçait pas les codes de bon lorsque les acheteurs activaient leurs méthodes de livraison.
  • Les acheteurs ne peuvent pas appliquer un code de bon plus fréquemment que la variable Utilisateurs par client la définition des autorisations. Auparavant, si plusieurs fenêtres de navigateur étaient ouvertes et que plusieurs commandes étaient passées simultanément, chaque commande bénéficiait de la remise, même si la variable Utilisateurs par client dont la valeur est 1.

Rechercher search-heading

  • L’Elasticsearch ne renvoie plus d’erreur de modificateur inconnue lorsqu’un acheteur recherche un synonyme de recherche. Auparavant, l’échappement ne comportait pas de barre oblique dans les expressions régulières, ce qui entraînait une erreur fatale.
  • La recherche avancée ne renvoie plus les enfants de produits configurables en tant que résultats de recherche individuels lorsque les produits enfants ont été configurés avec une visibilité définie sur . Non visible individuellement.
  • Les noms de produits Elasticsearch dans les résultats de recherche ne sont plus sensibles à la casse.
  • La page des résultats de recherche est maintenant mise en cache comme prévu lorsque la variable définir Nombre de principaux résultats de recherche sur mettre en cache sur 0 est activé dans Admin Magasins > Configuration > Catalogue > Catalogue > Recherche catalogue.
  • L’indexeur de recherche de catalogue s’exécute maintenant sans générer d’erreur en raison de la limite de champ Elasticsearch. Auparavant, l’application générait cette erreur : Limit of total fields [xxx] in index [m24dev_product_1_v10] has been exceeded.
  • Les performances de la recherche catalogue ont été améliorées. Désactivation Activation des suggestions de recherche (Magasins > Configuration > Catalogue > Recherche catalogue ) fonctionne comme prévu. Auparavant, l’application interrogeait le MySQL. search_query au lieu d’Elasticsearch pour les suggestions de recherche à saisie automatique. GitHub-25534
  • Elasticsearch filtre désormais les prix des produits de la même manière que MySQL. Type de champ price_* a été modifié à partir de float to double dans l’index Elasticsearch afin d’améliorer la précision et de corriger une erreur à virgule flottante.
  • Un écouteur d’événement keydown a été ajouté à l’administrateur pour activer le formulaire de recherche globale lorsqu’une barre oblique est saisie. GitHub-29551
  • L’Elasticsearch ne renvoie plus d’erreur, mais affiche à la place aucun produit comme prévu lorsqu’un string est utilisée pour filtrer les produits par attribut avec une valeur integer ou decimal type de serveur principal. Auparavant, l’application affichait cette erreur dans exception.log: number format exception.
  • L’Elasticsearch ne lance plus d’exception lorsqu’un terme de recherche contient une /. GitHub-25886, GitHub-25110

  • La recherche est maintenant désactivée comme prévu pour un groupe de clients sélectionné dans la requête de produits lorsque la variable Interdire la recherche catalogue par le paramètre de configuration dans la catégorie Autorisations générales est activé. GitHub-29927

  • Les résultats de recherche n’incluent plus plusieurs citations du même mot. GitHub-30104

Expédition

  • Le processus de passage en caisse n’échoue plus lorsqu’une interruption du réseau interrompt la connexion à la méthode d’expédition DHL. À la place, l’application affiche d’autres méthodes de livraison disponibles. Auparavant, le processus de passage en caisse était bloqué lorsque la connexion à l’expédition DHL était interrompue, et l’application affichait cette erreur : Sorry, no quotes are available for this order at this time. GitHub-29902
  • Les champs qui décrivent la méthode de diffusion UPS sur Admin Magasins > Configuration > Ventes > Méthodes de diffusion sont désormais activées comme prévu.
  • Expéditions créées via le POST /rest/V1/shipment Le point de terminaison met désormais correctement à jour les commandes. Auparavant, l’application créait une expédition, mais l’état de l’expédition restait à l’état de traitement.
  • L’application ne supprime plus les produits simples du panier lorsqu’un autre produit est supprimé du panier avant d’être livré avec plusieurs adresses. GitHub-30259
  • La page Révision de commande affiche désormais le montant de la taxe avant le montant de la livraison, comme prévu pour les commandes envoyées à plusieurs adresses.
  • Le suivi des envois UPS indique désormais un état Delivered On uniquement lorsqu’un package a été livré. GitHub-30032
  • L’application affiche désormais le sous-total correct du panier pour les commandes qui contiennent un produit virtuel lorsque l’acheteur revient sur son panier en passant d’une extraction avec plusieurs adresses à une autre.
  • Les vendeurs peuvent désormais créer une étiquette de livraison à partir de la page d’expédition pour une commande existante qui utilise l’expédition FedEx lorsque le regroupement JavaScript est activé. Auparavant, l’application générait une erreur lorsque le marchand cliquait sur la variable Créer une étiquette d’expédition bouton .
  • Le lien de tracking de l'expédition dans l'email de confirmation envoyé aux clients fonctionne désormais comme prévu. Auparavant, ce lien renvoyait une erreur 404.
  • L’application affiche désormais un message d’erreur informatif lorsqu’un acheteur passe en caisse à l’aide de plusieurs adresses, puis supprime tous les produits autres qu’un produit virtuel. GitHub-25595
  • Vous pouvez maintenant créer un libellé d’expédition comme prévu pour une commande partielle. Auparavant, lorsque vous tentiez de créer un libellé d’expédition pour un seul article d’une commande, l’application ajoutait tous les produits au package et la validation échouait. GitHub-29552
  • La validation de la méthode d’expédition n’est plus ignorée lors de l’appel de /V1/guest-carts/:cartId/totals-information. GitHub-25147

Plan du site

  • Cartes de site générées par cron incluent désormais les URL d’image correctes. Auparavant, le chemin d’accès de l’image générée en cache était incorrect dans les déploiements multi-magasin.

Évaluation

  • La page Modifier la page d’accueil affiche désormais toutes les mises à jour planifiées, comme prévu, lorsque vous recherchez les mises à jour planifiées de la page d’accueil. Auparavant, l’application n’affichait qu’une seule des mises à jour planifiées.
  • Envoi de 0 avec la variable /rest/V1/products/special-price-information le point de terminaison prix spécial enregistre désormais le prix et renvoie le planning comme prévu.
  • Les importations planifiées s’exécutent désormais comme prévu lorsque le fichier CSV d’importation contient une marque d’ordre des octets (BOM).
  • L’application ne supprime plus la classe de corps de mise en page lorsqu’un commerçant planifie une mise à jour de catégorie.
  • Les modifications de produit reprogrammées ne sont désormais plus effacées après un événement cron run.
  • L’application ne génère plus d’erreur lorsque vous essayez de planifier une mise à jour pour une catégorie. Auparavant, l’application générait cette erreur lorsque vous cliquiez sur Enregistrer sur la page Planifier une nouvelle mise à jour : Something went wrong while saving the Magento\Catalog\Api\Data\CategoryInterface.
  • La variable rest/V1/products/special-price Il est désormais possible d’utiliser l’API pour planifier des prix spéciaux pour plusieurs magasins. Auparavant, l’application entraînait une erreur lorsqu’un commerçant planifiait une mise à jour des prix pour plusieurs magasins pour le même from et to heure à laquelle une restauration est disponible à l’heure de début de la nouvelle planification.

Magasin

  • L’administrateur et le sélecteur de magasin principal reflètent désormais les modifications apportées à l’ordre de tri du magasin dans l’administrateur. GitHub-13401
  • L’application crée désormais des URL correctes pour les catégories et les produits après la modification de la clé URL de niveau supérieur d’une vue de magasin. Auparavant, lorsqu’une arborescence de catégories d’une vue de magasin était modifiée. url_keys, si une clé de catégorie n’a pas changé, mais que la clé des parents de catégorie l’a fait, le code d’origine utilise la vue de magasin par défaut de la catégorie lors de la création d’URL. GitHub-28633

Règles Target

  • Le chargement des pages de détails du produit a été optimisé. Nous avons ajouté des index pour les tables de base de données qui optimisent les requêtes de conditions de règle de ciblage dans de nombreux cas.
  • Les règles de Target pour les produits associés fonctionnent désormais lorsque la variable is one of La condition utilisée pour la fonction Produits à afficher contient plusieurs conditions. Auparavant, lorsque cette condition contenait plusieurs valeurs, elle n’était pas analysée.

Taxe

  • La validation de la TVA sur une commande d’invité n’entraîne plus l’enregistrement du devis par une classe fiscale client incorrecte. GitHub-30018
  • Les commandes envoyées à plusieurs adresses peuvent désormais être enregistrées lors de l’extraction lorsque FPT est configuré. Auparavant, après avoir passé une commande pour plusieurs adresses, l’application affichait une page vierge au lieu de la page de succès de la commande.
  • Les pages Détails du produit de la vitrine affichent désormais les prix anciens et nouveaux avec et sans taxe comme prévu. GitHub-27500, GitHub-11998

Test

  • bin/magento dev:tests:run lance maintenant les tests suivants comme prévu : all, unit, integration, integration-all, static, static-all, integrity, legacy, et default.
  • AdminMediaGalleryInsertLargeImageFileSizeTest a été restructuré.
  • Les tests unitaires sont désormais compatibles avec PHPUnit 8. GitHub-29779
  • \Magento\TestFramework\TestCase\WebapiAbstract contient désormais une fonction qui prend en charge la comparaison de tableaux imbriqués volumineux de résultats attendus et réels dans les tests. Les clés inappropriées du résultat peuvent désormais être ignorées. GitHub-29498
  • AdminMediaGalleryCatalogUiEditCategoryGridPageTest n’échoue plus de manière aléatoire. GitHub-1764
  • dev/tests/integration/testsuite/Magento/Customer/Controller/AccountTest a été amélioré. (assert est désormais basé sur XPath sélecteur au lieu de assertStringContainsString.) GitHub-29700
  • Ajout d’une couverture de test pour le AdminAnalytics module . GitHub-29500
  • Les tests fonctionnels d’intégration et d’API sont désormais compatibles avec PHPUnit 9.3. GitHub-30146
  • Correction de problèmes liés à GraphQL testRequestCacheTagsForCategoryListOnMultipleIds test. GitHub-29372
  • Le test de disponibilité de la devise pour le crédit de la société a été automatisé.
  • Les valeurs d’en-tête contenant des URL sont désormais correctement analysées dans ApiFunctional TestFramework. GitHub-26425
  • —no-tablespaces a été ajouté à toutes les occurrences de mysqldump, qui permet aux tests d’intégration de s’exécuter sans le PROCESS privilège (requis depuis MySQL 5.7.31 / 8.0.21 pour s’exécuter mysqldump par défaut). GitHub-30566

Thème

  • Une nouvelle --no-parent l’indicateur a été ajouté au bin/magento setup:static-content:deploy qui empêche la compilation des parents d’un thème. Ce nouvel indicateur vous permet d’améliorer considérablement les performances du processus de déploiement de contenu statique en évitant la compilation inutile. Notez que ce nouvel indicateur ne fonctionne pas lors de l’utilisation de la variable compact stratégie. GitHub-30184
  • La configuration de conception ne génère plus d’opérations DDL. Auparavant, lorsque la configuration de conception était mise à jour, l’application générait des instructions DDL pouvant déclencher des erreurs MySQL.
  • Le code redondant dans la variable Magento_ConfigurableProduct du thème Admin a été supprimé. GitHub-29857
  • Suppression de la navigation des styles redondants et des propriétés inutilisées dans le thème vierge. GitHub-29914
  • Ajout d’une fonctionnalité de navigation réductible au thème vierge dans la vue mobile. GitHub-30237
  • Le chargement des polices web pour les thèmes a été optimisé. GitHub-29526
  • Les développeurs peuvent désormais spécifier le type de police lors de la déclaration d’une police personnalisée dans un thème. GitHub-29719

Traduction et paramètres régionaux

  • Le sélecteur de date de la grille Commandes d’administration fonctionne désormais comme prévu lorsque la langue d’administration est arabe (ar_SA - Saudi Arabia).
  • L’application n’affiche plus de message d’erreur lorsqu’un acheteur saisit une adresse argentine avec un code postal valide lors de l’enregistrement ou de l’ajout d’une nouvelle adresse. Auparavant, l’application affichait cette erreur : Provided Zip/Postal Code seems to be invalid. Example: 1234. If you believe it is the right one you can ignore this notice.
  • L’application ne renvoie plus d’erreur lorsqu’un acheteur saisit un code postal à cinq chiffres pour une adresse coréenne.
  • zip_codes.xml a été mis à jour afin d’appliquer huit chiffres aux codes postaux brésiliens. GitHub-29984
  • Amélioration de la localisation des expressions non localisées restantes. GitHub-11175
  • L’espace réservé d’entrée de la recherche par grille peut désormais être traduit. GitHub-30510
  • L’application télécharge désormais les modules JavaScript de traduction intégrés uniquement lorsqu’ils sont activés. GitHub-29553

Interface utilisateur

  • La variable Création d’un compte sur la page Créer un compte , le bouton reste actif lorsqu’un acheteur saisit des données non valides. Auparavant, ce bouton était désactivé, ce qui empêchait les acheteurs de retenter de créer un compte après avoir commis une erreur. Il s’agissait d’un problème connu dans la version 2.4.1. GitHub-30513
  • Le chargement de la grille d’expédition sur la page Modifier la commande d’administration a été amélioré.
  • L’application affiche désormais la variable Identique à l’adresse de facturation , comme prévu sur la page de commande, lorsque des produits ont été ajoutés au panier par SKU.
  • La classe CSS qui a défini une largeur limitée est maintenant appliquée comme prévu à la variable Heure de début champs sur l’administrateur Magasin > Configuration > Catalogue > Plan du site XML > Paramètres de génération. GitHub-29496
  • Correction de problèmes d’affichage avec le libellé de la case à cocher Conditions générales . GitHub-24060
  • L’application n’affiche plus le code CSS d’un bloc de prix de niveau sur la page de produit lorsque les prix de niveau ne sont pas disponibles. GitHub-29194
  • La position des boutons sur la page des détails de la vue d’image a été réorganisée afin de respecter les directives de l’interface utilisateur. GitHub-1783
  • Le champ de texte Code coupon s’affiche désormais avec la largeur correcte dans les navigateurs Internet Explorer/EDGE.
  • La variable @button__border-radius est désormais définie dans la variable lib/web/css/source/lib/variables/_buttons.less bibliothèque . border-radius a une valeur par défaut de 3px. Auparavant, border-radius était codé en dur. GitHub-28674
  • Le bouton d’envoi de recherche (loupe) dans le champ de mini recherche est maintenant désactivé tant que la longueur de la chaîne de recherche minimale n’a pas été atteinte. GitHub-29704
  • La variable Modèle d’aperçu fonctionne désormais comme prévu dans la page Modifier la file d’attente .
  • Ajustement de la position du curseur du milieu au début de la fonction Message champ sur Mon compte > Registre des cadeaux > Partager le registre des cadeaux.
  • Les problèmes d’affichage de la mise en page des colonnes sur la page Ajouter une exportation planifiée ont été résolus.
  • L’application conserve désormais la valeur d’un attribut lorsque vous déplacez l’attribut d’un groupe à un autre.
  • L’application affiche désormais une icône de calendrier en regard de la variable Date champ de saisie tel que prévu dans storefront Créez une page de compte.
  • Ajout d’une variable de poids de police lourde à lib/web/css/source/lib/variables/_typography.less. GitHub-29778
  • La visibilité des filtres fonctionne désormais avec la visibilité des colonnes comme prévu dans les grilles d’administration. GitHub-30345
  • La bannière que l’application affiche sur la page Connexion administrateur en tant que client reste maintenant en haut de la page lorsque l’utilisateur fait défiler la page. GitHub-29354
  • Les options de composant de sélection de l’interface utilisateur ne sont plus visibles lorsque this.disabled(true) est définie. GitHub-29098
  • La variable @font-family-name__base n’est plus utilisée lors du chargement de la police Open Sans. GitHub-29515
  • Attribut WAI-ARIA aria-atomic="true" a été ajouté à la balise de conteneur d’erreurs. GitHub-29560
  • Les grilles de composants de l’interface utilisateur affichent désormais un nombre précis d’éléments sélectionnés. Auparavant, les grilles indiquaient un nombre incorrect de sélections lorsqu’une recherche par mot-clé sélectionnait tous les éléments de la grille et que le nouvel acheteur désélectionnait ensuite certains éléments avant de cocher la case d’en-tête. GitHub-29968
  • L’application n’affiche plus le HTML non rendu sur les pages de présentation des factures et des envois. GitHub-29958
  • Cliquer Options sur l’administrateur Magasins > Taux de change redirige désormais les utilisateurs vers la section des options de devise développées de la page Configuration du système . GitHub-29336
  • Amélioration de la prise en charge de l’affichage d’un widget en fonction d’une autre condition pour adminhtml widgets lors de l’utilisation d’un type de widget de sélecteur. GitHub-13316, GitHub-7252, GitHub-6868
  • Marge intérieure améliorée du texte dans les boîtes de dialogue contextuelles de confirmation dans le thème Luma. GitHub-30452

Vault

  • La variable Vault le module reconnaît maintenant les codes de méthode de paiement de la demande du service de gestion de l’information sur les paiements. Auparavant, lorsqu’un acheteur passait une commande à l’aide d’une carte de crédit de Braintree enregistrée, l’application renvoyait cette erreur même lorsqu’un mode de paiement valide était utilisé : The requested Payment Method is not available.

Vertex

  • Les suggestions d’adresses sont désormais supprimées comme prévu lorsqu’une adresse est modifiée.

  • Une condition de concurrence qui empêchait certains clients d’enregistrer leur adresse dans le panneau de leur compte a été résolue.

  • Dans certains cas, la validation des adresses de sommet n’ajoute plus la page Modifier l’adresse au cache de la page entière.

  • La taxe calculée par sommet est désormais prise en compte lorsque la livraison gratuite est configurée pour un montant incluant la taxe.

Structure de l’API web

  • Vous pouvez désormais utiliser POST V1/invoice/:invoiceId/refund pour rembourser une facture dont la quantité de produits est nulle et les frais de livraison nuls (par exemple, {"items": [{"qty": 0, "orderItemId": 6, "extensionAttributes": {}}], "appendComment": false, "notify": true, "isOnline": true, "arguments": {"adjustment_negative": 0.0, "adjustment_positive": 0.99, "shipping_amount": 0}}. ) Auparavant, l’application générait cette erreur : You can't create a creditmemo without products. GitHub-23069
  • Vous pouvez désormais utiliser POST V1/categories pour créer ou mettre à jour une catégorie. Auparavant, l’application n’enregistrait pas la valeur si la variable default_sort_by a été définie sous la forme d’un tableau. Lorsque la variable default_sort_by a été définie comme chaîne, l’application a généré cette erreur : Error occurred during \"custom_attributes\" processing. Attribute \"default_sort_by\" has invalid value. The \"string\" value's type is invalid. The \"string[]\" type was expected. Verify and try again.
  • Utilisation de POST V1/invoices/:id/capture pour capturer les informations de paiement, fonctionne désormais comme prévu. Auparavant, l’application autorisait la commande, mais la capturait uniquement sur le site de la passerelle de paiement.
  • Lorsque vous utilisez POST V1/order/:orderId/ship pour créer une livraison partielle, le point de terminaison renvoie le nombre correct de produits expédiés.
  • Factures créées à l’aide de POST V1/order/:orderID/invoice reflète désormais précisément le paiement partiel par crédit de magasin. Auparavant, lorsqu’une commande était partiellement payée avec le crédit de magasin, la facture était créée sans tenir compte du crédit de magasin.
  • Le GET rest/all/V1/categories et GET rest/all/V1/categories?rootCategoryId=2 les appels sont maintenant renvoyés name et product_count comme prévu pour toutes les catégories de l’arborescence. Auparavant, les valeurs des champs de catégorie étaient vides. Le module de résolution de noms de table a renvoyé un nom de table incorrect pour récupérer le nombre de produits par catégorie.
  • Le PUT V1/categories/:id endpoint stocke désormais les données nécessaires à la création de redirections 301 pour les clés d’URL de catégorie lorsque la variable save_rewrites_history l’attribut personnalisé est fourni. GitHub-29174, GitHub-30240

Wishlist

  • Les acheteurs peuvent désormais ajouter un produit à une liste de souhaits lorsque le produit est affecté à une source d’inventaire personnalisée. GitHub-3018
  • Les administrateurs peuvent désormais accéder à la page Gérer le panier à partir de la page Admin du client après qu’un client a ajouté un produit à sa liste de souhaits à partir du storefront. Auparavant, l’application affichait l’erreur suivante lorsque l’administrateur cliquait sur la fonction Gérer le panier button : An error has occurred. See error log for details.
  • La variable Ajouter au panier sur la page de liste bloquée partagée fonctionne désormais comme prévu pour les utilisateurs anonymes, invités et non connectés.
  • Les acheteurs peuvent désormais déplacer un produit d’une liste de souhaits vers une autre.
  • L’application affiche désormais les options d’attribut de produit configurables sélectionnées dans la page de liste bloquée, comme prévu. GitHub-24091, GitHub-22503
  • Implémenté ActionInterface pour \Magento\Wishlist\Controller\Shared\Allcart. GitHub-29537

Problèmes connus

Problème: la variable [magento_root]/index.php a été supprimé et l’application s’exécute désormais à partir de /pub par défaut pour les configurations Apache. Les magasins diffusés à partir de sous-dossiers ne fonctionneront pas comme prévu et peuvent afficher des erreurs 404. Solution: utilisez des liens symboliques pour émuler l’installation dans des sous-dossiers. L’exemple suivant utilise deux magasins (https://shop01.com/shop/ et https://shop02.com/shop/) pour illustrer comment utiliser un lien symbolique pour émuler une installation dans des sous-dossiers.

  1. Créez un sous-répertoire pour https://shop01.com/shop/:

    code language-bash
    mkdir magento_root/pub/shop01
    
    code language-bash
    cd magento_root/pub/shop01
    
  2. Créez des liens symboliques pour les répertoires parents du magasin dans le répertoire nouvellement créé :

    code language-bash
    ln -s ../media media
    
    code language-bash
    ln -s ../static static
    
    code language-bash
    ln -s ../../../pub pub
    
    code language-bash
    ln -s ../.htaccess .htaccess
    
    code language-bash
    ln -s ../health_check.php health_check.php
    
  3. Créez un index.php dans le nouveau répertoire (magento_root/pub/shop01/index.php) et ajoutez ce contenu :

   <?php
   require realpath(__DIR__) . '/../../../app/bootstrap.php';

   switch ($_SERVER['HTTP_HOST']) {
       case 'shop01.com':
       case 'www.shop01.com':
           $params = $_SERVER;
           $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'shop01';
           $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
           $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
           $app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
           $bootstrap->run($app);
           break;

       default:
           $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
           /** @var \Magento\Framework\App\Http $app */
           $app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
           $bootstrap->run($app);
       break;
   }
  1. Configurez votre serveur Apache pour qu’il pointe vers le nouveau sous-répertoire. Les configurations de déploiement peuvent varier considérablement. Voici un exemple de configuration de serveur :
   <VirtualHost *:80>
       DocumentRoot "magento_root/pub/shop1"
       ServerName shop01.com
   </VirtualHost>

Problème: les commerçants doivent activer la fonctionnalité de force rapide TLS de l’administrateur pour activer la redirection globale HTTP/HTTPS pour toutes les pages de magasin. Voir Redirection HTTP vers HTTPS pour toutes les pages sur Cloud (force TLS) Article de la base de connaissances.

Problème: vous ne pouvez pas utiliser la variable addConfigurableProductToCart Changement de GraphQL pour ajouter un produit configurable à un panier dans une vue de magasin autre que celle par défaut dans un déploiement multi-magasin qui exécute le stock. (Les vitrines Luma ne sont pas affectées.) l’application affiche cette erreur : Could not add item to cart. Please check required options and try again. Solution: utilisez la variable addProductsToCart à la place. GitHub-31660

Problème: la demande n’envoie pas les informations de paiement comme prévu lorsqu’un acheteur entre pour la première fois un code correct dans le champ CAPTCHA de la page Paiement, mais affiche cette erreur : There has been an error processing your request. Cela se produit uniquement lorsque l’acheteur tente de passer la commande sans saisir le code CAPTCHA ou en la saisissant incorrectement. Solution: actualisez la page.

Problème: l’application crée une commande dans Braintree comme prévu lorsqu’un acheteur clique sur Payer avec Venmo, mais ne crée pas l’ordre dans l’administrateur. Solution: aucune. Voir 2.4.2 Problème connu : le paiement de Venmo Braintree ne fonctionne pas Article de la base de connaissances.

Problèmes connus B2B

Problème: les acheteurs B2B peuvent utiliser des méthodes de paiement en ligne pour contourner le flux habituel de commande. Ce scénario peut se produire si l’acheteur peut réduire le total de son passage en caisse à 0 (par exemple, par un code promotionnel ou une carte-cadeau), puis supprimer le code ou la carte-cadeau. Même dans ces conditions, l’application continue de passer la commande pour le bon montant en fonction des prix des articles dans leur catalogue assigné. Solution: désactivez les cartes-cadeaux et les codes de bon lorsque les méthodes de paiement en ligne sont activées pour la validation de la commande.

Problème: les acheteurs sont redirigés vers le panier lorsqu’ils tentent de passer une commande à partir d’une commande à l’aide de PayPal Express Checkout lorsque Mode contexte est désactivée.

Problème: l’application affiche parfois une erreur 404 lorsqu’un acheteur crée une commande, puis accède à la page de passage en caisse. Cette erreur se produit lorsqu’un acheteur a précédemment créé une commande différente avec un mode de paiement en ligne avant d’accéder à la page de passage en caisse sans avoir effectué l’achat précédent. L'acheteur peut toujours passer la commande. Solution: aucune.

Problème: les remises pour un mode de paiement spécifique persistent pendant le passage en caisse pour une commande d’achat même lorsque l’acheteur modifie son mode de paiement lors du passage en caisse final. Par conséquent, les clients peuvent recevoir une remise à laquelle ils n’ont pas droit. Cela se produit car une règle de panier pour le mode de paiement d’origine est toujours appliquée malgré le changement du mode de paiement. Solution: aucune. Voir 2.4.2 Problème connu B2B : la remise reste pour les commandes en ligne après modification du mode de paiement Article de la base de connaissances.

Problème: la variable deleteRequisitionListOutput la requête renvoie des détails sur la liste des demandes supprimées au lieu des listes de demandes restantes.

Contributions de la communauté

Nous sommes reconnaissants à l’ensemble de la communauté des Magento Open Sources et tenons à saluer leurs contributions à cette version.

L’équipe d’ingénieurs de la communauté Contributeurs Magento tient à jour une liste des principaux individus et partenaires qui contribuent le plus par mois, trimestre et année. Sur cette page Contributeurs, vous pouvez suivre les liens vers leurs relations publiques fusionnées sur GitHub.

Contributions des partenaires

Le tableau suivant présente les contributions des partenaires. Ce tableau répertorie le partenaire qui a contribué à la demande d’extraction, la demande d’extraction externe et le numéro de problème GitHub qui lui est associé (le cas échéant).

Partenaire
Requêtes de tirage
Problèmes GitHub connexes
Atwix
magento/magento2#29630, magento/magento2#29459, magento/magento2#29703, magento/magento2#29460, magento/magento2#29042, magento/magento2#29482, magento/magento2#28821, magento/Partners-magento2ee#260, magento/magento2#29148, magento/magento2#29634, magento/magento2#29832, magento/magento2#29830, magento/magento2#29829, magento/magento2#29828, magento/magento2#29821, magento/magento2#29820, magento/magento2#29836, magento/magento2#29831, magento/magento2#29822, magento/magento2#28653, magento/magento2#27391, magento/magento2#29833, magento/magento2#29904, magento/Partners-magento2ee#264, magento/Partners-magento2ee#248, magento/Partners-magento2ee#168, magento/magento2#29929, magento/magento2#29962, magento/Partners-magento2ee#329, magento/magento2#29931, magento/Partners-magento2ee#316, magento/magento2#29835, magento/magento2#29834, magento/magento2#30081, magento/magento2#30030, magento/magento2#29827, magento/magento2#30049, magento/magento2#30217, magento/magento2#27939, magento/Partners-magento2ee#279, magento/magento2#30222, magento/Partners-magento2ee#349, magento/magento2#29868, magento/Partners-magento2ee#346, magento/magento2#30079, magento/magento2#30317, magento/magento2#30633, magento/magento2#30619, magento/magento2#30359, magento/magento2#30223, magento/magento2#30630, magento/magento2#29675, magento/magento2#30777, magento/magento2#30528, magento/magento2#30525, magento/magento2#30779, magento/magento2#30529, magento/magento2#30694, magento/Partners-magento2ee#400, magento/Partners-magento2ee#401
magento/magento2#29649, magento/magento2#29712, magento/magento2#29501, magento/magento2#29145, magento/magento2#29500, magento/magento2#28520, magento/magento2#28558, magento/magento2#29648, magento/magento2#29843, magento/magento2#29845, magento/magento2#29846, magento/magento2#29847, magento/magento2#29824, magento/magento2#29823, magento/magento2#29841, magento/magento2#29844, magento/magento2#29825, magento/magento2#29531, magento/magento2#29601, magento/magento2#29839, magento/Partners-magento2ee#28551, magento/magento2#29940, magento/magento2#29982, magento/magento2#29941, magento/magento2#29842, magento/magento2#29838, magento/magento2#30103, magento/magento2#30032, magento/magento2#29848, magento/magento2#30058, magento/magento2#30031, magento/magento2#30061, magento/magento2#30561, magento/magento2#30469, magento/magento2#30468, magento/magento2#30372, magento/magento2#30683, magento/magento2#30624, magento/magento2#29168, magento/magento2#30783, magento/magento2#30916, magento/magento2#30917, magento/magento2#30782, magento/magento2#30926, magento/magento2#30625, magento/Partners-magento2ee#30474, magento/Partners-magento2ee#410
Blue Acorn iCi
magento/magento2#29670, magento/magento2#29669, magento/magento2#29564, magento/magento2#27494, magento/magento2#29269, magento/magento2#27609, magento/magento2#29688, magento/magento2#29081, magento/magento2#28379, magento/magento2#29722, magento/magento2#27077, magento/magento2#30318, magento/magento2#30010
magento/magento2#29672, magento/magento2#29673, magento/magento2#29679, magento/magento2#29537, magento/magento2#25595, magento/magento2#29689, magento/magento2#28154, magento/magento2#28428, magento/magento2#27397, magento/magento2#29729, magento/magento2#29558, magento/magento2#25110, magento/magento2#25886, magento/magento2#28286, magento/magento2#30009
Comwrap
magento/magento2#29814, magento/magento2#29751, magento/Partners-magento2ee#337, magento/Partners-magento2ee#328, magento/Partners-magento2ee#319, magento/magento2#30118, magento/magento2#30019, magento/magento2#29998, magento/magento2#29883
magento/magento2#29718, magento/magento2#29372, magento/magento2#29927, magento/magento2#29930, magento/magento2#29926, magento/magento2#29880
Chat blanc rapide
magento/magento2#29413, magento/magento2#28163, magento/magento2#30320, magento/magento2#30355, magento/magento2#28157, magento/magento2#30114
magento/magento2#24060, magento/magento2#13401, magento/magento2#11175, magento/magento2#30296, magento/magento2#22503, magento/magento2#24091, magento/magento2#30073
Vaimo
magento/magento2#29339, magento/magento2#28676, magento/magento2#29885
magento/magento2#28633, magento/magento2#29890
Cedcommerce
magento/magento2#27602, magento/magento2#30400, magento/magento2#30391
magento/magento2#27350, magento/magento2#30361, magento/magento2#30362, magento/magento2#30255
MRM Commerce
magento/magento2#30120, magento/Partners-magento2ee#175
magento/magento2#30133, magento/Partners-magento2ee#26943
EY
magento/magento2#30130
Pinpoint
magento/magento2#28687, magento/magento2#28663, magento/magento2#28491
magento/magento2#8538, magento/magento2#28479, magento/magento2#28186
creativestyle
magento/magento2#27696, magento/magento2#25405
magento/magento2#29553, magento/magento2#25399
Fisheye
magento/magento2#27940, magento/Partners-magento2ee#267, magento/magento2#28216
magento/magento2#29555, magento/magento2#13440
SNOW.DOG
magento/magento2#29934
magento/magento2#29933
integer_net GmbH
magento/magento2#28164
magento/magento2#29585
Ziffity
magento/magento2#29353, magento/magento2#27896, magento/magento2#28349
magento/magento2#29194, magento/magento2#29098
Journée des oiseaux bleus
magento/magento2#27832
magento/magento2#11998, magento/magento2#27500
Krish TechnoLabs
magento/magento2#29923
magento/magento2#29920
Groupe né
magento/magento2#30109, magento/magento2#30421
magento/magento2#30125
Solutions d’orientation
magento/magento2#28818
magento/magento2#29546
Le site
magento/magento2#25412
magento/magento2#25411
Kensium Solutions LLC
magento/magento2#30230
magento/magento2#30179
Saut Web
magento/magento2#27869
magento/magento2#27866
AEM Consulting
magento/magento2#29692
magento/magento2#30243
Wagento
magento/magento2#30411
magento/magento2#30408
MediaCT
magento/magento2#29210
magento/magento2#29515
eComero
magento/magento2#28917
magento/magento2#29656

Contributions des contributeurs individuels

Le tableau suivant répertorie les contributions des membres de notre communauté. Ce tableau répertorie les demandes d’extraction externes, le numéro de problème GitHub qui y est associé (le cas échéant) et le membre de la communauté qui a contribué à la demande d’extraction.

Contribuer aux membres de la communauté
Requêtes de tirage
Problèmes GitHub connexes
Nazar Klovanych
#29576
1449
Shankar Konar
#29511
29496
Hazel Joie Caquicla
#29494
Hazel Joie Caquicla
#29491
Kos Rafał
#29483
29525
Hazel Joie Caquicla
#29461
Jekabs
#29458
29498
Nazar Klovanych
#29452
jmonteros422
#29435
1711
Shankar Konar
#29433
1738
Nazar Klovanych
#29429
1755, 1694
Bartłomiej Szubert
#29413
24060
Angelo Romano
#29410
29416
Honeymay Louiese Ignacio
#29400
1703
Franciszek Wawrzak
#27478
29606
Lukasz Bajsarowicz
#29670
29672
Lukasz Bajsarowicz
#29669
29673
Nazar Klovanych
#29636
1764
Oleh Usik
#29630
29649
Lukasz Bajsarowicz
#29564
29679
Ihor Sviziev
#29518
29653
Oleh Usik
#29459
Oleksandr Kravchuk
#29339
Will Wright
#29316
29315
Vadim Malesh
#29693
29700
Vadim Malesh
#29682
Andrii Beziazychnyi
#29703
29712
Shankar Konar
#29510
28422
Vadim Malesh
#29474
29267
Oleh Usik
#29460
29501
Dmitri Tsymbal
#29042
29145
Radevic Savvas
#28816
28802
Sascha
#28548
28674
Yan Nasonov
#28512
29661
Rudolf Vince
#27494
29537
Nazar Klovanych
#29684
1769
Nazar Klovanych
#29633
1763
Hazel Joie Caquicla
#29639
jmonteros422
#29632
1760
Oleh Usik
#29482
29500
Sathish Subramanian
#29353
29194
Russell Albin
#29269
25595
Bartłomiej Szubert
#28163
13401
Mateusz Krzeszowiak
#27696
29553
Vitali Prokopov
#27691
26903
korostii
#26081
26080
Nazar Klovanych
#29711
1774
Hazel Joie Caquicla
#29411
Wout Kramer
#29210
29515
Edouard Chitoraga
#29148
Oleh Usik
#28821
28558, 28520
Nazar Klovanych
#29783
1780
jmonteros422
#29774
1783
Hazel Joie Caquicla
#29772
Sergii Iouchtchenko
#29761
jmonteros422
#29753
1784
Nazar Klovanych
#29743
1782
Nazar Klovanych
#29742
1778
Hazel Joie Caquicla
#29705
jmonteros422
#29677
1504
Ihor Sviziev
#29799
Oleh Usik
#29634
29648
Alexandre Skrashuk
#29348
28921
Vitali Prokopov
#28413
28388
Lukasz Bajsarowicz
#27609
korostii
#27579
27523
La participation de Cristian
#29426
29425
Michael Derlatka
#28915
26425
Oleh Usik
#29832
29843
Oleh Usik
#29830
29845
Oleh Usik
#29829
29846
Oleh Usik
#29828
29847
Oleh Usik
#29821
29824
Oleh Usik
#29820
29823
Deny Babenko
#28343
29067
Bal
#27269
26288
Andrii Kasian
#27129
25199
Hazel Joie Caquicla
#29875
Hazel Joie Caquicla
#29869
Oleh Usik
#29836
29841
Oleh Usik
#29831
29844
Oleh Usik
#29822
29825
Tu Nguyen
#29044
29526
Vinoth
#28349
bradleybrecher
#27386
29560
Sergii Iouchtchenko
#29921
Hazel Joie Caquicla
#29896
Shankar Konar
#29724
29704
Oleh Usik
#28653
29531
Tu Nguyen
#29913
29914
Nazar Klovanych
#29861
1789
Tu Nguyen
#29856
29857
Tu Nguyen
#29771
29779
Eden Duong
#29278
29277
Eden Duong
#29276
29336
Mohamed-Asar
#27896
29098
Honeymay Louiese Ignacio
#29947
toxix
#29925
28981, 29879
Viktor Kopin
#29906
Olga Zakharchuk
#29863
29958
Nikolaj Malevanec
#29006
12087
Abdul Rahman Abouzaid
#28687
8538
KrielkipNL
#27832
11998, 27500
Gaurav Agarwal
#27602
27350
Alexander Taranovski
#27391
29601
Stanislav Ilnytskyi
#26877
26876
Sergii Iouchtchenko
#29889
Nazar Klovanych
#29715
1487
Honeymay Louiese Ignacio
#29543
1724
Oleh Usik
#29833
29839
Porraphit Chuasuk
#28896
28892
Vitali Prokopov
#27857
26976
Edouard Chitoraga
#29904
Hazel Joie Caquicla
#30006
Ihor Sviziev
#29993
30004
Viktor Kopin
#29959
1813
Hazel Joie Caquicla
#29909
Lukasz Bajsarowicz
#29688
29689
Shankar Konar
#29415
29354
Hazel Joie Caquicla
#29967
Oleh Usik
#29929
29940
Hazel Joie Caquicla
#29895
ashokadewit
#27446
29603
Pascal Brouwers
#26527
26526
Sergii Iouchtchenko
#30076
Hazel Joie Caquicla
#30044
Viktor Kopin
#29979
1806
Janusz Janczy
#29934
29933
Marvin Hinz
#29542
29185
Pieter Zandbergen
#29274
29524
Joe Hobbs
#25510
25147
Benoît Xylo
#25405
25399
Viktor Kopin
#30074
Hazel Joie Caquicla
#30042
Oleh Usik
#29962
29982
Oleh Usik
#29931
29941
Oleh Usik
#29835
29842
Oleh Usik
#29834
29838
Evgeny Levinsky
#27698
28324
Vadim Malesh
#26470
7720
Oleh Usik
#30081
30103
Leandro F. L.
#30014
30013
Taras Gamanov
#29968
24348, 24400
Shankar Konar
#29671
16531, 24332, 29852
Ejaz Alam
#29486
29487, 29502
Oleh Usik
#30030
30032
Eugene Shakhsuvarov
#28117
28116
Serhii Dzepa
#30095
Hazel Joie Caquicla
#30057
Hazel Joie Caquicla
#30034
Marcos Trama
#29972
29984
Lyzun Oleksandr
#29814
29718
Tu Nguyen
#29794
29075
Greg Harvell
#29081
28154, 28428
Daniel Beitler
#29080
29659
Svyatoslav
#28818
29546
Fabian Schmengler
#28164
29585
Tymoteusz Motylewski
#27980
29590
Alex Gusev
#30077
26762, 29612
Abdul Rahman Abouzaid
#28663
28479
Abdul Rahman Abouzaid
#28491
28186
jiten-patel
#27953
12225
Ihor Sviziev
#30153
30183
Shankar Konar
#30069
30164
Leandro F. L.
#30011
29377
Oleh Usik
#29827
29848
Davide Riccardo Caliendo
#29015
29017
Zach Nanninga
#28379
27397
Bünyamin
#27869
27866
Eden Duong
#27585
29599
David Haecker
#30096
322
Yaroslav Garmash
#30075
312
John Carlo Octabio
#30028
Frédéric MARTINEZ
#30182
30191
Ihor Sviziev
#30170
30146
Rafael Kassner
#30160
Sean van Zuidam
#30139
30186
Bartosz Górski
#30120
30133
Milind Singh
#30109
30125
Kate Kyzyma
#30049
30058
Damián Culotta
#29722
29729
Anton Evers
#28995
29522
Kate Kyzyma
#30217
Nikita Sarychev
#30172
30173
Tu Nguyen
#30108
Alexandre Menk
#29205
29174, 30240
Barny Shergold
#28676
28633
Jonas Hünig
#28516
29662
Tu Nguyen
#28177
30237
Alexander Taranovski
#27939
30031
David Manners
#27581
29598
Navarre Barnier
#27077
29558
kolaente
#30180
30190
Peep van Puijenbroek
#29466
29652
Frédéric MARTINEZ
#28588
Petkovski Marjan
#29751
29372
Oleh Usik
#30222
Timon de Groot
#28809
22375
Nirav Patel
#28385
30345
Dan Wallis
#27940
29555
Sean van Zuidam
#30065
30064
Tu Nguyen
#30008
30036
Tu Nguyen
#29726
29719
Gabriel Somoza
#28389
29165
Dan Wallis
#28216
13440
Rafael Corrêa Gomes
#25412
25411
Siim
#29885
29890
Bartosz Kubicki
#27092
29557
Sudheer Singamsetti
#30230
30179
Namrata
#30358
30450
Tu Nguyen
#30333
30448
Wojtek Naruniec
#30318
25110, 25886, 28286
Sean van Zuidam
#30062
30063, 30066
Tu Nguyen
#29773
29778
Pieter Cappelle
#26713
14398, 21885
Bartłomiej Szubert
#30320
11175
Bas van Poppel
#30167
30169
Ihor Sviziev
#30023
30025
Ihor Sviziev
#30002
30005
Eden Duong
#27574
29597
Rafael Kassner
#27454
29604
Nirav Patel
#30458
30452
Tu Nguyen
#30454
30496
solwininfotech
#30405
26133
Bartłomiej Szubert
#30355
30296
Serhii Dzepa
#30554
Alin Alexandra
#30340
30508
Oleh Usik
#29868
30061
guillaume quintard
#28928
29988
Par
#28172
27925
Bartłomiej Szubert
#28157
22503, 24091
Nikolaï Sumrak
#27672
29552
Jonas Hünig
#30502
30566
Yaroslav Bogutsky
#30493
30510
Tu Nguyen
#30453
30542
Sunil Patel
#30402
30388
Oleh Usik
#30079
Jeroen
#29911
29915
Hôte du pipeline
#29196
29297, 29478
Johan Lindahl
#28917
29656
Bartosz Kubicki
#26967
29615
Ejaz Alam
#30579
30545
Hôte du pipeline
#30570
6868, 7252, 13316
Namrata
#30538
30550
Pratik Oza
#30530
30552
Andrii Kasian
#30521
30563
naitsirch
#30322
30314
Kate Kyzyma
#30317
30561
Stanislav Ilnytskyi
#30198
30601
Cyildirim
#28352
28124
Andrii Beziazychnyi
#30633
30469
Edouard Chitoraga
#30619
30468
Sudheer Singamsetti
#30375
30349
Sagar Dahiwala
#30368
325
Nikolaj Malevanec
#30763
30747
Dmitri Tsymbal
#30359
30372
Oleh Usik
#30223
30683
Lukasz Bajsarowicz
#28147
28309
Matei Purcaru
#27972
27954
Vova Yatsyuk
#27674
29551
Bartosz Kubicki
#26966
30216
Simon Sprankel
#26401
29621
Gabriel da Gama
#30895
30896
Samuel Caçador
#30793
30833
Vova Yatsyuk
#30774
30781, 197
Diego Sanabria
#30681
30680
Evgen Mozok
#30632
24730
Sanjay Patel
#30411
30408
Shikha Mishra
#30400
30361, 30362
Shikha Mishra
#30391
30255
Bartłomiej Szubert
#30114
30073
Michael Bottens
#30010
30009
Tu Nguyen
#29986
29987
Saphal Jha
#29923
29920
Andrii Kasian
#27379
29600
Yaroslav Rogoza
#30630
30624
Oleh Usik
#29675
29168
Andrii Kalinich
#30749
23069
Viktor Kopin
#30727
30645
Thomas Klein
#30825
30859
Oleh Usik
#30777
30783
Oleh Usik
#30528
30916
Oleh Usik
#30525
30917
Ihor Svizievv
#30090
30184
Andrii Kalinich
#30866
24717
Viktor Kopin
#30928
30685
Nitish Singh
#30421
Oleh Usik
#30779
30782
Nazar Klovanych
#30662
30649
Oleh Usik
#30529
30926
March Denchev
#30614
30104
Lachlan
#29692
30243
Viktor Kopin
#30947
29128
Andrii Kalinich
#30807
26432
Viktor Kopin
#30961
13746
Nikolaj Malevanec
#30963
30295
Andrii Beziazychnyi
#30694
30625
Alexander Turiak
#30636
30467

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.2 en utilisant 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.

recommendation-more-help
1d4eef6c-fef1-4e61-85eb-b58d7b9ac29f