# Afficher ou masquer du contenu avec des conditions

> Utilise les conditions Liquid if/else dans l'objet et le corps de l'email pour afficher, cacher ou modifier le contenu selon les données du destinataire.

SecureMailMerge personnalise tes emails avec la mise en forme [Liquid](https://liquidjs.com/). En plus des jetons simples comme `{{FirstName}}`, tu peux utiliser des **conditions** pour afficher, masquer ou modifier des blocs de contenu en fonction des données de chaque destinataire.

Les conditions fonctionnent à la fois dans la **subject line** (ligne d'objet) et le **email body** (corps de l'email).
## Basic if / endif

Entoure le contenu que tu veux rendre optionnel entre une balise d'ouverture `{% if %}` et une balise de fermeture `{% endif %}`. La condition est vérifiée par rapport à la valeur dans la colonne nommée pour chaque destinataire.

```liquid
{% if Country == "Germany" %}
  Versand erfolgt aus unserem Lager in Berlin.
{% endif %}
```

Le bloc est inclus uniquement pour les destinataires dont la colonne `Country` est égale à `Germany`. Tous les autres ne voient rien à sa place.

Les valeurs de type chaîne doivent être entourées de guillemets (`"Germany"` ou `'Germany'`). Les nombres s'écrivent sans guillemets.
## La casse, les espaces et les guillemets typographiques n'ont pas d'importance

Les conditions sont tolérantes, donc de petites différences entre ton modèle et ta feuille de calcul ne vont pas empêcher une condition de correspondre :

- **Les noms de colonnes ne tiennent pas compte de la casse.** `{% if new == "TRUE" %}` correspond à une colonne intitulée `New`, `NEW` ou `new`. Tu n'as pas besoin de respecter la casse exacte de ton en-tête.
- **Les comparaisons de texte ignorent la casse et les espaces autour.** Une condition comme `{% if New == "TRUE" %}` correspond à une cellule contenant `TRUE`, `true` ou même `  True `. Les valeurs sont comparées sans tenir compte de la casse ni des espaces au début ou à la fin.
- **Les guillemets droits et typographiques sont traités de la même façon.** Si ton éditeur convertit automatiquement tes guillemets droits (`"TRUE"`) en guillemets typographiques « intelligents » (`“TRUE”`), la condition fonctionne quand même.

```liquid
{% if new == "TRUE" %}
  Welcome aboard! Here's what to do first.
{% endif %}
```

L'exemple ci-dessus correspond que ta colonne s'appelle `New` ou `new`, et que la cellule contienne `TRUE`, `true` ou ` True `.
## Ajouter une branche else

Utilise `{% else %}` pour fournir un contenu alternatif lorsque la condition est fausse.

```liquid
{% if Plan == "Premium" %}
  Thanks for being a Premium customer, your priority support line is +1 555 0100.
{% else %}
  Need a hand? Reply to this email and we'll help out.
{% endif %}
```
## Plusieurs branches avec elsif

Enchaîne plusieurs conditions avec `{% elsif %}`. La première branche correspondante gagne.

```liquid
{% if Tier == "Gold" %}
  You've unlocked our Gold benefits.
{% elsif Tier == "Silver" %}
  You're on the Silver plan.
{% else %}
  Welcome aboard!
{% endif %}
```
## Opérateurs de comparaison

Tu peux comparer les valeurs des colonnes avec n'importe lequel de ces opérateurs :

| Operator | Signification |
| --- | --- |
| `==` | égal à |
| `!=` | différent de |
| `>` | supérieur à |
| `<` | inférieur à |
| `>=` | supérieur ou égal à |
| `<=` | inférieur ou égal à |

```liquid
{% if OrderTotal >= 100 %}
  You qualify for free shipping!
{% endif %}
```
## Combiner des conditions avec and / or

Utilise `and` et `or` pour tester plusieurs colonnes en même temps.

```liquid
{% if Country == "USA" and Plan == "Premium" %}
  Your US Premium perks are active.
{% endif %}
```
## Vérifier si une cellule contient une valeur

Dans Liquid, une cellule vide est toujours "truthy", donc `{% if Notes %}` n'est **pas** une méthode fiable pour vérifier la présence d'une valeur. Utilise plutôt `blank`, qui correspond aux cellules vides et aux cellules ne contenant que des espaces :

```liquid
{% if Notes != blank %}
  A note from your account manager: {{Notes}}
{% endif %}
```

Pour faire l'inverse, afficher le contenu uniquement lorsque la cellule est vide, inverse la comparaison :

```liquid
{% if PhoneNumber == blank %}
  We don't have a phone number on file. Reply to add one.
{% endif %}
```
## Noms de colonnes avec espaces

Si l’en-tête de ta colonne contient des espaces (ou d’autres caractères spéciaux), référence-le avec la notation entre crochets, de la même manière que tu le ferais dans un token normal :

```liquid
{% if ["Account Status"] == "Active" %}
  Your account is in good standing.
{% endif %}
```

Pour les tokens de fusion simples (en dehors d’une condition), tu peux maintenant aussi écrire directement un en-tête qui contient des espaces, sans les crochets : `{{ First Name }}` fonctionne de la même façon que `{{ ["First Name"] }}`.
## Correspondance d'une partie d'une valeur avec contains

`contains` vérifie si une valeur texte inclut une sous-chaîne.

```liquid
{% if Email contains "@gmail.com" %}
  Tip: add us to your Gmail contacts so we don't land in Promotions.
{% endif %}
```
## Inverser une condition avec unless

`{% unless %}` est l'opposé de `{% if %}`, le bloc s'affiche uniquement lorsque la condition est **fausse**.

```liquid
{% unless Country == "USA" %}
  International shipping rates apply.
{% endunless %}
```
## Choisir une valeur parmi plusieurs avec case / when

Quand tu as besoin de basculer entre plusieurs valeurs fixes, `{% case %}` est plus propre qu'une longue chaîne `elsif`.

```liquid
{% case Language %}
  {% when "de" %}
    Vielen Dank für Ihre Bestellung!
  {% when "fr" %}
    Merci pour votre commande !
  {% else %}
    Thank you for your order!
{% endcase %}
```
## Conseils

- Les conditions peuvent englober **n’importe quel** contenu, texte, liens, images, ou même d’autres tokens.
- Les espaces et les sauts de ligne à l’intérieur des blocs `{% if %}` sont conservés, donc place tes balises avec soin pour éviter des lignes vides dans l’email final.
- Tu peux combiner les conditions avec le filtre [default value](https://fr.securemailmerge.com/help/specify-fallback-default-values-for-mail-merge/) pour un texte de secours, et avec la [date formatting](https://fr.securemailmerge.com/help/date-formatting-in-mail-merge/) pour les dates.
- Ferme toujours chaque balise : `{% if %}` nécessite `{% endif %}`, `{% unless %}` nécessite `{% endunless %}`, et `{% case %}` nécessite `{% endcase %}`. Une balise fermante manquante provoque une [liquid syntax error](https://fr.securemailmerge.com/help/error-liquid-syntax/).
