Passer au contenu

Overview

  • Version: 2.0.0
  • Servers: https://store.xsolla.com/api
  • Contact Us by Email
  • Contact URL: https://xsolla.com/
  • Required TLS version: 1.2

Shop Builder API provides a third-party solution for implementing the server side for your store interface. Use the endpoints to manage in-game items, in-game currencies, cart, player inventory, promotions, game library, etc.

Télécharger la description d'OpenAPI
Langues
Serveurs
Mock server
https://xsolla.redocly.app/_mock/fr/api/shop-builder/
https://store.xsolla.com/api/
Opérations

Catalogue personnalisé

Cette API permet de spécifier des règles pour les attributs utilisateur. Si l'utilisateur remplit toutes les conditions d'une règle concrète, des objets personnalisés seront affichés.

Pour les promotions personnalisées, voir la section Promotions.

Pour passer des attributs avant un achat, utilisez Xsolla Login API ou passez-les dans la propriété user.attributes lors de la génération du jeton à l'aide de Pay Station API.

Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations

Catalogue

Cette API permet de récupérer tout type d'objet vendable ou tout objet spécifique.

Opérations
Opérations
Opérations
Opérations
Opérations
Opérations

Coupons

Cette API permet de gérer les coupons.

Opérations

Codes promo

Cette API permet de gérer les codes promo.

Opérations

Offres uniques du catalogue

Cette API permet de gérer les offres uniques du catalogue.

Opérations

Remises

Cette API permet de gérer les promotions par réduction

Opérations

Bonus

Cette API permet de gérer les promotions par bonus.

Opérations
Opérations
Opérations
Opérations
Opérations
Opérations

Créer une chaîne de récompensesServer-sideAdmin

Requête

Crée une chaîne de récompenses.

Sécurité
basicAuth
Chemin
project_idintegerobligatoire

ID de projet. Ce paramètre se trouve dans le Compte éditeur à côté du nom du projet.

Exemple: 44056
Corpsapplication/json
One of:

Chaîne de récompenses.

attribute_conditionsArray of type = string (object) or type = number (object) or type = date (object)(chain_user-attribute_conditions_model-post)[ 1 .. 100 ] items

Conditions de validation des attributs utilisateur. Déterminez la disponibilité de la chaîne selon la correspondance des attributs utilisateur avec l'ensemble des conditions définies.

description(two-letter (object or null)) or (five-letter (object or null))(description-localization-object)

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 pour la liste complète des langues prises en charge.

One of:

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 pour la liste complète des langues prises en charge.

image_urlstring or null(image_url)

URL de l'image.

Exemple: "https://image.example.com"
is_always_visibleboolean(chain_is_always_visible)

Détermine la visibilité de la chaîne pour tous les utilisateurs :

  • Si true, la chaîne s'affiche toujours, indépendamment du statut d'authentification ou des attributs de l'utilisateur.
  • Si false, la chaîne s'affiche uniquement si aucune chaîne personnalisée ne correspond ; par exemple, si l'utilisateur n'est pas authentifié ou si ses attributs ne correspondent à aucune chaîne personnalisée.

S'applique seulement dans le cadre des chaînes personnalisées et uniquement si le tableau attribute_conditions n'est pas passé.

Par défaut true
Exemple: true
is_enabledboolean(is_enabled)obligatoire
Exemple: true
is_reset_after_endboolean(is_reset_after_end)

S'il faut réinitialiser la chaîne de récompenses (points de valeur et progression de tous les utilisateurs) après sa date de fin :

  • Si true, la chaîne de récompenses sera réinitialisée après sa date de fin.
  • Si false, la chaîne de récompenses ne sera pas réinitialisée après sa date de fin.

Avis

Ne peut pas être true si :
  • Une période de réinitialisation est définie dans recurrent_schedule.
  • La valeur null est passée dans periods.date_until.
Par défaut false
Exemple: false
long_description(two-letter (object or null)) or (five-letter (object or null))(long-description-localization-object)

Conteneur objet contenant les localisations de la description complète 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 pour la liste complète des langues prises en charge.

Any of:

Conteneur objet contenant les localisations de la description complète 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 pour la liste complète des langues prises en charge.

