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

Mettre à jour un jeu par IDServer-sideAdmin

Requête

Met à jour les informations d'un jeu dans le projet par son ID.

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
item_idstringobligatoire

ID de l'objet

Exemple: 656
Corpsapplication/jsonobligatoire

Objet contenant des données de jeu.

attributesArray of objects(Game-Keys_admin-post-put-attributes)<= 20 items

Liste des attributs.

Attention. La création de plus de 20 attributs pour un objet n'est pas autorisée. Toute tentative de dépassement entraîne une erreur.
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.

groupsArray of objects

Groupes auxquels l'objet appartient.

Exemple: ["new_games"]
image_urlstring

URL de l'image.

Exemple: "http://image.png"
is_enabledboolean

Si ce paramètre est désactivé, l'objet ne peut pas être acheté et n'est pas accessible par le biais de l'inventaire.

Exemple: true
is_show_in_storeboolean

L'objet est disponible à l'achat.

Exemple: true
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.

media_listArray of objects

Ressources supplémentaires du jeu, telles que des captures d'écran, des vidéos de gameplay, etc.

Exemple: [{"type":"image","url":"http://image.png"},{"type":"video","url":"http://video.png"}]
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

Ordre de priorité des jeux dans la liste.

Exemple: 1
skustring[ 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: "com.xsolla.game_1"
unit_itemsArray of objectsobligatoire

Clés de jeu pour différents DRM.

Exemple: [{"drm_sku":"steam_key_1","is_enabled":true,"is_free":false,"is_show_in_store":true,"limits":{"per_item":{"available":5000,"reserved":500,"sold":4500,"total":10000},"per_user":{"total":5}},"name":{"en-US":"Game key name","ru-RU":"Название игрового ключа"},"periods":[{"date_from":"2020-08-11T10:00:00+03:00","date_until":"2020-08-11T20:00:00+03:00"}],"pre_order":{"description":"Some description","is_enabled":true,"release_date":"2020-08-11T10:00:00+03:00"},"prices":[{"amount":35.5,"currency":"USD","is_default":true,"is_enabled":true}],"regions":[{"id":12},{"id":64}],"sku":"com.xsolla.game_key_1","vc_prices":[{"amount":35.5,"is_default":true,"is_enabled":true,"sku":"com.xsolla.gold_1"}]}]
unit_items[].​attributesArray of objects(Game-Keys_admin-attributes)

Liste des attributs.

Exemple: [{"external_id":"attribute_external_id","name":{"de":"Attributname","en":"Attribute name"},"values":[{"external_id":"value_1","name":{"de":"wert 1","en":"value 1"}},{"external_id":"value_2","name":{"de":"wert 2","en":"value 2"}}]}]
unit_items[].​drm_skustringobligatoire

ID unique du DRM.

Exemple: "steam"
unit_items[].​groupsArray of objects

Groupes auxquels l'objet appartient.

unit_items[].​is_enabledboolean

Si ce paramètre est désactivé, l'objet ne peut pas être acheté et n'est pas accessible par le biais de l'inventaire.

unit_items[].​is_freeboolean(value-is_free)

Si ce paramètre est défini sur true, l'objet est gratuit.

Par défaut false
Exemple: false
unit_items[].​is_show_in_storeboolean

L'objet est disponible à l'achat.

unit_items[].​limitsobject(Game-key-item-limit)

Limites d'objets.

unit_items[].​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.

unit_items[].​orderinteger

Ordre de priorité des jeux dans la liste.

Exemple: 1
unit_items[].​periodsArray of objects or null(item-periods)

Période de vente d'objets.

unit_items[].​pre_orderobject

Paramètres de pré-commande.

unit_items[].​pricesArray of objectsobligatoire

Prix en devises réelles.

unit_items[].​prices[].​amountnumberobligatoire
Exemple: 1299.99
unit_items[].​prices[].​currencystringobligatoire

Devise du prix de l'article. Code à trois lettres selon ISO 4217. Consultez la documentation pour obtenir des informations détaillées sur les devises prises en charge par Xsolla.

Exemple: "RUB"
unit_items[].​prices[].​is_defaultbooleanobligatoire

Le prix par défaut est utilisé pour constituer le catalogue si aucun prix n'est spécifié dans la devise de l'utilisateur.

unit_items[].​prices[].​is_enabledbooleanobligatoire
unit_items[].​regionsArray of objects(Game-Keys_regions)
unit_items[].​skustring[ 1 .. 255 ] charactersobligatoire

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: "game_1"
unit_items[].​vc_pricesArray of objects
curl -i -X PUT \
  -u <username>:<password> \
  https://xsolla.redocly.app/_mock/fr/api/shop-builder/v2/project/44056/admin/items/game/id/656 \
  -H 'Content-Type: application/json' \
  -d '{
    "description": {
      "en-US": "Game description",
      "ru-RU": "Краткое описание игры"
    },
    "groups": [
      "new_games"
    ],
    "image_url": "http://image.png",
    "is_enabled": true,
    "is_show_in_store": true,
    "long_description": {
      "en-US": "Game long description",
      "ru-RU": "Полное описание игры"
    },
    "media_list": [
      {
        "type": "image",
        "url": "http://image.png"
      },
      {
        "type": "video",
        "url": "http://video.png"
      }
    ],
    "name": {
      "en-US": "Game name",
      "ru-RU": "Название игры"
    },
    "sku": "com.xsolla.game_1",
    "unit_items": [
      {
        "drm_sku": "steam_key_1",
        "is_enabled": true,
        "is_free": false,
        "is_show_in_store": true,
        "limits": {
          "per_item": {
            "available": 5000,
            "reserved": 500,
            "sold": 4500,
            "total": 10000
          },
          "per_user": {
            "total": 5
          }
        },
        "name": {
          "en-US": "Game key name",
          "ru-RU": "Название игрового ключа"
        },
        "periods": [
          {
            "date_from": "2020-08-11T10:00:00+03:00",
            "date_until": "2020-08-11T20:00:00+03:00"
          }
        ],
        "pre_order": {
          "description": "Some description",
          "is_enabled": true,
          "release_date": "2020-08-11T10:00:00+03:00"
        },
        "prices": [
          {
            "amount": 35.5,
            "currency": "USD",
            "is_default": true,
            "is_enabled": true
          }
        ],
        "regions": [
          {
            "id": 12
          },
          {
            "id": 64
          }
        ],
        "sku": "com.xsolla.game_key_1",
        "vc_prices": [
          {
            "amount": 35.5,
            "is_default": true,
            "is_enabled": true,
            "sku": "com.xsolla.gold_1"
          }
        ]
      }
    ]
  }'

