Namen von Kundengruppen, Segmente und Informationen zu Werberegeln, die über GraphQL bereitgestellt werden
Dieser Artikel enthält einen Hotfix, um zu verhindern, dass Kundengruppennamen, Kundensegmente und Informationen zu Werberegeln über GraphQL offen gelegt werden. Das Problem wird voraussichtlich in Adobe Commerce 2.4.8-p1 behoben.
Beschreibung description
Betroffene Produkte und Versionen
Der Patch wird für die Adobe Commerce-Version erstellt:
- Adobe Commerce (alle Bereitstellungsmethoden) 2.4.8
Kompatibel mit Adobe Commerce-Versionen:
- Adobe Commerce (alle Bereitstellungsmethoden) 2.4.8
Problem
Für Storefront-Personalization-Drop-ins wurden neue GraphQL-Mutationen eingeführt, um grundlegende Informationen wie Kundengruppennamen, Segmente, Warenkorb und Katalogregeln anzuzeigen. Dies kann jedoch sensible Daten wie Angebotsdetails oder Coupon-Codes verfügbar machen, wenn sie in den Namen enthalten sind.
Schritte zum Nachstellen
Fall I: Katalogregel
-
Navigieren Sie in der Admin-Seitenleiste zu Marketing
>Katalogpreisregel>Neue Regel . -
Definieren Sie die Regelbedingungen (z. B. Produktattribut oder Kategorie).
-
Speichern und wenden Sie die Regel an.
-
Stellen Sie sicher, dass ein Produkt die Regelbedingungen erfüllt.
-
Führen Sie die folgende GraphQL-Abfrage aus, um alle Regeln abzurufen:
code language-none query { allCatalogRules { name } } -
Fragen Sie ein Produkt ab, um zu überprüfen, ob die Regel anwendbar ist:
code language-none query { products(filter: { sku: { eq: "product-sku" } }) { items { name rules { name } } } }
Fall II: Warenkorb-Regel
-
Navigieren Sie in der Admin-Seitenleiste zu Marketing
>Warenkorb-Preisregel>Neue Regel . -
Legen Sie Bedingungen wie den minimalen Warenkorbwert und die Kundengruppe fest.
-
Speichern und wenden Sie die Regel an.
-
Fügen Sie Produkte zum Warenkorb hinzu, um die Regel zum Trigger hinzuzufügen.
-
Verwenden Sie GraphQL, um alle Regeln des Warenkorbs zu überprüfen:
code language-none query { allCartRules { name } } -
Überprüfen Sie, ob Regeln auf den aktiven Warenkorb angewendet werden:
code language-none query { cart(cart_id: "your-cart-id") { rules { name } } }
Fall III: Kundengruppe
-
Navigieren Sie in der Admin-Seitenleiste zu Kunden
>Kundengruppen. -
Überprüfen Sie, ob die erwarteten Gruppen vorhanden sind.
-
Verwenden Sie GraphQL, um alle Gruppen abzurufen:
code language-none query { allCustomerGroups { name } } -
Überprüfen Sie die Gruppe des Kunden/Gastes:
code language-none query { customerGroup { name } }
Fall IV: Kundensegment (nur für Adobe Commerce)
-
Navigieren Sie in der Admin-Seitenleiste zu Kunden
>Kundensegmente>Segment . -
Definieren Sie kundenbasierte Bedingungen (z. B. Bestellung, Warenkorbinhalt).
-
Weisen Sie den entsprechenden Bereich Besucher, Registriert oder beides zu.
-
Stellen Sie sicher, dass die Bedingungen mit einem Testkunden übereinstimmen.
-
Verwenden Sie GraphQL, um alle Segmente zu überprüfen:
code language-none query { allCustomerSegments { name apply_to } } -
Validieren der auf einen Warenkorb angewendeten Segmente:
code language-none query { customerSegments(cartId: "your-cart-id") { name } }
Erwartetes Ergebnis:
Die Namen von Kundengruppen, Segmenten und Informationen zu Werberegeln werden nicht über GraphQL bereitgestellt.
Tatsächliches :
Die Namen von Kundengruppen, Segmenten und Informationen zu Werberegeln werden über GraphQL bereitgestellt.
Lösung resolution
Wenden Sie die angehängten Patches je nach Adobe Commerce-Version an:
-
Für Adobe Commerce Version 2.4.8:
-
Für Magento Open Source Version 2.4.8: