# Modèle de carte Wallet et correspondance des champs

Votre modèle de Wallet définit ce que les utilisateurs voient à l'entrée. Le mappage des champs définit quelles données Secutix se retrouvent dans chaque champ du Wallet. Commencez simplement. Faites en sorte que le code-barres, le nom de l'événement, la date, le lieu et le siège soient corrects. N'ajoutez des champs supplémentaires que lorsque vous savez pourquoi ils sont importants.

## Créer le modèle de billet d'événement

Un modèle est le « modèle » de votre billet dans Apple Wallet et Google Wallet. C'est ce qui donne à la Carte l'apparence de votre marque et ce qui décide quelles informations sont affichées au participant.

Vous le créez une fois, puis vous le réutilisez pour chaque billet émis. La plupart des équipes commencent avec un seul modèle Event Ticket. Même avec de petites variations, vous pouvez souvent conserver un seul modèle, car le moteur de modèles prend en charge des variables et des conditions dans chaque champ personnalisable, y compris les couleurs et les images.

Vous ne créez davantage de modèles que lorsque vous avez besoin d'un aspect complètement différent ou d'un contenu différent pour certains billets. Si vous voulez une explication plus détaillée, voir [Modèle](https://github.com/TheWalletCrew/docs/blob/main/design/general.md#template).

<details>

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

Utilisez plusieurs modèles lorsque vous avez besoin d'une mise en page ou d'un ensemble de champs clairement différent.

* **Types de produits différents :** un modèle pour une **Carte visiteur**, une autre pour un **billet d'événement**, et une autre pour une **abonnement saisonnier**.
* **Salles / halls différents :** un modèle par salle dans un lieu à plusieurs salles, afin que la Carte mette en avant le bon nom de salle et les informations d'entrée.
* **Changements de configuration du lieu :** différents modèles lorsque le même lieu a des configurations différentes (assis, debout, en rond).
* **Placement numéroté ou libre :** un modèle qui affiche **section/rang/siège**, et un autre qui se concentre sur **placement libre**.
* **Expériences d'accès différentes :** différents modèles lorsque certains spectacles nécessitent des instructions supplémentaires (entrée VIP, accès anticipé, parcours d'entrée spécifique).

</details>

{% stepper %}
{% step %}

#### Créer un nouveau modèle

<p align="center"><a href="https://admin.thewalletcrew.io/tenant/~/passTypes" class="button secondary" data-icon="chevrons-right">Créer un nouveau modèle</a></p>
{% endstep %}

{% step %}

#### Choisissez « Utiliser un modèle prédéfini »

<div data-with-frame="true"><figure><img src="/files/079f273ed7c69f282ffb717cbf83461ddae44c00" alt="Template creation options with “Use a pre-built” selected" width="375"><figcaption><p>Sélectionnez <strong>Utiliser un modèle prédéfini</strong> pour commencer à partir de la bibliothèque.</p></figcaption></figure></div>
{% endstep %}

{% step %}

#### Choisissez le modèle « billet d'événement »

<div data-with-frame="true"><figure><img src="/files/c039317525a657fdae3d6f70065fda6aad7066eb" alt="Wallet template selection when creating a new template" width="375"><figcaption><p>Choisissez le <strong>billet d'événement</strong> modèle lorsque vous créez votre Carte.</p></figcaption></figure></div>
{% endstep %}

{% step %}

#### Définissez le nom du modèle

Le nommage des modèles est important. Secutix peut cibler les modèles par nom lors de la distribution. Si vous prévoyez plusieurs modèles, configurez les règles de routage dans [Sélection du modèle (routage)](/connectors/fr/ticketing/secutix/template-selection.md).
{% endstep %}
{% endstepper %}

## Mappage des champs

Le connecteur mappe par défaut les champs de billet les plus courants. Dans votre modèle, ouvrez l'éditeur de configuration avancée pour parcourir les données Secutix disponibles avec l'autocomplétion. Utilisez la liste des champs ci-dessous pour planifier votre mappage et déboguer les valeurs.

<div data-with-frame="true"><figure><img src="/files/4eec7cdfeb8561212ef529a7f3dada0606074ce4" alt="Field mapping UI: autocomplete information from Secutix" width="375"><figcaption><p>Interface de mappage des champs avec l'autocomplétion Secutix.</p></figcaption></figure></div>

Utilisez cette page lorsque vous devez :

* Confirmer quels champs Secutix sont disponibles.
* Ajouter des champs calculés supplémentaires à la charge utile de votre Carte.
* Déboguer quels champs de billet vous pouvez réutiliser dans votre modèle.

