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

Supprimer un code promo du panierClient-side

Requête

Supprime un code promo d'un panier. Après la suppression du code promo, le prix total de tous les objets du panier sera recalculé sans les bonus et les remises accordés par un code promo.

Sécurité
AuthForCart
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
cartobject or null
curl -i -X PUT \
  https://xsolla.redocly.app/_mock/fr/api/shop-builder/v2/project/44056/promocode/remove \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "cart": {
      "id": "current"
    }
  }'

Réponses

Le code promo est annulé avec succès.

Corpsapplication/json
cart_idstring

ID de panier.

Exemple: "cart_id"
is_freeboolean(value-is_free)

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

Par défaut false
Exemple: false
itemsArray of objects
Exemple: [{"attributes":[],"can_be_bought":true,"description":"Take it, take it all! All of Xsolla's riches in one Mega Booster.","groups":[{"external_id":"powerups","name":"Power Ups"}],"image_url":"https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png","is_free":false,"limits":{"per_user":{"available":3,"recurrent_schedule":{"interval_type":"weekly","reset_next_date":1746057600},"total":5}},"name":"Xsolla Booster Mega","periods":[{"date_from":"2020-08-11T10:00:00+03:00","date_until":"2020-08-11T20:00:00+03:00"}],"price":{"amount":"50.0000000000000000","amount_without_discount":"100.0000000000000000","currency":"USD"},"promotions":[{"bonus":[{"image_url":"https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png","name":"Xsolla Minigun","quantity":1,"sku":"com.xsolla.minigun_1","type":"virtual_good"}],"date_end":"2026-04-15T16:16:00+03:00","date_start":"2020-04-15T16:16:00+03:00","discount":{"percent":"50.00"},"name":"Bonus promotion"}],"quantity":123,"sku":"com.xsolla.booster_mega_1","type":"virtual_good","virtual_item_type":"consumable","virtual_prices":[],"vp_rewards":[{"amount":130,"image_url":"https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg","item_id":175232,"name":"Value point","sku":"com.xsolla.value_point_1"},{"amount":50,"image_url":"https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg","is_clan":true,"item_id":186321,"name":"Clan Reward VP 1","sku":"com.xsolla.clan_value_point_1"}]}]
priceobject or null

Prix du panier.

Exemple: {"amount":"6150.0000000000000000","amount_without_discount":"6150.0000000000000000","currency":"USD"}
Réponse
application/json
{ "cart_id": "cart_id", "is_free": false, "items": [ {} ], "price": { "amount": "6150.0000000000000000", "amount_without_discount": "6150.0000000000000000", "currency": "USD" } }

Lire la liste des promotions par code promoServer-sideAdmin

Requête

Récupère la liste des codes promo d'un projet.

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

Réponses

La liste des codes promo a été reçue avec succès.

Corpsapplication/json
active_promotions_countinteger(active_promotions_count)

Nombre de promotions actives.

inactive_promotions_countinteger(inactive_promotions_count)

Nombre de promotions désactivées.

itemsArray of objects(Promotions_200-get-promocode-promotion-model)
total_promotions_countinteger(total_promotions_count)

Nombre total de promotions.

Réponse
application/json
{ "active_promotions_count": 2, "inactive_promotions_count": 0, "items": [ {}, {} ], "total_promotions_count": 2 }

Créer une promotion par code promoServer-sideAdmin

Requête

Crée une promotion par code promo.

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
attribute_conditionsArray of type = string (object) or type = number (object) or type = date (object)(promotion_user-attribute_conditions_model-post)[ 1 .. 100 ] items

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

bonusArray of objects or null(Promotions_coupon_bonus)
discountobject or null
Exemple: {"percent":"10.10"}
discounted_itemsArray of objects or null(Promotions_discounted_items)

Liste des objets bénéficiant d'une remise grâce à un code promo.

excluded_promotionsArray of integers(excluded_promotions)

Liste des ID de promotion à exclure lors de l'application de cette promotion.
Example: [12, 789]

Exemple: [12,789]
external_idstring(Promotions_coupon-external_id)obligatoire

ID unique de la promotion. Le external_id ne peut comprendre que des caractères alphanumériques latins minuscules et majuscules, des points, des tirets et des traits bas.

Par défaut "coupon_external_id"
Exemple: "coupon_external_id"
item_price_conditionsArray of objects or null(item_price_conditions_promocode)

Tableau d'objets avec des conditions définissant la fourchette de prix pour l'application de la promotion à certains biens du panier.
Le prix de chaque bien du panier de l'utilisateur est comparé à la fourchette de prix spécifiée dans la condition. Les bonus et les réductions ne s'appliquent qu'aux biens du panier dont le prix répond à la condition.
Si vous passez ce tableau, définissez la valeur du tableau discounted_items sur null.

nameobject(Promotions_coupon_name)obligatoire

Nom de la promotion. Doit comprendre des paires clé/valeur où la clé est une région au format "^[a-z]{2}-[A-Z]{2}$", la valeur est une chaîne.

Par défaut {"de-DE":"Gutscheintitel","en-US":"Coupon title"}
Exemple: {"de-DE":"Gutscheintitel","en-US":"Coupon title"}
name.​property name*stringpropriété supplémentaire
price_conditionsArray of objects or null(price_conditions_promocode)

Tableau d'objets avec des conditions définissant la fourchette de prix pour l'application de la promotion à l'ensemble du panier.
Le prix total de tous les biens du panier de l'utilisateur est comparé à la fourchette de prix spécifiée dans la condition. Les bonus et les réductions s'appliquent à tous les biens du panier si le prix du panier répond à la condition spécifiée.
Si vous passez ce tableau, définissez la valeur du tableau discounted_items sur null.

promotion_periodsArray of objects(promotion_periods)

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

redeem_code_limitinteger or null(Promotions_redeem_code_limit)

Nombre d'échanges par code.

Par défaut 10
Exemple: 10
redeem_total_limitinteger or null(Promotions_coupon-redeem_total_limit)

Limite le nombre total de coupons.

Par défaut 10
Exemple: 10
redeem_user_limitinteger or null(Promotions_coupon-redeem_user_limit)

Limite le nombre total de coupons pouvant être échangés par un seul utilisateur.

Par défaut 10
Exemple: 10
curl -i -X POST \
  -u <username>:<password> \
  https://xsolla.redocly.app/_mock/fr/api/shop-builder/v3/project/44056/admin/promocode \
  -H 'Content-Type: application/json' \
  -d '{
    "attribute_conditions": [
      {
        "attribute": "account_status",
        "can_be_missing": false,
        "operator": "eq",
        "type": "string",
        "value": "golden"
      }
    ],
    "discount": {
      "percent": "10.10"
    },
    "external_id": "coupon_external_id",
    "name": {
      "de-DE": "Neujahrsrabatt",
      "en-US": "New Year Discount"
    },
    "promotion_periods": [
      {
        "date_from": "2020-04-15T18:16:00+05:00",
        "date_until": "2020-04-25T18:16:00+05:00"
      }
    ],
    "redeem_code_limit": 1,
    "redeem_total_limit": 100,
    "redeem_user_limit": 1
  }'

Réponses

Le code promo a été créé avec succès.

Corpsapplication/json
external_idstring(Promotions_coupon-external_id)

ID unique de la promotion. Le external_id ne peut comprendre que des caractères alphanumériques latins minuscules et majuscules, des points, des tirets et des traits bas.

Par défaut "coupon_external_id"
Exemple: "coupon_external_id"
Réponse
application/json
{ "external_id": "coupon_external_id" }

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