跳转到内容

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.

下载 OpenAPI 描述
语言
服务器
Mock server
https://xsolla.redocly.app/_mock/zh/api/shop-builder/
https://store.xsolla.com/api/
操作

个性化目录

此API可让您针对用户属性指定规则。如果用户满足具体规则的所有条件,则会显示个性化商品。

有关个性化促销活动的信息,请参阅促销活动部分

要在购买前传递属性,您可以使用艾克索拉Login API或在使Pay Station API生成令牌时将它们传入user.attributes属性

操作
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作

目录

本API允许获取任意类型的可售商品或指定商品。

操作
操作
操作
操作
操作
操作

优惠券

此API让您可以管理优惠券。

操作

促销码

此API让您可以管理促销码。

操作

特别目录优惠

此API让您可以管理特别目录优惠活动。

操作

折扣

此API让您可以管理折扣促销活动。

操作

奖励

此API让您可以管理奖励促销活动。

操作
操作
操作

获取所有虚拟物品列表Client-side

请求

获取用于客户端搜索的所有虚拟物品的列表。

注意:

仅返回物品SKU、名称、组和描述

注:

使用商品目录API调用无需授权,但若需获取个性化目录,必须在Authorization头中传入用户JWT。
安全
XsollaLoginUserJWT
路径
project_idinteger必需

项目ID。您可以在您的发布商帐户项目名称旁边找到。

示例: 44056
查询
localestring

响应语言。按照ISO 639-1规定使用两个小写字母的语言代码。

默认值 "en"
promo_codestring[ 1 .. 128 ] characters

区分大小写的唯一券码。包含字母和数字。

示例: promo_code=WINTER2021
curl -i -X GET \
  'https://xsolla.redocly.app/_mock/zh/api/shop-builder/v2/project/44056/items/virtual_items/all?locale=en&promo_code=WINTER2021' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

响应

已成功接收所有虚拟物品列表。

正文application/json
itemsArray of objects
示例: [{"description":"Big Rocket - description","groups":[{"external_id":"accessory","name":{"en":"accessory"}}],"name":"Big Rocket","sku":"com.xsolla.big_rocket_1"},{"description":"description","groups":[{"external_id":"hair","name":{"en":"Hair"}}],"name":"SHOTGUN FOR TRUE RAIDERS","sku":"com.xsolla.shotgun_raider_1"},{"description":"description","groups":[],"name":"SHOTGUN FOR TRUE RAIDERS","sku":"com.xsolla.shotgun_raider_2"}]
响应
application/json
{ "items": [ {}, {}, {} ] }

按指定组获取商品列表Client-side

请求

从指定组获取商品列表以构建目录。

注意:

所有项目对于可以在响应中获得的商品数量均都限制。默认值和最大值是每个响应50项。要逐页获取更多数据,请使用limitoffset字段。

注:

此端点无需授权即可访问,返回通用数据。但是授权后可以通过用户详细信息来丰富响应,获得个性化结果,例如适用的用户限制和促销活动等。
安全
XsollaLoginUserJWT
路径
project_idinteger必需

项目ID。您可以在您的发布商帐户项目名称旁边找到。

示例: 44056
external_idstring必需

组外部ID。

默认值 "all"
查询
limitinteger>= 1

页面上元素数量的限制。

示例: limit=50
offsetinteger>= 0

元素编号,从该元素开始生成列表(从0开始数)。

示例: offset=0
localestring

响应语言。按照ISO 639-1规定使用两个小写字母的语言代码。

默认值 "en"
additional_fields[]Array of strings

附加字段列表。如果在请求中发送这些字段,则它们将包含在响应中。

枚举"media_list""order""long_description""custom_attributes""item_order_in_group"
countrystring

ISO 3166-1 alpha-2标准下的两个大写字母的国家/地区代码。 请查看文档详细了解艾克索拉支持的国家/地区国家/地区的判断流程

示例: country=US
promo_codestring[ 1 .. 128 ] characters

区分大小写的唯一券码。包含字母和数字。

