# 在购物车里添加商品 在当前购物车里添加商品。如果购物车中已有具有相同SKU的商品,则现有商品将被传入的值替换。 Endpoint: PUT /v2/admin/project/{project_id}/cart/fill Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) 项目ID。您可以在您的发布商帐户项目名称旁边找到。 Example: 44056 ## Query parameters: - `locale` (string) 响应语言。按照ISO 639-1规定使用两个小写字母的语言代码。 ## Header parameters: - `x-user-for` (string) 可以使用艾克索拉登录管理器用户JWT或支付中心访问令牌传输用户标识符。 Example: "ACCESS_TOKEN/LOGIN_JWT" - `x-user-id` (string) 使用购物车销售游戏时可以使用您自己的用户ID。 Example: "UNIQUE_ID" ## Request fields (application/json): - `country` (string) [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)标准下的两个大写字母的国家/地区代码。 请查看文档详细了解[艾克索拉支持的国家/地区](https://developers.xsolla.com/zh/doc/shop-builder/references/supported-countries/)。示例:country=US Example: "US" - `currency` (string) 购物车中显示的商品价格货币。每[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)。请查看文档以获取有关[Xsolla 支持的货币](https://developers.xsolla.com/zh/doc/pay-station/references/supported-currencies/)。 Example: "USD" - `items` (array, required) - `items.quantity` (number, required) 商品的数量。 Example: 2 - `items.sku` (string, required) 唯一商品ID。 SKU只能包含大小写英文字母和数字字符、句点、破折号和下划线。 Example: "t-shirt" ## Response 200 fields (application/json): - `cart_id` (string) 购物车ID。将其传入购买页面或支付API端点的查询。 Example: "cart_id" - `is_free` (boolean) 如果为true,则购物车为免费。 - `items` (array) - `items.attributes` (array) 与商品对应的属性及其值的列表。可用于目录筛选。 Example: {"value":{"external_id":"genre","name":"Жанр","values":[{"external_id":"genre_e3364991f92e751689a68b96598a5a5a84010b85","value":"Casual"},{"external_id":"genre_eba07bfd0f982940773cba3744d97264dd58acd7","value":"Strategy"},{"external_id":"genre_b8d0c6d8f0524c2b2d79ebb93aa3cd0e8b5199a8","value":"Mobile"}]}} - `items.attributes.external_id` (string) 唯一属性ID。 external_id只能包含大小写英文字母和数字字符、破折号和下划线。 Example: "attribute_1" - `items.attributes.name` (string) 属性名称。 Example: "Genre" - `items.attributes.values` (array) - `items.attributes.values.external_id` (string) 属性的唯一值ID。 external_id只能包含小写英文字母和数字字符、破折号和下划线。 Example: "attribute_value" - `items.attributes.values.value` (string) 属性值。 Example: "Strategy" - `items.can_be_bought` (boolean) 如为true,则用户可以购买商品。 Example: true - `items.description` (string) - `items.groups` (array) - `items.groups.external_id` (string) - `items.groups.name` (string) - `items.image_url` (string) - `items.is_bonus` (boolean) - `items.is_free` (boolean) 如果为true,则该商品为免费。 - `items.limits` (object,null) 商品限制。 - `items.limits.per_item` (object,null) 商品的购买限制。 - `items.limits.per_item.available` (integer) 所有用户可购买的剩余商品数量。 Example: 3 - `items.limits.per_item.total` (integer) 所有用户可购买的最大商品数量。 Example: 5 - `items.limits.per_user` (object,null) 一个用户的购买数量限制。 - `items.limits.per_user.available` (integer) 当前用户可购买的剩余商品数量。 Example: 3 - `items.limits.per_user.limit_exceeded_visibility` (string) 设定商品在达到购买限制后、下次限制重置前在目录中的可见性。 适用于在recurrent_schedule数组中配置了周期性重置数量限制的商品。 若未配置数量限制重置,则商品在达到购买限制后将不会出现在目录中,无论limit_exceeded_visibility值为何。 Enum: "show", "hide" - `items.limits.per_user.recurrent_schedule` (object) 用户的商品限制循环刷新周期。 - `items.limits.per_user.recurrent_schedule.interval_type` (string) 循环刷新周期类型。 Enum: "daily", "weekly", "monthly", "hourly" - `items.limits.per_user.recurrent_schedule.reset_next_date` (integer) 重置限制次数的日期和时间(Unix时间戳)。 Example: 1677553200 - `items.limits.per_user.total` (integer) 单个用户可购买的最大商品数量。 Example: 5 - `items.periods` (array,null) 商品促销时间段。 - `items.periods.date_from` (string) 指定商品促销开始的日期。 Example: "2020-08-11T10:00:00+03:00" - `items.periods.date_until` (string,null) 指定商品停止促销的日期。可以为null。 Example: "2020-08-11T20:00:00+03:00" - `items.price` (object,null) 商品价格。 - `items.price.amount` (string) - `items.price.amount_without_discount` (string) - `items.price.currency` (string) - `items.promotions` (array) 应用于购物车中指定商品的促销活动。仅在以下情况下返回该数组: * 为某商品配置了折扣促销活动。 * 应用了对所选商品提供折扣设置的促销码。 如果未应用任何商品级促销活动,则返回空数组。 - `items.promotions.bonus` (array) - `items.promotions.bonus.bundle_type` (string) 奖励捆绑包商品类型。仅适用于bundle奖励品类型。 Enum: "standard", "virtual_currency_package" - `items.promotions.bonus.image_url` (string) 奖励商品图片URL。不适用于physical_good奖励品类型。 - `items.promotions.bonus.name` (string) 奖励品名称。不适用于physical_good奖励品类型。 - `items.promotions.bonus.quantity` (integer) - `items.promotions.bonus.sku` (string) - `items.promotions.bonus.type` (string) 奖励品类型。 Enum: "virtual_good", "virtual_currency", "bundle", "physical_good", "game_key", "nft" - `items.promotions.date_end` (string,null) - `items.promotions.date_start` (string,null) - `items.promotions.discount` (object,null) - `items.promotions.discount.percent` (string,null) - `items.promotions.discount.value` (string,null) - `items.promotions.limits` (object) - `items.promotions.limits.per_user` (object) - `items.promotions.limits.per_user.available` (integer) - `items.promotions.limits.per_user.total` (integer) - `items.type` (string) - `items.virtual_prices` (array) 虚拟价格。 - `items.virtual_prices.amount` (integer) 以虚拟货币表示的折扣后商品价格。 Example: 100 - `items.virtual_prices.amount_without_discount` (integer) 以虚拟货币表示的商品价格。 Example: 200 - `items.virtual_prices.description` (string,null) 虚拟货币说明。 Example: "Most popular gold" - `items.virtual_prices.image_url` (string,null) 虚拟货币图像。 Example: "http://image.png" - `items.virtual_prices.is_default` (boolean) 价格是否为商品的默认价格。 Example: true - `items.virtual_prices.name` (string) 虚拟货币名称。 Example: "Gold" - `items.virtual_prices.sku` (string) 虚拟货币物品SKU。 Example: "gold" - `items.virtual_prices.type` (string) 虚拟货币类型。 Example: "virtual_currency" - `items.vp_rewards` (array) 奖励积分商品奖励。 - `items.vp_rewards.amount` (integer) 奖励积分的数量。 - `items.vp_rewards.image_url` (string) 图像URL。 Example: "https://image.example.com" - `items.vp_rewards.is_clan` (boolean) 该奖励积分是否用于公会奖励链。 Example: true - `items.vp_rewards.item_id` (integer) 内部唯一物品ID。 Example: 1 - `items.vp_rewards.name` (string) 奖励积分名称。 - `items.vp_rewards.sku` (string) 唯一奖励积分ID。 - `price` (object,null) 购物车价格。 - `promotions` (array) 应用于整个购物车的促销活动。仅在以下情况下返回该数组: * 促销活动影响购物车总金额,例如使用了对购买项提供折扣设置的促销码。 * 促销活动为购物车添加了赠品。 如果未应用任何订单级促销,则返回空数组。 - `warnings` (array) - `warnings.errorCode` (integer) - `warnings.errorMessage` (string) ## Response 401 fields (application/json): - `errorCode` (integer) Example: 1020 - `errorMessage` (string) Example: "[0401-1020]: Error in Authentication method occurred" - `statusCode` (integer) Example: 401 ## Response 404 fields (application/json): - `errorCode` (integer) Example: 5008 - `errorMessage` (string) Example: "[0401-5008]: Could not find User" - `statusCode` (integer) Example: 404 ## Response 422 fields (application/json): - `errorCode` (integer) Example: 1401 - `errorMessage` (string) Example: "[0401-1401]: Invalid cart" - `statusCode` (integer) Example: 422