Passer au contenu

Filtrer les éléments de catalogue par plage de dates

Cet exemple montre comment une place de marché de billets fictive utilise les sélections de catalogue et les expressions de date Liquid pour n’envoyer par e-mail aux consommateurs que les événements à venir dans les sept prochains jours à partir du moment de l’envoi. Vous créez une sélection avec des filtres temporels glissants, puis vous affichez les éléments de catalogue correspondants dans une Campaign ou un message Canvas.

À propos de cet exemple

MovieCanon, une place de marché fictive de billetterie, utilise ce modèle pour s’assurer que les Campaigns par e-mail ne répertorient que les concerts et spectacles pertinents dans le temps.

Ce modèle utilise deux fonctionnalités Braze ensemble :

  • Une sélection de catalogue avec des filtres de champ time dont les valeurs sont des extraits de code Liquid qui calculent une fenêtre temporelle glissante au moment de l’envoi
  • L’étiquette Liquid {% catalog_selection_items %} dans le corps du message pour afficher les lignes de catalogue correspondantes

Considérations

  • Créez un champ de catalogue time pour la colonne de date/heure sur laquelle vous filtrez, et non un champ de type chaîne de caractères. Stockez les valeurs au format ISO 8601, par exemple 2026-06-20T19:30:00Z. Pour les types pris en charge, consultez Types de données pris en charge.
  • Les opérateurs before et after utilisent des comparaisons strictes. Les événements exactement égaux à un horodatage limite peuvent être exclus. Utilisez des horodatages complets lorsque vous souhaitez que la fenêtre commence au moment de l’envoi. Les valeurs de date uniquement au format YYYY-MM-DD sont converties en minuit UTC pour le jour concerné.
  • Le Liquid dans les filtres de sélection est évalué au moment de l’envoi. La variable 'now' reflète le moment où le message est rendu, généralement en UTC. Vérifiez que la fenêtre résultante correspond à votre intention dans les différents fuseaux horaires.
  • Le contenu connecté, les Content Blocks, les tags de catalogue et abort_message ne sont pas pris en charge dans les valeurs de filtre de sélection de catalogue. Si un filtre contient une étiquette non autorisée, la sélection ne renvoie aucun élément sans déclencher d’erreur.
  • Vous pouvez ajouter jusqu’à 10 filtres par sélection et renvoyer jusqu’à 50 éléments. Ajustez la fenêtre de sept jours en modifiant les secondes ajoutées à 'now' (604800 = 7 jours multipliés par 86400 secondes par jour).
  • Les tableaux de résultats de sélection de catalogue sont indexés à partir de zéro (items[0] est le premier élément).
  • Testez le Liquid des filtres, le Liquid des messages et la logique d’abandon en dehors de votre espace de travail de production avant d’envoyer à des audiences de production.

Configuration

Cet exemple repose sur un catalogue nommé live_events avec les champs suivants :

Champ Type Valeur d’exemple
id String show-1042
event_name String Summer Jazz Night
event_date_time Time 2026-06-20T19:30:00Z
ticket_price Number 45
city String Austin
venue String Riverside Amphitheater

Si vous ne disposez pas encore d’un catalogue similaire, créez un catalogue et importez ou synchronisez vos données d’événements au préalable.

Étape 1 : Créer la sélection de catalogue

  1. Accédez à Data Settings > Catalogs et sélectionnez le catalogue live_events.
  2. Ouvrez l’onglet Selection et sélectionnez Create Selection.
  3. Nommez la sélection seven_day_window et ajoutez une description facultative, par exemple « Événements se déroulant dans les sept prochains jours ».
  4. Définissez une Results limit pour le nombre maximum d’événements à renvoyer (jusqu’à 50).
  5. N’enregistrez pas encore. Ajoutez les filtres de date dans les étapes suivantes.

Étape 2 : Ajouter le filtre de borne supérieure

Ajoutez un filtre sur le champ event_date_time :

Paramètre Valeur
Filter field event_date_time
Operator before
Value Extrait Liquid

Dans le champ de valeur du filtre, saisissez cet extrait Liquid. Il calcule un horodatage situé sept jours après l’heure d’envoi :

{% assign seven_days = 'now' | date: '%s' | plus: 604800 %}{{ seven_days | date: "%Y-%m-%dT%H:%M:%SZ" }}

Cela définit la borne supérieure de la fenêtre afin que seuls les événements antérieurs à cet horodatage soient inclus.

Étape 3 : Ajouter le filtre de borne inférieure

Ajoutez un second filtre sur le même champ :

Paramètre Valeur
Filter field event_date_time
Operator after
Value Extrait Liquid

Saisissez cet extrait Liquid pour la borne inférieure. Il utilise l’heure d’envoi actuelle afin d’exclure les événements déjà commencés :

{{ 'now' | date: "%Y-%m-%dT%H:%M:%SZ" }}

Ensemble, les deux filtres renvoient les éléments du catalogue dont la valeur event_date_time est postérieure à l’heure d’envoi actuelle et antérieure à sept jours après l’heure d’envoi. Sélectionnez Create Selection pour enregistrer.

Étape 4 : Référencer la sélection dans un message

Dans votre Campaign ou votre message Canvas, insérez du Liquid qui récupère les éléments de la sélection. Vous pouvez utiliser Add personalization (Catalog Items > Use a selection) ou coller la balise manuellement :

{% catalog_selection_items live_events seven_day_window %}
Here are some upcoming events:

{{ items[0].event_name }} — ${{ items[0].ticket_price }}
{{ items[0].city }} · {{ items[0].venue }}

{{ items[1].event_name }} — ${{ items[1].ticket_price }}
{{ items[1].city }} · {{ items[1].venue }}

Remplacez les index de tableau codés en dur par une boucle si vous devez afficher un nombre variable de résultats.

Étape 5 : Gérer les résultats vides

Lorsqu’aucun élément du catalogue ne correspond à la sélection, le tableau items est vide et le bloc balisé n’affiche rien. Pour annuler l’envoi ou afficher un contenu de secours, encapsulez la balise dans une condition :

{% catalog_selection_items live_events seven_day_window %}
{% if items.size == 0 %}
{% abort_message('Catalog selection returned 0 items') %}
{% endif %}

Here are some upcoming events:
{{ items[0].event_name }}

Pour en savoir plus, consultez Annuler des messages.

New Stuff!