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

Définir des points de valeur pour les objetsServer-sideAdmin

Requête

Attribue des points de valeur à un ou plusieurs objets par UGS. Les utilisateurs reçoivent des points de valeur en achetant ces objets.

Notez que cette requête PUT écrase tous les points de valeur précédemment définis pour les objets du projet.

Pour éviter la suppression involontaire de points de valeur, incluez tous les objets et leurs points de valeur respectifs dans chaque requête PUT.

Si vous souhaitez uniquement mettre à jour les points de valeur d'un objet spécifique tout en préservant les points de valeur des autres objets, vous devez récupérer l'ensemble actuel des points de valeur à l'aide d'une requête GET, modifier les points de valeur de l'objet souhaité, puis renvoyer l'ensemble modifié des points de valeur avec les points de valeur mis à jour pour l'objet 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
value_point_skustringobligatoire

UGS du point de valeur.

Exemple: value_point_3
Corpsapplication/jsonArray [
amountintegerobligatoire

Montant des points de valeur.

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 PUT \
  -u <username>:<password> \
  https://xsolla.redocly.app/_mock/fr/api/shop-builder/v2/project/44056/admin/items/value_point_3/value_points/rewards \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "amount": 100,
      "sku": "com.xsolla.booster_1"
    },
    {
      "amount": 200,
      "sku": "com.xsolla.booster_mega"
    }
  ]'

Réponses

Les récompenses en points de valeur des objets ont été mises à jour avec succès.

Corps
Réponse
Aucun contenu

Lire une liste de chaînes de récompensesServer-sideAdmin

Requête

Récupère une liste de chaînes de récompenses.

Attention

Tous les projets sont soumis à une limite de nombre d'objets que vous pouvez obtenir dans la réponse. La valeur par défaut et la valeur maximale sont 10 éléments par réponse. Pour obtenir plus de données page par page, utilisez les champs limit et offset.
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
Requête
limitinteger>= 1

Nombre maximal d'éléments sur une page.

Exemple: limit=50
offsetinteger>= 0

Numéro de l'élément à partir duquel la liste est générée (le décompte commence à 0).

Exemple: offset=0
enabledinteger

Filtrer les éléments en fonction de l'indicateur is_enabled.

curl -i -X GET \
  -u <username>:<password> \
  'https://xsolla.redocly.app/_mock/fr/api/shop-builder/v3/project/44056/admin/reward_chain?limit=50&offset=0&enabled=0'

Réponses

La liste des chaînes de récompenses a été reçue avec succès.

Corpsapplication/json
has_moreboolean(Pagination_has-more)

Utilisé pour indiquer qu'il y a plus de pages.

Exemple: true
itemsArray of admin-get-reward-chain-item-basic-model (object) or admin-get-reward-chain-item-clan-basic-model (object)
Réponse
application/json
{ "has_more": true, "items": [ {}, {} ] }

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 }
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations