Zum Inhalt springen

Katalogartikel mit einem angepassten Attribut-Array abgleichen

Wenn Nutzer:innen eine Liste gespeicherter Produktnamen in ihrem Profil führen, können Sie eine Katalogauswahl zusammen mit Liquid verwenden, um nur die Katalogzeilen anzuzeigen, die in dieser Liste vorkommen – zum Beispiel in einer Wunschlisten-E-Mail.

Über dieses Beispiel

Flash & Thread speichert die gespeicherten Produktnamen jeder Kund:in in einem angepassten Attribut vom Typ String-Array (saved_product_names). Der Katalog enthält vollständige Produktdetails (Kategorie, Preis, Bild-URL, Bestand).

Katalogselektionen können Katalogspalten gegen statische oder Liquid-Werte filtern, einschließlich Array-Felder in Katalogzeilen. Sie filtern eine Katalogzeile jedoch nicht gegen Werte, die in einem Profilarray gespeichert sind. Um Inhalte basierend auf der Liste der Nutzer:innen zu personalisieren, geben Sie mit einer Selektion eine breite Menge von Katalogartikeln zurück und verwenden dann Liquid, um nur die Zeilen beizubehalten, die mit dem Profilarray übereinstimmen.

Dieses Muster:

  1. Weist das Array-basierte angepasste Attribut der Nutzer:innen einer Liquid-Variable zu.
  2. Ruft catalog_selection_items für eine vorgefilterte Katalogselektion auf (bis zu 50 Artikel).
  3. Iteriert über items und verwendet contains, um jedes Katalogfeld (zum Beispiel name oder id) mit dem Array abzugleichen.

Überlegungen

  • Testen Sie Liquid und Katalogdaten in einem Staging-Workspace, bevor Sie Nachrichten an Kund:innen senden.
  • Da eine Auswahl maximal 50 Katalogreihen zurückgibt, fügen Sie Filter hinzu (zum Beispiel auf Lager, aktive Kategorie oder Preisspanne), die die wahrscheinlich gespeicherten Artikel jeder Nutzer:in innerhalb dieser Ergebnismenge halten.
  • Dieses Beispiel verwendet ein String-Array im Kundenprofil.
  • Für ein Array von Objekten gleichen Sie über eine Eigenschaft innerhalb jedes Objekts ab (zum Beispiel product_id) und passen die contains-Prüfung an oder verwenden eine for-Schleife über Objekte. Siehe Array von Objekten.
  • Das Verhalten von contains hängt vom Attributtyp ab; für Arrays verwenden Sie contains anstelle von ==. Siehe Bedingte Logik.
  • Gleichen Sie über stabile Bezeichner ab (zum Beispiel die Katalog-id), wenn sich Produktnamen ändern oder doppelt vorkommen können.
  • Die Liquid-Snippets in diesem Artikel sind Beispiele. Validieren Sie das Rendering in Ihren Kanälen (E-Mail-HTML, Push usw.).

Einrichtung

Dieses Beispiel setzt Folgendes voraus:

Asset Details
Angepasstes Attribut saved_product_names — String-Array (zum Beispiel ["linen_shirt", "trail_jacket", "canvas_tote"])
Katalog apparel_products mit den Spalten id, category, name, price, inventory, image_url
Selection in_stock_apparel auf apparel_products, Ergebnislimit 50, mit Filtern, die irrelevante Zeilen ausschließen (zum Beispiel inventory größer als 0)

Schritt 1: Katalog und Selection erstellen

  1. Importieren oder synchronisieren Sie Produktzeilen in einen Katalog namens apparel_products.
  2. Erstellen Sie eine Selection (zum Beispiel in_stock_apparel), die so viele relevante Zeilen wie nötig zurückgibt, bis zum Limit von 50 Artikeln.
  3. Fügen Sie Selection-Filter hinzu, um Zeilen auszuschließen, die nie in der Nachricht erscheinen sollen (nicht auf Lager, falsche Kategorie usw.).

Informationen zur Einrichtung von Selections finden Sie unter Selections.

Schritt 2: Liquid in Ihrer Nachricht hinzufügen

Weisen Sie das Profil-Array zu, laden Sie die Selection und verwenden Sie eine Schleife mit contains:

{% assign saved_product_names = custom_attribute.${saved_product_names} %}
{% catalog_selection_items apparel_products in_stock_apparel %}
{% for item in items %}
{% if saved_product_names contains item.name %}
Product: {{ item.name }}
Category: {{ item.category }}
Price: ${{ item.price }}
Image: {{ item.image_url }}
{% endif %}
{% endfor %}

Ersetzen Sie item.name durch item.id (oder eine andere Spalte), wenn Ihr Array IDs statt Anzeigenamen speichert. Fügen Sie Abstände oder HTML zwischen den Feldern hinzu, passend zu Ihrem Kanal. In ${{ item.price }} ist das $ ein literales Währungssymbol, das vor der Liquid-Ausgabe ausgegeben wird – es gehört nicht zur ${}-Personalisierungssyntax von Braze.

Um dieses Liquid automatisch zu generieren, öffnen Sie das Modal Personalisierung hinzufügen (Katalogartikel > Eine Selection verwenden). Siehe Kataloge verwenden.

Schritt 3: Vorschau anzeigen und testen

Senden Sie Testnachrichten an Profile mit verschiedenen saved_product_names-Werten. Vergewissern Sie sich, dass nur übereinstimmende Katalogzeilen angezeigt werden und dass ein leeres Array keine Produktzeilen erzeugt.

New Stuff!