示例: promo_code=WINTER2021
show_inactive_time_limited_itemsinteger

显示用户不可用的时效性商品。此类商品的有效期尚未开始或已过期。

默认值 0
示例: show_inactive_time_limited_items=1
curl -i -X GET \
  'https://xsolla.redocly.app/_mock/zh/api/shop-builder/v2/project/44056/items/virtual_items/group/{external_id}?limit=50&offset=0&locale=en&additional_fields%5B%5D=media_list&country=US&promo_code=WINTER2021&show_inactive_time_limited_items=1' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

响应

来自指定组的商品列表已成功接收。

正文application/json
has_moreboolean(Pagination_has-more)

用作指示还有更多页面。

示例: true
itemsArray of objects
示例: [{"attributes":[{"external_id":"stack_size","name":"Stack size","values":[{"value":"5"}]}],"can_be_bought":true,"description":"Big Rocket - description","groups":[{"external_id":"weapons","name":"weapons"}],"image_url":"https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png","is_free":false,"limits":{"per_item":null,"per_user":{"available":3,"limit_exceeded_visibility":"show","recurrent_schedule":{"interval_type":"weekly","reset_next_date":1746057600},"total":5}},"name":"Big Rocket","periods":[{"date_from":"2020-08-11T10:00:00+03:00","date_until":"2020-08-11T20:00:00+03:00"}],"price":{"amount":"100.99","amount_without_discount":"100.99","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"}],"sku":"com.xsolla.big_rocket_1","type":"virtual_good","virtual_item_type":"non_renewing_subscription","virtual_prices":[{"amount":100,"amount_without_discount":100,"description":"description","image_url":"http://image.png","is_default":true,"name":"SHOTGUN FOR TRUE RAIDERS","sku":"com.xsolla.vc_1","type":"virtual_currency"}]},{"attributes":[{"external_id":"stack_size","name":"Stack size","values":[{"value":"5"}]},{"external_id":"rating","name":"Rating","values":[{"value":"3.9"}]},{"external_id":"genre","name":"Genre","values":[{"value":"Strategy"},{"value":"Tactical"},"Turn-based"]}],"can_be_bought":true,"description":"description","groups":[{"external_id":"weapons","name":{"en":"weapons"}}],"image_url":"http://image.png","is_free":false,"limits":null,"name":"SHOTGUN FOR TRUE RAIDERS","periods":[],"price":{"amount":"101.0","amount_without_discount":"101.0","currency":"USD"},"promotions":[],"sku":"com.xsolla.shotgun_raider","type":"virtual_good","virtual_item_type":"non_renewing_subscription","virtual_prices":[{"amount":100,"amount_without_discount":100,"description":"description","image_url":"http://image.png","is_default":true,"name":"SHOTGUN FOR TRUE RAIDERS","sku":"com.xsolla.vc_1","type":"virtual_currency"},{"amount":200,"amount_without_discount":200,"description":"description","image_url":"http://image.png","is_default":false,"name":"SHOTGUN FOR TRUE RAIDERS","sku":"com.xsolla.vc_2","type":"virtual_currency"}]}]
响应
application/json
{ "has_more": false, "items": [ {}, {} ] }

按SKU获取虚拟物品Client-side

请求

按SKU获取用于构建目录的虚拟物品。

注:

此端点无需授权即可访问,返回通用数据。但是授权后可以通过用户详细信息来丰富响应,获得个性化结果,例如适用的用户限制和促销活动等。
安全
XsollaLoginUserJWT
路径
project_idinteger必需

项目ID。您可以在您的发布商帐户项目名称旁边找到。

示例: 44056
item_skustring必需

商品SKU。

示例: booster_mega_1
查询
localestring

响应语言。按照ISO 639-1规定使用两个小写字母的语言代码。

默认值 "en"
countrystring

ISO 3166-1 alpha-2标准下的两个大写字母的国家/地区代码。 请查看文档详细了解艾克索拉支持的国家/地区国家/地区的判断流程

示例: country=US
show_inactive_time_limited_itemsinteger

显示用户不可用的时效性商品。此类商品的有效期尚未开始或已过期。

默认值 0
示例: show_inactive_time_limited_items=1
additional_fields[]Array of strings

附加字段列表。如果在请求中发送这些字段,则它们将包含在响应中。

枚举"media_list""order""long_description""custom_attributes""item_order_in_group"
curl -i -X GET \
  'https://xsolla.redocly.app/_mock/zh/api/shop-builder/v2/project/44056/items/virtual_items/sku/booster_mega_1?locale=en&country=US&show_inactive_time_limited_items=1&additional_fields%5B%5D=media_list' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

响应

已成功接收虚拟物品。

正文application/json
attributesArray of objects(Virtual-Items-Currency_client-attributes)

与商品对应的属性及其值的列表。可用于目录筛选。

默认值 []
示例: {"value":{"external_id":"genre","name":"Жанр","values":[{"external_id":"genre_e3364991f92e751689a68b96598a5a5a84010b85","value":"Casual"},{"external_id":"genre_eba07bfd0f982940773cba3744d97264dd58acd7","value":"Strategy"},{"external_id":"genre_b8d0c6d8f0524c2b2d79ebb93aa3cd0e8b5199a8","value":"Mobile"}]}}
can_be_boughtboolean(Can_be_bought)

如为true,则用户可以购买商品。

示例: true
custom_attributesobject(json)(item-custom-attributes-response)

包含商品属性和值的JSON对象。

descriptionobject

商品描述。

示例: "Big Rocket - description"
groupsArray of objects(items_client_groups_response)

商品所属分组。

默认值 []
示例: [{"external_id":"exclusive","name":"Exclusive"}]
image_urlstring

图像URL。

示例: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
is_freeboolean(value-is_free)

如果为true,则该商品为免费。

默认值 false
示例: false
item_idnumber

物品ID。

limitsobject or null(client-item-limit-response)

商品限制。

nameobject

商品名称。

示例: "Big Rocket"
periodsArray of objects(item-periods-response)

商品促销时间段。

priceobject or null

商品价格。

promotionsArray of objects(Catalog_item_promotions)

应用于购物车中指定商品的促销活动。仅在以下情况下返回该数组:

  • 为某商品配置了折扣促销活动。

  • 应用了对所选商品提供折扣设置的促销码。

如果未应用任何商品级促销活动,则返回空数组。

skustring

唯一商品ID。 SKU只能包含大小写英文字母和数字字符、句点、破折号和下划线。

示例: "big_rocket"
typestring

商品类型:virtual_good/virtual_currency/bundle

示例: "virtual_good"
virtual_item_typestring

虚拟物品的类型。

枚举 值描述
consumable

使用后从物品库中消失的物品(例如弹药)。

non_consumable

无限期地留在物品库中的物品。

non_renewing_subscription

时效性商品,代表在有限时间内对服务或内容的访问权限。

示例: "non-consumable"
virtual_pricesArray of objects

虚拟价格。

vp_rewardsArray of objects(client-item-value-point-reward)

奖励积分商品奖励。

响应
application/json
{ "attributes": [ {} ], "can_be_bought": true, "custom_attributes": { "attr": "value", "purchased": 0 }, "description": { "en": "Honshu Boshin Wakizashi - Modern Tactical Samurai / Ninja Sword - Hand Forged 1060 Carbon Steel - Full Tang, Fully Functional, Battle Ready - Black TPR, Steel Guard and Pommel" }, "groups": [ {} ], "image_url": "https://cdn.xsolla.net/img/misc/images/8ab44fe99038a56de01950ba4a971b77.png", "is_free": false, "item_id": 488833, "limits": { "per_item": null, "per_user": {} }, "name": { "en": "Sword Xsolla Skin" }, "periods": [ {} ], "price": { "amount": "4.99", "amount_without_discount": "4.99", "currency": "USD" }, "promotions": [], "sku": "com.xsolla.swords_1", "type": "virtual_good", "virtual_item_type": "non_consumable", "virtual_prices": [], "vp_rewards": [] }
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作
操作