name(two-letter (object or null)) or (five-letter (object or null))(name-localization-object)obligatoire

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 pour la liste complète des langues prises en charge.

One of:

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 pour la liste complète des langues prises en charge.

name.​arstring or null

Arabe

name.​bgstring or null

Bulgare

name.​cnstring or null

Chinois (simplifié)

name.​csstring or null

Tchèque

name.​destring or null

Allemand

name.​enstring or null

Anglais

name.​esstring or null

Espagnol (Espagne)

name.​frstring or null

Français

name.​hestring or null

Hébreu

name.​idstring or null

Indonésien

name.​itstring or null

Italien

name.​jastring or null

Japonais

name.​kmstring or null

Khmer

name.​kostring or null

Coréen

name.​lostring or null

Laotien

name.​mystring or null

Birman

name.​nestring or null

Népalais

name.​phstring or null

Philippin

name.​plstring or null

Polonais

name.​ptstring or null

Portugais

name.​rostring or null

Roumain

name.​rustring or null

Russe

name.​thstring or null

Thaï

name.​trstring or null

Turc

name.​twstring or null

Chinois (traditionnel)

name.​vistring or null

Vietnamien

orderinteger(order)

Définit l'ordre d'empilement.

Exemple: 1
periodsArray of objects(periods)obligatoire

Périodes de validité de la chaîne de récompenses. Si plusieurs périodes sont spécifiées, les paramètres date_from et date_until sont tous deux requis.

periods[].​date_fromstring(date-time)obligatoire

Date de début de la chaîne de récompenses spécifiée.

Exemple: "2020-08-11T10:00:00+03:00"
periods[].​date_untilstring or null(date-time)

Date de fin de la chaîne de récompenses spécifiée. Peut être définie à null uniquement lorsqu'une seule période de validité est spécifiée.

Exemple: "2020-08-11T20:00:00+03:00"
recurrent_schedule(interval_type = weekly (object or null)) or (interval_type = monthly (object or null)) or (interval_type = horaire (object or null))(recurrent_schedule_create_update)

Période de réinitialisation récurrente de la chaîne de récompenses.

One of:

Période de réinitialisation récurrente de la chaîne de récompenses.

stepsArray of objects(create_reward_step)obligatoire
steps[].​image_urlstring or null(image_url)

URL de l'image.

Exemple: "https://image.example.com"
steps[].​name(two-letter (object or null)) or (five-letter (object or null))(name-localization-object)obligatoire

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 pour la liste complète des langues prises en charge.

One of:

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 pour la liste complète des langues prises en charge.

steps[].​name.​arstring or null

Arabe

steps[].​name.​bgstring or null

Bulgare

steps[].​name.​cnstring or null

Chinois (simplifié)

steps[].​name.​csstring or null

Tchèque

steps[].​name.​destring or null

Allemand

steps[].​name.​enstring or null

Anglais

steps[].​name.​esstring or null

Espagnol (Espagne)

steps[].​name.​frstring or null

Français

steps[].​name.​hestring or null

Hébreu

steps[].​name.​idstring or null

Indonésien

steps[].​name.​itstring or null

Italien

steps[].​name.​jastring or null

Japonais

steps[].​name.​kmstring or null

Khmer

steps[].​name.​kostring or null

Coréen

steps[].​name.​lostring or null

Laotien

steps[].​name.​mystring or null

Birman

steps[].​name.​nestring or null

Népalais

steps[].​name.​phstring or null

Philippin

steps[].​name.​plstring or null

Polonais

steps[].​name.​ptstring or null

Portugais

steps[].​name.​rostring or null

Roumain

steps[].​name.​rustring or null

Russe

steps[].​name.​thstring or null

Thaï

steps[].​name.​trstring or null

Turc

steps[].​name.​twstring or null

Chinois (traditionnel)

steps[].​name.​vistring or null

Vietnamien

steps[].​priceobject(reward_step_price)obligatoire
steps[].​price.​amountinteger(step_price_amount)obligatoire

Prix de l'étape en points de valeur.

Exemple: 100
steps[].​rewardArray of objectsobligatoire
steps[].​reward[].​attribute_conditionsArray of type = string (object) or type = number (object) or type = date (object)(reward-chain-step-reward_user-attribute_conditions_model-post)[ 1 .. 100 ] items

