Articles annexes
La plateforme et l'API Stockticket incluent la possibilité de proposer des articles annexes lors de la constitution du panier. Les propositions sont basées sur les articles déjà présents dans le panier et sur les règles de proposition d'articles annexes définies dans les modules de fourniture d'articles annexes associés au module de vente concerné.
Toutes les méthodes de gestion de panier retournant le détail du panier avec le modèle BasketDetailModel (ex: AddEventDate, GetDetail, RemoveItem, Validate, SetCustomFields,... ) incluent potientiellement des informations sur les articles annexes qui pourraient être ajouté au panier.
La méthode /Catalog/GetEventDateDetail permet également d'obtenir des propositions d'articles annexes basées sur une représentation d'événement spécifique.
Si des articles annexes sont disponibles, ils seront retournés dans la propriété ancillaries de la réponse.
La propriété ancillaries sera absente si aucune proposition n'est disponible.
Chaque article annexe inclut des détails tels que son nom, sa description, son prix, et d'autres informations pertinentes.
Configuration préalable
Afin de pouvoir obtenir des propositions d'articles annexes, le module de vente utilisé doit être configuré pour déclarer les modules qui fourniront les informations sur les articles annexes.
Il est nécessaire d'avoir associé au moins une instance de module de fourniture d'articles annexes au module de vente concerné dans le back-office StockTicket, dans le champ "Proposition d'articles annexes".

