# Créer une chaîne d'offres

Crée une chaîne d'offres

Endpoint: POST /v2/project/{project_id}/admin/offer_chain
Version: 2.0.0
Security: basicAuth

## Path parameters:

  - `project_id` (integer, required)
    ID du projet. Vous trouverez ce paramètre dans le Compte éditeur, à côté du nom du projet, ainsi que dans l'URL affichée dans la barre d'adresse du navigateur lorsque vous utilisez ce projet. L'URL présente le format suivant : https://publisher.xsolla.com//projects/.
    Example: 44056

## Request fields (application/json):

  - `name` (object,null, required)
    Conteneur objet contenant les localisations du nom de l'objet (item). Il accepte deux formats de codes de langue : les codes à deux lettres minuscules (comme en) et les codes régionaux à cinq caractères (comme en-US). Les deux formats sont valides en entrée, mais les réponses utilisent toujours le format à deux lettres. Si les deux variantes sont fournies pour une même langue (par exemple, en et en-US), seule la dernière est conservée. Consultez la [documentation](/fr/doc/shop-builder/references/supported-languages/) pour la liste complète des langues prises en charge.

  - `order` (integer)
    Définit l'ordre d'empilement.

  - `description` (object,null)
    Conteneur objet contenant les localisations de la description de l'objet (item). Il accepte deux formats de codes de langue : les codes à deux lettres minuscules (comme en) et les codes régionaux à cinq caractères (comme en-US). Les deux formats sont valides en entrée, mais les réponses utilisent toujours le format à deux lettres. Si les deux variantes sont fournies pour une même langue (par exemple, en et en-US), seule la dernière est conservée. Consultez la [documentation](/fr/doc/shop-builder/references/supported-languages/) pour la liste complète des langues prises en charge.

  - `date_start` (string, required)
    Date de début de la chaîne d'offres.

  - `date_end` (string,null)
    Date de fin de la chaîne d’offres. Peut être null. Si date_end est null, la chaîne d'offres n'a pas de limite de temps.

  - `is_enabled` (boolean, required)

  - `recurrent_schedule` (any)

  - `steps` (array, required)

  - `steps.step_number` (integer, required)
    Numéro de l'étape.

  - `steps.is_free` (boolean, required)
    Indique si l'étape de la chaîne d'offres est gratuite :Si true, l'étape doit être réclamée à l'aide de l'appel Réclamer une étape de chaîne d'offres gratuite.Si false, elle doit être achetée à l'aide de l'appel Créer une commande pour une étape payante de la chaîne d'offres.

  - `steps.items` (array, required)

  - `steps.items.sku` (string, required)
    ID unique de l'objet. L'UGS ne peut comprendre que des caractères alphanumériques latins minuscules et majuscules, des points, des tirets et des traits bas.

  - `steps.items.quantity` (integer, required)
    Quantité d'objets de récompense pour cette étape de la chaîne.

  - `steps.items.order` (integer,null)
    Ordre des récompenses pour l'étape de la chaîne d'offres.

  - `is_always_visible` (boolean)
    Détermine la visibilité de la chaîne par tous les utilisateurs. Si la valeur est true, la chaîne est toujours affichée, indépendamment du statut d'authentification ou des attributs de l'utilisateur.

Pour configurer la personnalisation, vous devez passer false. La logique d'affichage de la chaîne fonctionne alors comme suit :
  * Si false est passé et que des conditions de visibilité sont définies dans le tableau attribute_conditions, la chaîne est considérée comme personnalisée et s'affiche uniquement pour les utilisateurs autorisés remplissant les conditions spécifiées.
  * Si false est passé et que le tableau attribute_conditions n'est pas transmis ou est vide, la chaîne s'affiche pour les utilisateurs non autorisés, ainsi que lorsqu'aucune chaîne correspondante n'est trouvée pour l'utilisateur autorisé.

  - `attribute_conditions` (array)
    Conditions de validation des attributs utilisateur.
Détermine la disponibilité de la chaîne selon que les attributs utilisateur correspondent à toutes les conditions spécifiées.

## Response 201 fields (application/json):

  - `offer_chain_id` (integer)
    Example: 10

## Response 401 fields (application/json):

  - `statusCode` (integer)
    Example: 401

  - `errorCode` (integer)
    Example: 1020

  - `errorMessage` (string)
    Example: "[0401-1020]: Error in Authentication method occurred"

## Response 422 fields (application/json):

  - `statusCode` (integer)
    Example: 422

  - `errorCode` (integer)
    Example: 1102

  - `errorMessage` (string)
    Example: "[0401-1102]: Unprocessable Entity. The property `property_name` is required"

  - `transactionId` (string)
    Example: "x-x-x-x-transactionId-mock-x-x-x"

  - `errorMessageExtended` (object,null)