Conditions de validation des attributs utilisateur. Déterminez la disponibilité de la récompense pour les étapes de la chaîne de récompenses selon la correspondance des attributs utilisateur avec l'ensemble des conditions définies.

steps[].​reward[].​quantityinteger(reward_item_quantity)obligatoire

Quantité de l'objet.

Exemple: 2
steps[].​reward[].​skustring(sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$obligatoire

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.

Exemple: "booster_mega_1"
value_pointobjectobligatoire
value_point.​skustring(sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$obligatoire

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.

Exemple: "booster_mega_1"
curl -i -X POST \
  -u <username>:<password> \
  https://xsolla.redocly.app/_mock/fr/api/shop-builder/v3/project/44056/admin/reward_chain \
  -H 'Content-Type: application/json' \
  -d '{
    "clan_type": "guild",
    "description": {
      "en": "Clan reward chain description."
    },
    "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
    "is_enabled": true,
    "long_description": {
      "en": "Clan reward chain long description."
    },
    "name": {
      "en": "Clan reward chain"
    },
    "order": 1,
    "periods": [
      {
        "date_from": "2026-01-01T01:00:00+05:00",
        "date_until": "2026-01-31T23:59:59+05:00"
      },
      {
        "date_from": "2026-02-01T01:00:00+05:00",
        "date_until": "2026-02-28T23:59:59+05:00"
      }
    ],
    "popup_header": {
      "en": "How to unlock rewards"
    },
    "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
    "popup_instruction": {
      "en": "You must be a clan member to get clan rewards. You join a clan when a clan member invites you to the clan, and you accept the invite. You can also create your own clan."
    },
    "recurrent_schedule": {
      "day_of_week": 1,
      "interval_type": "weekly",
      "time": "01:00:00+08:00"
    },
    "steps": [
      {
        "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
        "name": {
          "en": "First step of the reward chain"
        },
        "price": {
          "amount": 10
        },
        "reward": [
          {
            "quantity": 5,
            "sku": "com.xsolla.item_1"
          },
          {
            "quantity": 1,
            "sku": "com.xsolla.item_2"
          }
        ]
      },
      {
        "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
        "name": {
          "en": "Second step of the reward chain"
        },
        "price": {
          "amount": 15
        },
        "reward": [
          {
            "quantity": 5,
            "sku": "com.xsolla.item_3"
          },
          {
            "quantity": 1,
            "sku": "com.xsolla.item_4"
          }
        ]
      }
    ],
    "value_point": {
      "sku": "com.xsolla.clan_value_point_1"
    }
  }'

Réponses

La chaîne de récompenses a été créée avec succès.

Corpsapplication/json
reward_chain_idinteger
Exemple: 10
Réponse
application/json
{ "reward_chain_id": 10 }

Supprimer une chaîne de récompensesServer-sideAdmin

Requête

Supprime une chaîne de récompenses spécifique.

Sécurité
basicAuth
Chemin
project_idintegerobligatoire

ID de projet. Ce paramètre se trouve dans le Compte éditeur à côté du nom du projet.

Exemple: 44056
reward_chain_idintegerobligatoire

ID de la chaîne de récompenses.

Exemple: 101
curl -i -X DELETE \
  -u <username>:<password> \
  https://xsolla.redocly.app/_mock/fr/api/shop-builder/v3/project/44056/admin/reward_chain/id/101

Réponses

La chaîne de récompenses a été supprimée avec succès.

Corps
Réponse
Aucun contenu

Lire une chaîne de récompensesServer-sideAdmin

Requête

Récupère des informations sur une chaîne de récompenses spécifique.

Sécurité
basicAuth
Chemin
project_idintegerobligatoire

ID de projet. Ce paramètre se trouve dans le Compte éditeur à côté du nom du projet.

Exemple: 44056
reward_chain_idintegerobligatoire

ID de la chaîne de récompenses.

Exemple: 101
curl -i -X GET \
  -u <username>:<password> \
  https://xsolla.redocly.app/_mock/fr/api/shop-builder/v3/project/44056/admin/reward_chain/id/101

Réponses

La chaîne de récompenses spécifiée a été reçue avec succès.

Corpsapplication/json
One of:

Chaîne de récompenses.

attribute_conditionsArray of type = string (object) or type = number (object) or type = date (object)(chain_user-attribute_conditions_model-get)[ 1 .. 100 ] items

Conditions de validation des attributs utilisateur. Déterminez la disponibilité de la chaîne selon la correspondance des attributs utilisateur avec l'ensemble des conditions définies.

description(two-letter (object or null)) or (five-letter (object or null))(description-localization-object)

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 pour la liste complète des langues prises en charge.

One of:

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 pour la liste complète des langues prises en charge.

image_urlstring or null(image_url)

URL de l'image.

Exemple: "https://image.example.com"
is_always_visibleboolean(chain_is_always_visible)

Détermine la visibilité de la chaîne pour tous les utilisateurs :

  • Si true, la chaîne s'affiche toujours, indépendamment du statut d'authentification ou des attributs de l'utilisateur.
  • Si false, la chaîne s'affiche uniquement si aucune chaîne personnalisée ne correspond ; par exemple, si l'utilisateur n'est pas authentifié ou si ses attributs ne correspondent à aucune chaîne personnalisée.

S'applique seulement dans le cadre des chaînes personnalisées et uniquement si le tableau attribute_conditions n'est pas passé.

Par défaut true
Exemple: true
is_enabledboolean(is_enabled)
Exemple: true
is_reset_after_endboolean(is_reset_after_end)

S'il faut réinitialiser la chaîne de récompenses (points de valeur et progression de tous les utilisateurs) après sa date de fin :

  • Si true, la chaîne de récompenses sera réinitialisée après sa date de fin.
  • Si false, la chaîne de récompenses ne sera pas réinitialisée après sa date de fin.

Avis

Ne peut pas être true si :
  • Une période de réinitialisation est définie dans recurrent_schedule.
  • La valeur null est passée dans periods.date_until.
Par défaut false
Exemple: false
long_description(two-letter (object or null)) or (five-letter (object or null))(long-description-localization-object)

Conteneur objet contenant les localisations de la description complète 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 pour la liste complète des langues prises en charge.

Any of:

Conteneur objet contenant les localisations de la description complète 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 pour la liste complète des langues prises en charge.

name(two-letter (object or null)) or (five-letter (object or null))(name-localization-object)

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 pour la liste complète des langues prises en charge.

One of:

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 pour la liste complète des langues prises en charge.

orderinteger(order)

Définit l'ordre d'empilement.

Exemple: 1
periodsArray of objects(periods)

Périodes de validité de la chaîne de récompenses. Si plusieurs périodes sont spécifiées, les paramètres date_from et date_until sont tous deux requis.

recurrent_schedule(interval_type = weekly (object or null)) or (interval_type = monthly (object or null)) or (interval_type = horaire (object or null))(admin_recurrent_schedule)

Période de réinitialisation récurrente de la chaîne de récompenses.

One of:

Période de réinitialisation récurrente de la chaîne de récompenses.

reward_chain_idinteger(reward_chain_id)

ID unique de la chaîne de récompenses.

Exemple: 9
stepsArray of objects(reward_step_short)
value_pointobject
Réponse
application/json
{ "clan_type": "guild", "description": { "en": "Clan reward chain description." }, "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png", "is_enabled": true, "long_description": { "en": "Clan reward chain long description." }, "name": { "en": "Clan reward chain" }, "order": 1, "periods": [ {} ], "popup_header": { "en": "How to unlock rewards" }, "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png", "popup_instruction": { "en": "You must be a clan member in order to get clan rewards. You join a clan when a clan member invites you to the clan, and you accept the invite. You can also create your own clan." }, "recurrent_schedule": { "day_of_week": 2, "displayable_reset_next_date": "2023-03-07T11:00:00+08:00", "displayable_reset_start_date": "2023-02-28T11:00:00+08:00", "interval_type": "weekly", "reset_next_date": 1677553200, "time": "11:00:00+08:00" }, "reward_chain_id": 1, "steps": [ {}, {} ], "value_point": { "description": {}, "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png", "is_clan": true, "is_enabled": true, "long_description": {}, "media_list": [], "name": {}, "order": 1, "sku": "com.xsolla.clan_value_point_1" } }
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations