> For the complete documentation index, see [llms.txt](https://docs.thewalletcrew.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.thewalletcrew.io/connectors/fr/ticketing/secutix/wallet-pass-template-and-field-mapping.md).

# Modèle de Carte Wallet et mappage des champs

Créez le modèle Event Ticket et mappez les données des billets Secutix dans Apple Wallet et Google Wallet.

Le modèle Wallet définit ce que les participants voient à l'entrée. Le mapping des champs définit quelles données Secutix se retrouvent dans chaque champ Wallet. Commencez simplement. Assurez-vous d'avoir le code-barres, le nom de l'événement, la date, le lieu et la place. Ajoutez des champs supplémentaires uniquement lorsque leur utilité est claire.

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

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

Il est créé une seule fois, puis réutilisé pour chaque billet émis. La plupart des équipes commencent avec un seul modèle de billet d'événement. Même avec de petites variations, un seul modèle suffit souvent, car le moteur de modèles prend en charge les variables et les conditions dans chaque champ personnalisable, y compris les couleurs et les images.

D'autres modèles ne sont nécessaires que lorsque certains billets exigent un aspect complètement différent ou un contenu différent. Pour une explication plus détaillée, voir [Types de Carte et modèles](/guides-design/fr/conception/pass-types-and-templates.md).

<details>

<summary><strong>Cas d'utilisation réels</strong></summary>

Utilisez plusieurs modèles lorsqu'une mise en page ou un ensemble de champs clairement différent est requis.

* **Différents types de produits :** un modèle pour une **Carte de visite**, un autre pour un **billet d'événement**, et un autre pour un **abonnement**.
* **Différentes salles / halls :** 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 configuration circulaire).
* **Placement numéroté ou libre :** un modèle qui affiche **section/rangée/place**, et un autre qui se concentre sur **le placement libre**.
* **Différentes expériences d'accès :** différents modèles lorsque certains spectacles nécessitent des instructions supplémentaires (entrée VIP, accès anticipé, flux 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éconstruit »

<div data-with-frame="true"><figure><img src="https://3852727835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlP7d71aYydav6e0pRkxc%2Fuploads%2Fgit-blob-1b8a933ab5869699fb85fb70ec202c189b710729%2Fconnect-wallet-pass-field-mapping-creation-options-use-pre-built-selected.png?alt=media" alt="Template creation options with “Use a pre-built” selected" width="375"><figcaption><p>Sélectionner <strong>Utiliser un modèle préconstruit</strong> pour 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="https://3852727835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlP7d71aYydav6e0pRkxc%2Fuploads%2Fgit-blob-ab88f11ebd20d6f266a6f1daa9e80fc604aeb244%2Fconnect-wallet-pass-field-mapping-wallet-selection-when-creating-new.png?alt=media" alt="Wallet template selection when creating a new template" width="375"><figcaption><p>Choisissez le <strong>billet d'événement</strong> modèle lors de la création de la Carte.</p></figcaption></figure></div>
{% endstep %}

{% step %}

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

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

## Correspondance des champs

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

<div data-with-frame="true"><figure><img src="https://3852727835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlP7d71aYydav6e0pRkxc%2Fuploads%2Fgit-blob-f5e833671b23b60b90a563c135ad31415430d1c1%2Fconnect-wallet-pass-field-mapping-field-mapping-ui-autocomplete-information-from-secutix.png?alt=media" alt="Field mapping UI: autocomplete information from Secutix" width="375"><figcaption><p>Interface de correspondance des champs avec auto-complétion Secutix.</p></figcaption></figure></div>

Utilisez cette page pour :

* Confirmer quels champs Secutix sont disponibles.
* Ajouter des champs calculés supplémentaires à la charge utile de la Carte.
* Déboguer quels champs de billet peuvent être réutilisés dans le modèle.

Pour en savoir plus sur la configuration du modèle de billet, voir [billet d'événement](/guides-design/fr/conception/event-ticket.md).

### Champs disponibles

<details>

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

Voici le catalogue brut de champs exposé par le connecteur. Considérez-le comme une boîte à outils. Il est rarement nécessaire dans son intégralité.

| L’équipe Wallet      | 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 is INVALIDATED or CANCELLED                          |                                               |
| address.longitude    | operationData.siteAddress.gpsLongitude or computed from address via Google Maps API |                                               |
| address.latitude     | operationData.siteAddress.gpsLatitude or computed from address via Google Maps API  |                                               |

</details>

## Personnalisation du mapping (avancé)

Utilisez le scripting uniquement 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>

Ceci est utile pour :

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

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

```javascript
/**
 * Étendre le mapping 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 de mouvement provenant du service web Secutix.
 * @param {Object} params.Operation- Informations d'opération liées au mouvement actuel provenant du service web Secutix.
 * @param {Object|null|undefined} params.Product - Informations produit pouvant être null et liées au mouvement actuel provenant de Secutix.
 * @param {Object} entity - Entité Wallet cible à enrichir.
 */
function mapFromSecutix(data, entity) {
  // Exemple : exposer un champ Secutix comme champ Wallet supplémentaire
  const stageVisibility = data?.Movement?.StageVisibility;
  if (stageVisibility != null) {
    entity["ticket.stageVisibility"] = stageVisibility;
  }
}

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

Lorsque plusieurs modèles de billets sont prévus, configurez des règles de routage dans [Sélection du modèle (routage)](/connectors/fr/ticketing/secutix/template-selection.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.thewalletcrew.io/connectors/fr/ticketing/secutix/wallet-pass-template-and-field-mapping.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
