Klantgroepnamen, -segmenten en -informatie over promotieregel die via GraphQL beschikbaar worden gesteld
Dit artikel biedt een hotfix om te voorkomen dat namen van klantgroepen, klantsegmenten en informatie over promotieregel via GraphQL worden weergegeven. Het probleem zal volgens planning worden opgelost in Adobe Commerce 2.4.8-p1.
Beschrijving description
Betrokken producten en versies
het flard wordt gecreeerd voor de versie van Adobe Commerce:
- Adobe Commerce (alle implementatiemethoden) 2.4.8
Compatibel met de versies van Adobe Commerce:
- Adobe Commerce (alle implementatiemethoden) 2.4.8
Probleem
Voor Slagins van de Personalization van de Storefront, werden de nieuwe mutaties van GraphQL geïntroduceerd om basisinformatie zoals de namen van de klantengroep, segmenten, kar, en catalogusregels te tonen. Dit kan echter vertrouwelijke gegevens zoals aanbiedingsdetails of couponcodes blootstellen, als deze in de namen zijn opgenomen.
Stappen om te reproduceren
Geval I: De Regel van de Catalogus
-
Op Admin sidebar, ga Marketing
>de Regel van de Prijs van de Catalogus>voeg Nieuwe Regel toe. -
Definieer de regelvoorwaarden (bijvoorbeeld productkenmerk of categorie).
-
Sla de regel op en pas deze toe.
-
Zorg ervoor dat een product voldoet aan de algemene voorwaarden.
-
Voer de volgende GraphQL-query uit om alle regels op te halen:
code language-none query { allCatalogRules { name } } -
Vraag een product om te verifiëren of de regel van toepassing is:
code language-none query { products(filter: { sku: { eq: "product-sku" } }) { items { name rules { name } } } }
Geval II: Regel van de Kar
-
Op Admin sidebar, ga Marketing
>de Regel van de Prijs van de Kar>voeg Nieuwe Regel toe. -
Stel voorwaarden in, zoals minimumwaarde winkelwagentje en klantgroep.
-
Sla de regel op en pas deze toe.
-
Voeg producten toe aan winkelwagentje om de regel te activeren.
-
GraphQL gebruiken om alle regels voor winkelwagentjes te controleren:
code language-none query { allCartRules { name } } -
Controleer of er regels op het actieve winkelwagentje worden toegepast:
code language-none query { cart(cart_id: "your-cart-id") { rules { name } } }
Het geval III: Groep van de Klant
-
Op Admin sidebar, ga Klanten
>de Groepen van de Klant . -
Controleer of de verwachte groepen bestaan.
-
Gebruik GraphQL om alle groepen te halen:
code language-none query { allCustomerGroups { name } } -
Controleer de klant/gastgroep:
code language-none query { customerGroup { name } }
Geval IV: Segment van de Klant (voor Adobe Commerce slechts)
-
Op Admin sidebar, ga Klanten
>Segmenten van de Klant>voeg Segment toe. -
Bepaal op klant-gebaseerde voorwaarden (bijvoorbeeld, orde, kartinhoud).
-
Wijs toepasselijk werkingsgebied toe: Bezoeker, Geregistreerd, of allebei.
-
Zorg ervoor dat de voorwaarden overeenkomen met een testklant.
-
GraphQL gebruiken om alle segmenten te controleren:
code language-none query { allCustomerSegments { name apply_to } } -
Valideer de segmenten die op een winkelwagentje zijn toegepast:
code language-none query { customerSegments(cartId: "your-cart-id") { name } }
Verwacht resultaat :
De namen van klantengroepen, segmenten, en de informatie van de promotieregel worden niet blootgesteld door GraphQL.
Werkelijk resultaat :
De namen van klantengroepen, segmenten, en de informatie van de promotieregel worden blootgesteld door GraphQL.
Resolutie resolution
Pas de bijgevoegde patches toe, afhankelijk van uw Adobe Commerce-versie:
-
Voor Adobe Commerce versie 2.4.8:
-
Voor Magento Open Source versie 2.4.8: