# Comment utiliser des conditions pour afficher ou masquer du contenu ?

> Utilise les conditions Liquid if/else dans ton sujet et corps d’email pour afficher, cacher ou modifier le contenu selon les données du destinataire.

SecureMailMerge personnalise tes emails avec la templating [Liquid](https://liquidjs.com/). En plus des tokens simples comme `{{FirstName}}`, tu peux utiliser des **conditions** pour afficher, cacher 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 dans 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 n'empêcheront pas 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 en début ou en 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 « smart » (`“TRUE”`), la condition fonctionne toujours.

```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 indique `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 | Meaning |
| --- | --- |
| `==` | é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 quand une 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 ton en-tête de 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 jeton normal :

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

Pour les jetons de fusion simples (en dehors d'une condition), tu peux maintenant aussi écrire un en-tête qui contient des espaces directement, sans les crochets : `{{ First Name }}` fonctionne de la même façon que `{{ ["First Name"] }}`.
## Faire correspondre 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 les 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/).
- N’applique pas de gras, de police ou de couleur à une partie d’une balise de condition. Formater le texte à l’intérieur du bloc est correct, mais formater une partie de la balise `{% ... %}` elle-même peut la casser. Voir [how to style personalization tokens](https://fr.securemailmerge.com/help/formatting-personalization-tokens/).
