# Sélection du modèle

Chaque billet Secutix qui parvient à The Wallet Crew doit être rendu avec un modèle Wallet Crew. **Sélection du modèle** est la logique de routage qui choisit ce modèle pour chaque billet.

Elle devient utile dès qu’un seul modèle de billet d’événement ne peut pas couvrir toutes les variantes. Pensez VIP vs standard, abonnement vs entrée unique, différents formats de code-barres ou différents textes juridiques.

<details>

<summary><strong>Exemples de routage dans le monde réel</strong></summary>

Raisons courantes de router les billets vers différents modèles :

* **Types de produits différents :** carte de visite vs billet d’événement vs abonnement.
* **Salles / halls différents :** mettre en avant le bon nom de salle et les informations d’entrée.
* **Placement numéroté ou libre :** afficher section/rang/siège vs « placement libre ».
* **Expériences d'accès différentes :** entrée VIP, accès anticipé, accès réservés au personnel.

</details>

## Options de mappage

Le connecteur détermine un nom de modèle pour chaque billet. Il évalue les règles ci-dessous dans l’ordre. **La première correspondance l’emporte.**

#### Ordre de résolution (priorité la plus élevée d’abord)

1. Hook de recherche du type de carte.
2. variable de confort Secutix `WALLET`.
3. Mappage du sous-type de famille de produit.
4. Modèle par défaut configuré pour le connecteur.

Une fois le routage clarifié, implémentez vos parcours utilisateur dans [Distribution](/connectors/fr/ticketing/secutix/distribution.md).

### Hook de recherche du type de carte (avancé)

Utilisez cela lorsque le routage dépend d’un ou de plusieurs champs Secutix. Il s’agit d’une configuration avancée. Traitez-la comme une solution de dernier recours et gardez-la rare, car elle ajoute de la logique personnalisée à maintenir. Le moteur de modèles prend déjà en charge les conditions et les variables, ce qui suffit dans la plupart des cas.

<details>

<summary><strong>Cas d'utilisation concrets</strong></summary>

Utilisez un hook lorsque le routage dépend de plus d’un champ :

* **Site / salle** - exemple : Hall A vs Hall B.
* **Entrée / porte** - instructions d’entrée différentes.
* **Catégorie de siège / zone** - VIP, hospitalité, balcon.
* **Date/heure de la représentation** - séance de l’après-midi vs soirée, dates spéciales.
* **Logique combinée** - VIP + une date spécifique + un lieu spécifique.

</details>

Si ce hook renvoie un nom de modèle, il remplace `WALLET`, le mappage des sous-types et la valeur par défaut du connecteur.

Ajoutez un script personnalisé dans le **Avancé** onglet de la page de configuration Secutix.

<p align="center"><a href="https://admin.thewalletcrew.io/tenant/~/integrations/secutix/settings" class="button secondary" data-icon="chevrons-right">Écran de configuration Secutix</a></p>

<details>

<summary><code>passTypeFinder</code> point d’extension</summary>

Enregistrez `extensions.secutix.ticket.passTypeFinder` et implémentez `GetPassType`.

* Renvoie une chaîne pour imposer un nom de modèle.
* Retournez `null` pour revenir à la sélection par défaut.

```javascript
/**
 * Résout le type de carte pour un mouvement Secutix.
 *
 * @async
 * @param {Object} movementData - Données de mouvement dans la commande.
 * @param {Object|null|undefined} operationData - Données d’opération optionnelles associées au mouvement.
 * @param {Object|null|undefined} product - Détails produit optionnels lorsqu’un identifiant produit est disponible.
 * @returns {Promise<string|null>} La valeur du type de carte, ou null pour laisser s’appliquer la résolution par défaut.
 */
async function getPassType(movementData, operationData, product){
  if(operationData.Site == "Hall A") {
    return "HALLA";
  } else if(operationData.Site == "Hall B") {
    return "HALLB";
  }
  return null;
}

export default function(context) {
  context.register('extensions.secutix.ticket.passTypeFinder', {
    GetPassType : getPassType
  });
}
```

</details>

### `WALLET` variable de confort

Ajoutez une variable de confort Secutix sur l’événement ciblé nommée `WALLET` (en majuscules). Définissez sa valeur sur le **nom exact du modèle Wallet Crew**. Cette valeur est **sensible à la casse**, donc `VIP_Template` n’est pas identique à `vip_template`. Évitez les espaces en début ou en fin.

Ceci n’est évalué que si le hook de recherche du type de carte renvoie `null`.

{% hint style="info" %}
Utilisez cela lorsque vous avez besoin d’un modèle spécial pour un événement. Conservez des noms de modèle stables. Renommer un modèle peut casser le routage.
{% endhint %}

### Mappage du sous-type de famille de produit

C’est le mode de routage par défaut lorsqu’aucun hook ou `WALLET` substitution n’est utilisé.

Le connecteur lit le **sous-type de famille de produit**, puis le traduit en nom du modèle Wallet Crew. Vous configurez le mappage sous-type → modèle une seule fois dans les paramètres du connecteur Secutix. Cela maintient un routage stable entre les événements et les commandes.

Vous pouvez le configurer sur la page d’écran de configuration Secutix :

<p align="center"><a href="https://admin.thewalletcrew.io/tenant/~/integrations/secutix/settings" class="button secondary" data-icon="chevrons-right">Écran de configuration Secutix</a></p>

<div data-with-frame="true"><figure><img src="/files/90bef9fecc1aa29fb2584f5c89d23e8a3932414a" alt="Template selection based on product family subtype." width="563"><figcaption><p>Sélection du modèle basée sur le sous-type de famille de produit.</p></figcaption></figure></div>

### Modèle par défaut du connecteur

Si le hook renvoie `null`, `WALLET` n’est pas défini et qu’aucun mappage de sous-type ne correspond, le connecteur utilise son **modèle par défaut**.

Utilisez cela comme filet de sécurité. Gardez-le compatible avec « la plupart des billets ».

## Informations supplémentaires

Pour un rappel rapide sur la structure des modèles Wallet Crew, commencez par [Modèle](https://github.com/TheWalletCrew/docs/blob/main/design/general.md#template). Lorsque vous serez prêt à créer ou ajuster le modèle de billet d’événement (et à y mapper les champs Secutix), utilisez [Modèle de carte Wallet et mappage des champs](/connectors/fr/ticketing/secutix/wallet-pass-template-and-field-mapping.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.thewalletcrew.io/connectors/fr/ticketing/secutix/template-selection.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