Pour en savoir plus sur la configuration des modèles de billet, voir [billet d'événement](https://github.com/TheWalletCrew/docs/blob/main/design/event-ticket.md).

### Champs disponibles

<details>

<summary><strong>Champs disponibles (liste complète)</strong></summary>

Voici le catalogue brut des champs exposés par le connecteur. Considérez-le comme une boîte à outils. Vous en avez rarement besoin dans son intégralité.

| The Wallet Crew      | Secutix                                                                                       | Exemple                                       |
| -------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------- |
| firstName            | movementData.beneficiaryFirstname                                                             | Cyril                                         |
| lastName             | movementData.beneficiaryLastname                                                              | DURAND                                        |
| barCode              | movementData.barCode                                                                          | 085035041335220306680099                      |
| ticket.zone3         | movementData.area                                                                             | Zone unique                                   |
| ticket.seatCategory  | movementData.seatCategory                                                                     | Catégorie unique                              |
| address.country      | operationData.siteAddress.countryCode                                                         | FR                                            |
| address.address      | operationData.siteAddress.firstAddressLine                                                    | 116, Avenue du Président Kennedy              |
| address.city         | operationData.siteAddress.locality                                                            | PARIS                                         |
|                      | operationData.siteAddress.phoneNumber                                                         | 33-0156401516                                 |
|                      | operationData.siteAddress.webSite                                                             | <http://www.maisondelaradioetdelamusique.fr/> |
| address.zipCode      | operationData.siteAddress.zipCode                                                             | 75016                                         |
| ticket.zone1         | operationData.site                                                                            | Maison de la Radio et de la Musique           |
| ticket.zone2         | operationData.space                                                                           | Studio 104                                    |
| ticket.price         | operationData.totalAmount                                                                     | 0                                             |
| ticket.name          | operationData.performance                                                                     | Spectacle Wallet                              |
| ticket.subName       | operationData.performanceAddOnName                                                            | Un spectacle exceptionnel                     |
| ticket.startDate     | operationData.performanceDate                                                                 | 2024-07-01T20:00:00.000+02:00                 |
|                      | operationData.product                                                                         | Spectacle Wallet                              |
|                      | operationData.productFamilyType                                                               | SINGLE\_ENTRY                                 |
|                      | operationData.productFamilySubType                                                            | SIMPLE\_TICKET                                |
| ticket.taxNumber     | movementData.TaxNumber                                                                        | 12010124729                                   |
| expirationDate       | expirationDate                                                                                | 2024-02-23T00:03:46.627+01:00                 |
| ticket.orderId       | orderId                                                                                       | 2389856                                       |
| ticket.contactId     | contactReference                                                                              | 897501                                        |
| ticket.fileId        | operationData.fileId                                                                          | 2234582                                       |
| ticket.zone5         | movementData.row                                                                              |                                               |
| ticket.seatNumber    | movementData.seatNumber                                                                       |                                               |
| ticket.zone4         | movementData.block                                                                            |                                               |
| ticket.priceCategory | operation.AudienceSubCategory                                                                 |                                               |
| ticket.priceCurrency | operation.CatalogCurrency.CurrencyCode                                                        |                                               |
| ticket.eventId       | operationData.eventId                                                                         |                                               |
| ticket.entrance      | operationData.entrance                                                                        |                                               |
| ticket.entranceCode  | operationData.entranceCode                                                                    |                                               |
| ticket.floor         | operationData.floor                                                                           |                                               |
| ticket.seatQuality   | operationData.seatQuality                                                                     |                                               |
| ticket.sector        | operationData.sector                                                                          |                                               |
| ticket.canceled      | movementTicketData.TicketState est INVALIDATED ou CANCELLED                                   |                                               |
| address.longitude    | operationData.siteAddress.gpsLongitude ou calculé à partir de l'adresse via l'API Google Maps |                                               |
| address.latitude     | operationData.siteAddress.gpsLatitude ou calculé à partir de l'adresse via l'API Google Maps  |                                               |

</details>

## Personnalisation du mappage (avancée)

N'utilisez le scripting que lorsque le catalogue de champs par défaut ne suffit pas. Ajoutez un script personnalisé dans l' **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>

C'est utile lorsque vous devez :

* Mapper une valeur Secutix qui n'est pas encore exposée.
* Construire un champ calculé (format, concaténation, valeur conditionnelle).
* Normaliser les valeurs pour que les modèles restent propres (exemple : toujours produire un seul champ « entranceLabel »).

Enregistrez `extensions.secutix.movement.mapper` et implémentez `MapFromSecutix`.

```javascript
/**
 * Étendez le mappage par défaut de Secutix vers Wallet Crew.
 *
 * Ajoutez tous les champs supplémentaires sur `entity`. Ils deviennent disponibles pour le rendu du modèle.
 *
 * @param {Object} params
 * @param {Object} params.Movement - Informations sur le mouvement provenant du Web Service Secutix.
 * @param {Object} params.Operation- Informations d'opération liées au mouvement courant provenant du Web Service Secutix.
 * @param {Object|null|undefined} params.Product - Informations produit nullables liées au mouvement courant provenant de Secutix.
 * @param {Object} entity - Entité Wallet cible à enrichir.
 */
function mapFromSecutix(data, entity) {
  // Exemple : exposer un champ Secutix comme champ supplémentaire du Wallet
  const stageVisibility = data?.Movement?.StageVisibility;
  if (stageVisibility != null) {
    entity["ticket.stageVisibility"] = stageVisibility;
  }
}

export default function(context) {
  context.register('extensions.secutix.movement.mapper', {
    MapFromSecutix: mapFromSecutix
  });
}
```

Si vous prévoyez d'exécuter plusieurs modèles de billet, configurez les règles de routage dans [Sélection du modèle (routage)](/connectors/fr/ticketing/secutix/template-selection.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/wallet-pass-template-and-field-mapping.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.