Tip
Afin de pouvoir sélectionner un module de fourniture dans la liste des "Proposition d'articles annexes",
vous devez au préalable avoir souscrit à une instance publique ou avoir créé votre propre instance d'un
module de type "Fourniture d'articles annexes" (AncillaryItemsProvider).
Info
Il est possible de sélectionner et d'associer plusieurs modules de fourniture d'articles annexes à un module de vente.
Les méthodes d'API fourniront alors les informations sur les articles annexes fournies par chacun des modules fournisseurs associés.
Principe de fonctionnement
Lorsqu'une méthode de gestion de panier ou la méthode GetEventDateDetail est appelée, la plateforme Stockticket identifie les modules de fourniture d'articles annexes associés au module de vente concerné.
Elle les interroge ensuite pour obtenir les propositions d'articles annexes basées sur le contenu du panier ou la représentation d'événement spécifique.
Chaque module de fourniture d'articles annexes peut appliquer ses propres règles de proposition pour déterminer quels articles annexes proposer. Les propositions d'articles annexes retournées par les modules fournisseurs sont ensuite agrégées et incluses dans la réponse de l'API, permettant ainsi au client de les présenter à l'utilisateur final.
La methode d'API SetAncillaryItem permet ensuite d'ajouter (ou de modifier) un article annexe proposé au panier, en précisant l'article annexe à ajouter et la quantité (ou les autres informations attendues selon le type d'articles).
Modification du panier
La sélection d'un article annexe et son ajout au panier via la méthode SetAncillaryItem peuvent entraîner une modification d'autres éléments du panier (ex: ajout d'éléments, suppression d'éléments, modification d'éléments, etc...). Pour cette raison, la méthode SetAncillaryItem retourne le détail du panier mis à jour après l'ajout de l'article annexe, incluant les nouvelles propositions d'articles annexes basées sur le nouveau contenu du panier. Il est donc recommandé de relire les données du panier après chaque ajout d'article annexe.
Plus généralement, toute modification du panier peut entraîner la modification des propositions d'articles annexes. Il est donc conseillé de s'assurer que l'article que l'on souhaite sélectionner est toujours disponible dans la dernière réponse de panier reçue.
La méthode permet également de supprimer un article annexe déjà ajouté au panier en précisant une quantité nulle pour cet article annexe, ou en utilisant une valeur booléenne négative selon le type d'article annexe.
Types d'articles annexes
Il existe différents types d'articles annexes qui peuvent être proposés, tels que des produits physiques, des services, etc...
Les principaux types fonctionnels d'articles annexes sont les suivants :
- Produit physique
- Service
- Réduction
- Assurance
- Combiné
Vous pouvez trouver plus d'informations sur les différents types d'articles annexes en vous référant à la description du type AncillaryItemTypeEnum dans la documentation dynamique de l'API (L'url de la documentation dynamique est fournie dans la rubrique "Prise en main").
Organisation des articles annexes
Les articles peuvent être rattachés à un parent à différents niveaux :
- Globalement, pour tout le panier (la commande :
Order) - Au niveau d'un 'produit' particulier (ex: "Le concert du 3 avril à 20h") :
Items. - Au niveau d'un 'produit' à un 'tarif' particulier (ex: "Le concert du 3 avri à 20h" en "tarif réduit") :
Items/Lines. - Au niveau d'un élément spécifique du panier (ex: un billet particulier) : `Items/Lines/Items'.
S'il y a un rattachement à un élément parent spécifique, l'identifiant de ce parent est précisé dans la propriété parentId de l'article annexe, et le niveau de rattachement est précisé dans la propriété attachment de l'article annexe.
Les niveaux de rattachement possibles sont décrits dans le type AncillaryAttachmentEnum.
Description des propriétés d'un article annexe (AncillaryItemModel)
Le type AncillaryItemModel représente un article annexe proposable au client (ex: parking, assurance, vestiaire, goodies, etc.).
| Propriété | Type | Description |
|---|---|---|
id |
string |
Identifiant unique de l’article annexe. |
label |
string |
Libellé de l’article (ex: Parking, Vestiaire). |
description |
string? |
Description complémentaire affichable côté client. |
currency |
string |
Code devise (par défaut EUR). |
unitPrice |
TaxableAmount |
Prix unitaire de l’article (HT/TVA/TTC). |
discount |
TaxableAmount |
Remise appliquée à l’article (HT/TVA/TTC). |
unitLabel |
string? |
Libellé singulier de l’unité (ex: t-shirt). |
unitLabelPlural |
string? |
Libellé pluriel de l’unité (ex: t-shirts). |
ancillaryItemType |
AncillaryItemTypeEnum |
Type fonctionnel de l’article annexe. |
promptMode |
AncillaryItemPromptModeEnum |
Mode d’affichage/saisie côté UI client. |
attachment |
AncillaryAttachmentEnum |
Niveau de rattachement (représentation, catégorie tarifaire, unité), si appliacble. |
parentId |
string? |
Identifiant de l’élément parent auquel l’article est lié, si applicable. |
minQuantity |
int? |
Quantité minimale autorisée/suggérée. |
maxQuantity |
int? |
Non |
Sous-types attachés
AncillaryItemTypeEnum
Définit la nature fonctionnelle de l’article annexe :
| Valeur | Signification |
|---|---|
Undefined (0) |
Type non défini. |
PhysicalProduct (1) |
Produit physique. |
Service (2) |
Service. |
Discount (3) |
Réduction. |
Insurance (4) |
Assurance. |
Package (5) |
Offre combinée / package. |
Remarques : les articles de type Discount affichent un prix négatif et sont destinés à être utilisés pour appliquer des remises au panier.
AncillaryItemPromptModeEnum
Définit le comportement attendu de l’interface utilisateur pour la sélection :
| Valeur | Signification |
|---|---|
Auto |
Mode déterminé automatiquement par le fournisseur selon le contexte. |
ActionButton |
Bouton d’action simple (ajout direct, sans quantité). |
SingleQuantityInput |
Saisie d’une quantité globale. |
SingleBooleanInput |
Saisie booléenne (case à cocher). |
PerParentQuantityInput |
Saisie de quantité par élément parent. |
PerParentBooleanInput |
Saisie booléenne par élément parent. |
Remarques :
-
Le mode
ActionButtonest utilisé pour les articles annexes qui peuvent être sélectionnés directement au panier sans saisie de quantité. Leur sélection entraine les modifications du panier associées à l’article annexe et ne tient pas compte du paramètre "quantity". -
Les modes
SingleQuantityInputetSingleBooleanInputsont utilisés pour les articles annexes qui ne nécessitent pas d’identification d’élément parent spécifique. Leur sélection entraine l'ajout ou la modification de l’article annexe dans le panier avec la quantité ou la valeur booléenne saisie, dans un groupe indépendant dans le panier. -
Les modes
PerParentQuantityInputetPerParentBooleanInputsont utilisés pour les articles annexes liés à un élément parent spécifique (ex: tarif, représentation,...) et nécessitent l’identification de ces éléments via le paramètreparentId.
Les modes de saisie de type xxBooleanInput attendent une valeur booléenne (ex: true/false) qui devra être renseignée dans la propriété boolValue de la méthode SetAncillaryItem,
tandis que les autres modes attendent une valeur numérique pour la quantité qui sera renseignée dans la propriété quantity.
AncillaryAttachmentEnum
Définit le niveau de rattachement de l’article annexe :
| Valeur | Signification | Note |
|---|---|---|
Product (10) |
Rattaché à la représentation/produit global. | Groupe dans le panier |
ProductPriceType (15) |
Rattaché à la catégorie tarifaire. | Ligne dans le panier |
ProductUnit (20) |
Rattaché à l’unité (ex: par billet). | Elément item dans le panier |
TaxableAmount
Structure monétaire utilisée par unitPrice et discount :
| Propriété | Type | Description |
|---|---|---|
excVAT |
double |
Montant HT. |
vatRate |
double |
Taux de TVA (ex: 0.20). |
vat |
double |
Montant de TVA calculé (excVAT * vatRate). |
incVAT |
double |
Montant TTC calculé (excVAT * (1 + vatRate)). |
Recommandations d’implémentation côté client
- Toujours relire les données de
ancillariesaprès chaque modification du panier. - Respecter
minQuantity/maxQuantitylors de la saisie. - Adapter l’UI au
promptModereçu. - Interpréter la portée fonctionnelle via
attachmentavant l’ajout via la méthodeSetAncillaryItem.