Réponses

Le jeu a été mis à jour avec succès.

Réponse
Aucun contenu

Supprimer des codes par IDServer-sideAdmin

Requête

Supprime tous les codes par ID de clé de jeu.

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
item_idstringobligatoire

ID de l'objet

Exemple: 656
Requête
user_emailstringobligatoire

Adresse e-mail de l'utilisateur.

Exemple: user_email=email@email.com
reasonstringobligatoire

Raison pour laquelle les codes sont reçus.

Exemple: reason=Very important
region_idinteger

ID de la région.

Par défaut 1
curl -i -X DELETE \
  -u <username>:<password> \
  'https://xsolla.redocly.app/_mock/fr/api/shop-builder/v2/project/44056/admin/items/game/key/delete/id/656?user_email=email%40email.com&reason=Very+important&region_id=1'

Réponses

Les codes ont été reçus avec succès.

Corpstext/plain
string
Réponse
text/plain
PIN-CODE-ALL PIN-CODE-ALL-3

Requête

Supprime tous les codes par UGS de clé de jeu.

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
item_skustringobligatoire

UGS de l'objet.

Exemple: booster_mega_1
Requête
user_emailstringobligatoire

Adresse e-mail de l'utilisateur.

Exemple: user_email=email@email.com
reasonstringobligatoire

Raison pour laquelle les codes sont reçus.

Exemple: reason=Very important
region_idinteger

ID de la région.

Par défaut 1
curl -i -X DELETE \
  -u <username>:<password> \
  'https://xsolla.redocly.app/_mock/fr/api/shop-builder/v2/project/44056/admin/items/game/key/delete/sku/booster_mega_1?user_email=email%40email.com&reason=Very+important&region_id=1'

Réponses

Les codes ont été reçus avec succès.

Corpstext/plain
string
Réponse
text/plain
PIN-CODE-ALL PIN-CODE-ALL-3
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
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations