Noms de groupes de clients, segments et informations sur les règles promotionnelles exposés via GraphQL
Cet article fournit un correctif pour empêcher que les noms de groupes de clients, les segments de clients et les informations sur les règles promotionnelles soient divulgués via GraphQL. Le problème devrait être résolu dans Adobe Commerce 2.4.8-p1.
Description description
Produits et versions concernés
Le correctif est créé pour la version Adobe Commerce :
- Adobe Commerce (toutes les méthodes de déploiement) 2.4.8
Compatible avec les versions d’Adobe Commerce :
- Adobe Commerce (toutes les méthodes de déploiement) 2.4.8
Problème
Pour les listes déroulantes Storefront Personalization, de nouvelles mutations de GraphQL ont été introduites pour afficher des informations de base telles que les noms de groupes de clients, les segments, le panier et les règles de catalogue. Cependant, cela peut exposer des données sensibles telles que des détails d’offre ou des codes de coupon, s’ils sont inclus dans les noms.
Procédure à suivre
Cas I : règle de catalogue
-
Dans la barre latérale Admin, accédez à Marketing
>Règle de prix de catalogue>Ajouter une nouvelle règle. -
Définissez les conditions de la règle (par exemple, l’attribut de produit ou la catégorie).
-
Enregistrez et appliquez la règle.
-
Assurez-vous qu’un produit répond aux conditions de la règle.
-
Exécutez la requête GraphQL suivante pour récupérer toutes les règles :
code language-none query { allCatalogRules { name } } -
Interroger un produit pour vérifier si la règle s’applique :
code language-none query { products(filter: { sku: { eq: "product-sku" } }) { items { name rules { name } } } }
Cas II : Règle du panier
-
Dans la barre latérale Admin, accédez à Marketing
>Règle de prix du panier>Ajouter une nouvelle règle. -
Définissez des conditions telles que la valeur minimale du panier et le groupe de clients.
-
Enregistrez et appliquez la règle.
-
Ajoutez des produits au panier pour déclencher la règle.
-
Utilisez GraphQL pour vérifier toutes les règles du panier :
code language-none query { allCartRules { name } } -
Vérifiez si les règles sont appliquées au panier actif :
code language-none query { cart(cart_id: "your-cart-id") { rules { name } } }
Cas III : groupe de clients
-
Dans la barre latérale Admin, accédez à Clients.
>groupes de clients. -
Vérifiez que les groupes attendus existent.
-
Utilisez GraphQL pour récupérer tous les groupes :
code language-none query { allCustomerGroups { name } } -
Vérifier le groupe du client/invité :
code language-none query { customerGroup { name } }
Cas IV : segment client (pour Adobe Commerce uniquement)
-
Dans la barre latérale Admin, accédez à Clients.
>Segments clients>Ajouter un segment. -
Définissez des conditions basées sur le client (par exemple, le contenu de la commande ou du panier).
-
Attribuez la portée applicable : Visiteur, Enregistré ou les deux.
-
Assurez-vous que les conditions correspondent à un client ou une cliente de test.
-
Utilisez GraphQL pour vérifier tous les segments :
code language-none query { allCustomerSegments { name apply_to } } -
Validez les segments appliqués à un panier :
code language-none query { customerSegments(cartId: "your-cart-id") { name } }
Résultat attendu :
Les noms des groupes de clients, les segments et les informations des règles promotionnelles ne sont pas exposés via GraphQL.
Résultat réel :
Les noms des groupes de clients, les segments et les informations des règles promotionnelles sont exposés via GraphQL.
Résolution resolution
Appliquez les correctifs ci-joints en fonction de votre version d’Adobe Commerce :
-
Pour Adobe Commerce version 2.4.8 :
-
Pour Magento Open Source version 2.4.8 :