# Sélection du modèle

Chaque billet Secutix qui atteint 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.

Il devient utile dès qu’un 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 codes-barres, ou différents textes légaux.

<details>

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

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

* **Différents types de produit :** carte de visite vs billet d’événement vs abonnement.
* **Diffières salles / halls :** mettre en évidence le bon nom de salle et les informations d’entrée.
* **Placement numéroté vs libre :** afficher section/rangée/siège vs « placement libre ».&#x20;
* **Différentes expériences d’accès :** entrée VIP, accès anticipé, portails réservés au personnel.

</details>

## Options de mappage

Le connecteur résout 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 en premier)

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

Une fois le routage clair, implémentez vos flux utilisateur finaux dans [Distribution](https://docs.thewalletcrew.io/fr/connecter/ticketing/secutix/distribution).

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

Utilisez ceci lorsque le routage dépend d’un ou plusieurs champs Secutix. Il s’agit d’une configuration avancée. Traitez-la comme un dernier recours et gardez-la rare car elle ajoute une 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 réels</strong></summary>

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

* **Site / salle** - exemple : Salle A vs Salle B.
* **Entrée / portail** - différentes instructions d’entrée.
* **Catégorie de siège / zone** - VIP, hospitalité, balcon.
* **Date/heure de représentation** - matinée vs soirée, dates spéciales.
* **Logique combinée** - VIP + une date spécifique + une salle spécifique.

</details>

Si ce hook renvoie un nom de modèle, il remplace `WALLET`, le mappage de sous-type, et le 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 de terminaison d’extensibilité</summary>

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

* Retournez une chaîne pour forcer un nom de modèle.
* Retourner `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 du mouvement au sein de la commande.
 * @param {Object|null|undefined} operationData - Données d’opération optionnelles associées au mouvement.
 * @param {Object|null|undefined} product - Détails du produit optionnels lorsqu’un identifiant de produit est disponible.
 * @returns {Promise<string|null>} La valeur du type de Carte, ou null pour laisser l’application de résolution par défaut s’appliquer.
 */
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 comfort

Ajoutez une variable comfort Secutix sur l’événement ciblé nommée `WALLET` (en majuscules). Réglez sa valeur sur le **nom exact du modèle Wallet Crew**. Cette valeur est **sensible à la casse**, donc `VIP_Template` n’est pas la même chose que `vip_template`. Évitez les espaces en début ou fin de chaîne.

Ceci est évalué uniquement si le hook de recherche du type de Carte renvoie `null`.

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

### Mappage du sous-type de la famille de produits

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

Le connecteur lit le **sous-type de la famille de produit**, puis le traduit en un nom de modèle Wallet Crew. Vous configurez le mappage sous-type → modèle une fois dans les paramètres du connecteur Secutix. Cela permet de garder le 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="https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2Ft4U0Q5VPSofCU6tVJj23%2Fimage.png?alt=media&#x26;token=d7c2dcae-2346-4389-b087-d71e44a9f441" alt="Template selection based on product family subtype." width="563"><figcaption><p>Sélection du modèle basée sur le sous-type de la famille de produits.</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 ceci comme filet de sécurité. Gardez-le compatible avec « la plupart des billets ».&#x20;

## Informations supplémentaires

Pour un rappel rapide sur la façon dont les modèles Wallet Crew sont structurés, commencez par [Modèle](https://docs.thewalletcrew.io/fr/conception/general#template). Lorsque vous êtes prêt à créer ou ajuster le modèle de billet d’événement (et à mapper les champs Secutix dedans), utilisez [Modèle de carte wallet & mappage des champs](https://docs.thewalletcrew.io/fr/connecter/ticketing/secutix/wallet-pass-template-and-field-mapping).
