Перейти к содержимому

Введение

LiveOps is a toolkit for driving ongoing player engagement through promotions and personalized offers.

Use the API to manage the following features:

  • Promotions — create and manage coupons, promo codes, discounts, and bonus campaigns.
  • Personalization — specify the conditions for displaying the item catalog and applying promotions only for certain authorized users.
  • Promotion limits — set a limit on how many times a promotion can be used by a user and configure scheduled resets for these limits.
  • Reward chains & Value points — configure reward progressions tied to value point accumulation.
  • Daily chains — set up recurring daily rewards to motivate regular logins.
  • Offer chains — build sequential purchase offers with per-step pricing and free reward options.
  • Upsell — a sales method in which the user is offered to buy an item with additional value.

Методы API

The API is divided into the following groups:

  • Admin — calls for creating, updating, activating, and deleting campaigns and chain configurations. Authenticated via basic access authentication with your merchant or project credentials.
  • Client — calls for retrieving available promotions, getting active chains, redeeming codes, and claiming rewards on behalf of authenticated end users. Authenticated via user JWT.

Аутентификация

Методы API требуют аутентификации либо от имени пользователя, либо от имени проекта. Тип используемой схемы аутентификации указан в блоке Безопасность в описании каждого метода.

Аутентификация с помощью JWT пользователя

Аутентификация с помощью JWT пользователя применяется, когда запрос выполняется из браузера, мобильного приложения или игры. По умолчанию используется XsollaLoginUserJWT. Подробная информация о создании токена приведена в документации Xsolla Login API.

The token is passed in the Authorization header in the following format: Authorization: Bearer <user_JWT>, where <user_JWT> is the user token. The token identifies the user and provides access to personalized data.

В качестве альтернативы вы можете использовать токен для открытия платежного интерфейса.

Базовая HTTP-аутентификация

Базовая HTTP-аутентификация применяется при взаимодействии server-to-server, когда вызов API отправляется напрямую с вашего сервера, а не из браузера пользователя или мобильного приложения. Обычно применяется базовая HTTP-аутентификация с использованием ключа API.

Примечание

Ключ API является конфиденциальным и не должен храниться или использоваться в клиентских приложениях.

При базовой серверной аутентификации все запросы к API должны содержать заголовок:

  • для basicAuthAuthorization: Basic <your_authorization_basic_key>, где your_authorization_basic_key — это пара project_id:api_key, закодированная по стандарту Base64;
  • для basicMerchantAuthAuthorization: Basic <your_authorization_basic_key>, где your_authorization_basic_key — это пара merchant_id:api_key, закодированная по стандарту Base64.

Значения параметров вы можете найти в Личном кабинете:

  • merchant_id отображается:
    • В разделе Настройки компании > Компания.
    • В адресной строке браузера на любой странице Личного кабинета. URL-адрес имеет вид: https://publisher.xsolla.com/<merchant_id>.
  • project_id отображается:
    • В Личном кабинете рядом с названием проекта.
    • В адресной строке браузера при работе с проектом в Личном кабинете. URL-адрес имеет вид: https://publisher.xsolla.com/<merchant_id>/projects/<project_id>.
  • api_key отображается в Личном кабинете только при создании и должен храниться на вашей стороне. Создать ключ можно в разделах:
Внимание

Если необходимый метод API не включает в себя path-параметр project_id, используйте для авторизации ключ API, который действует во всех проектах.

Подробная информация о работе с ключами API приведена в справочнике API.

Аутентификация с поддержкой гостевого доступа

Для продажи корзины используется схема аутентификации AuthForCart, которая поддерживает два режима:

  1. Authentication with a user's JWT. The token is passed in the Authorization header in the following format: Authorization: Bearer <user_JWT>, where <user_JWT> is the user token. The token identifies the user and provides access to personalized data. Alternatively, you can use a token for opening the payment UI.

  2. Упрощенный режим без заголовка. Он применяется только для неавторизованных пользователей и может быть использована только для продажи игровых ключей. Вместо токена в запрос передаются заголовки:

    • x-unauthorized-id с ID запроса;
    • x-user с email пользователя, закодированным в формате Base64.

Базовая структура товара

Товары всех типов (виртуальные предметы, бандлы, виртуальная валюта, ключи) используют схожую структуру данных. Понимание базовой структуры упрощает работу с API и позволяет быстрее ориентироваться в документации.

Примечание

В некоторых методах могут использоваться дополнительные поля, но они не изменяют базовую структуру.

Идентификация

  • merchant_id — ID компании в Личном кабинете;
  • project_id — ID проекта в Личном кабинете;
  • sku — артикул товара, уникальный в рамках проекта.

Отображение в каталоге

  • name — название;
  • description — описание;
  • image_url — ссылка на изображение;
  • is_enabled — доступность товара;
  • is_show_in_store — отображение в каталоге.

Подробнее об управлении доступностью товаров в каталоге – в документации.

Организация

  • type — тип товара, например, виртуальный предмет (virtual_item) или бандл (bundle);
  • groups — группы, к которым относится товар;
  • order — порядок отображения в каталоге.

Условия продажи

  • prices — цены в реальной или виртуальной валюте;
  • limits — ограничения на покупку;
  • periods — период доступности;
  • regions — региональные ограничения.

Пример базовой структуры:

{
  "attributes": [],
  "bundle_type": "virtual_currency_package",
  "content": [
    {
      "description": {
        "en": "Main in-game currency"
      },
      "image_url": "https://.../image.png",
      "name": {
        "en": "Crystals",
        "de": "Kristalle"
      },
      "quantity": 500,
      "sku": "com.xsolla.crystal_2",
      "type": "virtual_currency"
    }
  ],
  "description": {
    "en": "Crystals x500"
  },
  "groups": [],
  "image_url": "https://.../image.png",
  "is_enabled": true,
  "is_free": false,
  "is_show_in_store": true,
  "limits": {
    "per_item": null,
    "per_user": null,
    "recurrent_schedule": null
  },
  "long_description": null,
  "media_list": [],
  "name": {
    "en": "Medium crystal pack"
  },
  "order": 1,
  "periods": [
    {
      "date_from": null,
      "date_until": "2020-08-11T20:00:00+03:00"
    }
  ],
  "prices": [
    {
      "amount": 20,
      "country_iso": "US",
      "currency": "USD",
      "is_default": true,
      "is_enabled": true
    }
  ],
  "regions": [],
  "sku": "com.xsolla.crystal_pack_2",
  "type": "bundle",
  "vc_prices": []
}

Настройка продажи товаров

Xsolla API позволяет реализовать логику магазина внутриигровых товаров,  включая получение каталога, управление корзиной, создание заказов и отслеживание их статусов. В зависимости от сценария интеграции методы API делятся на подразделы Admin и Catalog, которые используют разные схемы аутентификации.

Ниже приведен пример базового сценария настройки и работы магазина — от создания товаров до их продажи пользователю.

Создание товаров и групп (Admin)

Создайте каталог товаров для вашего магазина, например, виртуальные предметы, бандлы или виртуальную валюту.

Примеры методов:

Настройка акций, цепочек, ограничений (Admin)

Настройте инструменты привлечения пользователей и монетизации, например скидки, бонусы, ежедневные награды или цепочки предложений.

Примеры методов:

Получение информации о товарах (Client)

Настройте отображение товаров магазина в вашем приложении.

Внимание

Не используйте методы подраздела Admin для построения каталога пользователям — у таких методов заданы ограничения по частоте запросов, которые не рассчитаны на пользовательский трафик.

Примеры методов:

Примечание

По умолчанию в методах получения каталога возвращаются товары, которые отображаются в магазине на момент запроса. Чтобы получить информацию о товарах, период отображения которых еще не наступил или уже истек, передайте параметр "show_inactive_time_limited_items": 1 при запросе каталога.

Продажа товаров

Вы можете продавать товары за реальную валюту следующими способами:

  • Быстрая покупка — продажа одного товара, но в любом количестве.
  • Покупка корзины — пользователь наполняет корзину, добавляет и удаляет товары, изменяет количество в одном заказе.

Если товар оплачивается внутриигровой валютой, а не реальными деньгами, используйте метод Создание заказа с указанным товаром, приобретенным за виртуальную валюту. Платежный интерфейс открывать не нужно — списание происходит в момент вызова метода.

Если товар бесплатный, используйте метод Создание заказа с указанным бесплатным товаром или метод Создание заказа с помощью бесплатной корзины. Платежный интерфейс открывать не нужно — заказ сразу переходит в статус done.

Быстрая покупка

Используйте клиентский метод создания заказа с указанным товаром – в ответе вы получите токен, который используется для открытия платежного интерфейса.

Примечание

Информация о скидке доступна пользователю только в платежном интерфейсе. Использование промокодов не предусмотрено.

Покупка корзины

Наполнение и покупка корзины может осуществляться на клиенте или на сервере.

Наполнение и покупка корзины на клиенте

Самостоятельно реализуйте логику добавления и удаления товаров. Также необходимо учитывать, что до вызова метода наполнения корзины у вас не будет информации о том, какие акции будут применены при покупке. Это означает, что итоговая стоимость и сведения о добавленных бонусных предметах будут неизвестны.

Реализуйте следующую логику работы с корзиной:

  1. После наполнения корзины игроком используйте метод Наполнение корзины товарами для наполнения корзины. В ответе вернется текущая информация о выбранных товарах — цены до и после применения скидок, бонусные товары.
  2. Обновите содержимое корзины в соответствии с действиями пользователя:
Примечание

Если вы хотите получить актуальное состояние корзины, используйте метод Получение корзины текущего пользователя.
  1. Используйте метод покупки корзины Создание заказа со всеми товарами из текущей корзины. В ответе вернутся ID заказа и платежный токен. Заказу будет присвоен статус new.

Наполнение и покупка корзины на сервере

Этот вариант наполнения корзины может занимать значительное время на настройку, поскольку каждое изменение корзины может сопровождаться вызовом большего количества методов API.

Реализуйте следующую логику работы с корзиной:

  1. После наполнения корзины игроком используйте методс Наполнение корзины товарамидля наполнения корзины. В ответе вернется текущая информация о выбранных товарах — цены до и после применения скидок, бонусные товары.
  2. Используйте метод покупки корзины Создание заказа со всеми товарами из текущей корзины. В ответе вернутся ID заказа и платежный токен. Заказу будет присвоен статус new.

Открытие платежного интерфейса

Используйте полученный токен для открытия платежного интерфейса в новом окне. Другие способы открытия платежного интерфейса описаны в документации.

ДействиеЭндпоинт
Открыть в боевом окружении.https://secure.xsolla.com/paystation4/?token={token}
Открыть в тестовом окружении.https://sandbox-secure.xsolla.com/paystation4/?token={token}
Примечание

Используйте тестовый режим (sandbox-режим) при разработке и тестировании — при совершении тестовой покупки с реальных счетов не списываются деньги. Для тестирования вы можете использовать тестовые банковские карты.

После проведения первого реального платежа в силу вступает строгая политика платежей в тестовом окружении. Проведение платежа в нем будет доступно только для пользователей, которые указаны в Личном кабинете в разделе Настройки компании > Пользователи.

Покупка виртуальной валюты и виртуальных предметов за реальную валюту возможна после подписания лицензионного договора с Xsolla. Для этого в Личном кабинете перейдите в Договоры и налоги > Договоры, заполните договор и дождитесь подтверждения согласования. Согласование может занять до 3 рабочих дней.

Для включения или отключения тестового режима вам необходимо изменить значение параметра sandbox в теле запроса методов быстрой покупки и покупки корзины. По умолчанию тестовый режим выключен.

Возможные статусы заказа: - new — заказ создан; - paid — оплата получена; - done — товар начислен; - canceled — заказ отменен; - expired — истек срок оплаты.

Отслеживайте статус одним из следующих способов:

Пагинация

Методы API для запроса большого количества записей (например, для построения каталога) возвращают данные постранично. Пагинация — это механизм ограничения количества элементов, возвращаемых в одном ответе API, с возможностью последовательного получения следующих страниц.

Для управления количеством возвращаемых элементов используйте следующие параметры:

  • limit — количество элементов на странице;
  • offset — номер элемента, с которого выполняется вывод на странице (нумерация ведется с 0);
  • has_more — есть ли следующая страница;
  • total_items_count — общее количество элементов.

Пример запроса:

GET /items?limit=20&offset=40

Пример ответа:

{
  "items": [...],
  "has_more": true,
  "total_items_count": 135
}

Рекомендуется выполнять последовательные запросы до тех пор, пока в ответе не вернется has_more = false.

Формат даты и времени

Дата и время передаются в формате ISO 8601.

Поддерживаются:

  • смещение относительно UTC;
  • значение null, когда нет ограничения времени отображения предмета;
  • в отдельных полях используется Unix timestamp (в секундах).

Формат: YYYY-MM-DDTHH:MM:SS±HH:MM

Пример: 2026-03-16T10:00:00+03:00

Локализация

Xsolla поддерживает локализацию пользовательских полей, таких как название и описание товаров. Локализованные значения передаются в виде объекта, в котором ключом является код языка. Полный список поддерживаемых языков приведен в документации.

Поддерживаемые поля

Локализация может быть задана для следующих параметров:

  • name
  • description
  • long_description

Формат локали

Ключ локали может быть указан в одном из следующих форматов:

  • двухбуквенный код языка: en, ru
  • формат язык–страна: en-US, ru-RU, de-DE

Примеры

Пример с двухбуквенным кодом языка:

{
  "name": {
    "en": "Starter Pack",
    "ru": "Стартовый набор"
  }
}

Пример с форматом язык–страна:

{
  "description": {
    "en-US": "Premium bundle",
    "de-DE": "Premium-Paket"
  }
}

Формат ответа при ошибке

При возникновении ошибки API возвращает HTTP-статус и тело ответа в формате JSON. Полный список ошибок в работе магазина приведен в документации.

Пример ответа:

{
  "errorCode": 1102,
  "errorMessage": "Validation error",
  "statusCode": 422,
  "transactionId": "c9e1a..."
}
  • errorCode — код ошибки.
  • errorMessage — краткое описание ошибки.
  • statusCode — HTTP статус ответа.
  • transactionId — ID запроса. Возвращается не во всех случаях.
  • errorMessageExtended — дополнительные данные об ошибке, например параметры запроса. Возвращаются не во всех случаях.

Пример расширенного ответа:

{
  "errorCode": 7001,
  "errorMessage": "Chain not found",
  "errorMessageExtended": {
    "chain_id": "test_chain_id",
    "project_id": "test_project_id",
    "step_number": 2
  },
  "statusCode": 404
}

Частые HTTP-статусы

  • 400 — некорректный запрос
  • 401 — ошибка аутентификации
  • 403 — недостаточно прав доступа
  • 404 — ресурс не найден
  • 422 — ошибка валидации данных
  • 429 — превышено ограничение частоты запросов

Рекомендации

  • Обрабатывайте HTTP-статус и тело ответа совместно.
  • Используйте errorCode для обработки ошибок, связанных с логикой работы приложения.
  • Используйте transactionId, чтобы быстрее идентифицировать запросы при анализе ошибок.
Скачать описание OpenAPI
Языки
Серверы
https://store.xsolla.com/api/
Mock server
https://xsolla.redocly.app/_mock/ru/api/liveops/

Основная информация

Акции — это маркетинговый инструмент для привлечения внимания потенциальных пользователей к товару и повышения уровня продаж. Используя Xsolla API, вы можете настроить следующие акции:

  • Скидки — сниженная цена на выбранные товары.
  • Бонусы — товары, которые начисляются пользователю вместе с покупкой другого товара.
  • Купоны — коды, при вводе которых пользователю начисляется один или несколько бонусных товаров.
  • Промокоды — коды, которые позволяют пользователю получить бонусный товар, скидку на определенный товар или на всю корзину. В отличие от купонов, промокоды погашаются не в момент ввода кода, а при совершения покупки.
  • Уникальные предложения — скрытые товары, которые отображаются в каталоге пользователям, которые ввели код уникального предложения. Если код не введен, товары не отображаются.

Сценарий настройки акции на примере скидочной акции:

  1. Создайте товары с помощью методов подраздела Admin из группы Виртуальные предметы и валюта, Бандлы или Игровые ключи.
  2. Создайте акцию с помощью метода Создание акции со скидками для товара. В массиве items передайте артикулы нужных товаров.
  3. Настройте периоды действия акции. Для этого вызовите метод Создание акции со скидками для товара или Обновление акции со скидками и передайте в нем поле promotion_periods с массивом объектов с датами, где date_from — начало периода действия акции, а date_until — окончание.
  4. Активируйте акцию с помощью метода Обновление акции со скидками. Передайте в нем параметр "is_enabled": true.
  5. Чтобы получать информацию о ценах на товары, включая цены со скидкой, используйте клиентские методы API для получения каталога товаров из подразделов Общие > Catalog, Виртуальные предметы и валюта > Catalog, Бандлы > Catalog.

Пример настройки акции

Подробная информация о работе с каждым видом акций приведена в документации:

Общие методы API

Вы можете использовать методы из этого подраздела для управления разными видами промоакций.

Операции

Купоны

Используйте методы из этого подраздела для настройки и управления акциями с купонами.

Примечание

Подробная информация о работе с купонами приведена в документации.

Операции

Промокоды

Используйте методы из этого подраздела для настройки и управления акциями с промокодами.

Примечание

Подробная информация о работе с промокодами приведена в документации.

Операции

Информация об ограничении на применение промокодов для указанного пользователяServer-sideAdmin

Запрос

Получает информацию об оставшемся количестве применений промокода для указанного пользователя.

API ограничений для пользователей позволяет ограничить доступное количество применений промокода. Для настройки самого ограничения перейдите в раздел администратора:

Безопасность
basicAuth
Путь
project_idintegerобязательный

ID проекта. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта, а также в адресной строке браузера при работе с проектом. URL-адрес имеет следующий формат: https://publisher.xsolla.com/<merchant_id>/projects/<project_id>.

Пример: 44056
external_idintegerобязательный

External ID акции. Уникальный идентификатор акции в рамках проекта.

Пример: coupon_44056_1
Запрос
user_external_idstringобязательный

External ID пользователя

Пример: user_external_id=d342dad2-9d59-11e9-a384-42010aa8003f
curl -i -X GET \
  -u <username>:<password> \
  'https://store.xsolla.com/api/v2/project/44056/admin/user/limit/promocode/external_id/coupon_44056_1?user_external_id=d342dad2-9d59-11e9-a384-42010aa8003f'

Ответы

Успешно получены ограничения промокода для пользователей.

Телоapplication/json
per_userobject
per_user.​totalinteger

Максимальное количество использований промокода для пользователя.

Пример: 10
per_user.​availableinteger

Оставшееся количество использований промокода пользователем.

Пример: 9
Ответ
application/json
{ "per_user": { "total": 10, "available": 9 } }

Информация об ограничении на применение промокодовServer-sideAdmin

Запрос

Возвращает оставшееся количество применений кодов. Для фильтрации кодов используйте параметр запроса codes.

Для настройки самого ограничения перейдите в раздел администратора:

Безопасность
basicAuth
Путь
project_idintegerобязательный

ID проекта. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта, а также в адресной строке браузера при работе с проектом. URL-адрес имеет следующий формат: https://publisher.xsolla.com/<merchant_id>/projects/<project_id>.

Пример: 44056
external_idintegerобязательный

External ID акции. Уникальный идентификатор акции в рамках проекта.

Пример: coupon_44056_1
Запрос
codes[]Array of strings

Уникальные коды, чувствительные к регистру. Содержат только буквы и цифры.

limitinteger>= 1

Лимит количества элементов на странице.

Пример: limit=50
offsetinteger>= 0

Номер элемента, с которого выполняется вывод на странице (нумерация ведется с 0).

Пример: offset=0
curl -i -X GET \
  -u <username>:<password> \
  'https://store.xsolla.com/api/v2/project/44056/admin/code/limit/promocode/external_id/coupon_44056_1?codes%5B%5D=string&limit=50&offset=0'

Ответы

Успешно получены ограничения промокода.

Телоapplication/json
promotion_idinteger

ID акции. Уникальный идентификатор акции в рамках проекта.

itemsArray of objects
items[].​codestring[ 1 .. 128 ] characters^[a-zA-Z0-9]+$

Уникальный код, чувствительный к регистру. Содержит буквы и цифры.

items[].​per_codeobject
items[].​per_code.​totalinteger

Максимальное количество использований промокода.

items[].​per_code.​availableinteger

Оставшееся количество использований промокода.

items[].​per_code.​usedinteger

Сколько раз использовался промокод.

items[].​per_code.​reservedinteger

Сколько раз резервировался промокод.

total_items_countnumber

Общее количество кодов.

has_moreboolean

Существует ли другая страница с кодами.

Ответ
application/json
{ "promotion_id": 1, "items": [ {}, {} ], "total_items_count": 2, "has_more": false }

Уникальный каталог предложений

Используйте методы из этого подраздела для настройки и управления уникальными предложениями в каталоге.

Примечание

Подробная информация о работе с уникальным каталогом предложений приведена в документации.

Операции

Скидки

Используйте методы из этого подраздела для настройки и управления акциями со скидками.

Примечание

Подробная информация о работе со скидками приведена в документации.

Операции

Бонусы

Используйте методы из этого подраздела для настройки и управления акциями с бонусами.

Примечание

Подробная информация о работе с бонусами приведена в документации.

Операции

Персонализированный каталог

Персонализация позволяет задавать условия отображения каталога товаров и применения акций только для определенного круга авторизованных пользователей. Условия задаются на основе атрибутов пользователей и позволяют показывать релевантные товары, предложения и скидки.

Доступны следующие типы персонализации:

  • Персонализация на стороне Xsolla. Правила и логика персонализации настраиваются и хранятся на стороне Xsolla. Вы передаете атрибуты пользователя, а Xsolla на их основе формирует персонализированный каталог.
  • Персонализация на стороне партнера. Вы самостоятельно настраиваете правила и логику персонализации и передаете в Xsolla готовый каталог для конкретного пользователя.
Примечание

Вы можете использовать только один тип персонализации. Чтобы изменить его, используйте инструкцию.

Чтобы настроить персонализацию на стороне Xsolla с помощью Xsolla API:

  1. Создайте товары с помощью методов подраздела Admin из группы Виртуальные предметы и валюта, Бандлы или Игровые ключи.

  2. Настройте атрибуты пользователя, используя Xsolla Login API и поддерживайте значения атрибутов в актуальном состоянии: обновляйте их в Xsolla, когда они меняются у пользователя в игре.

  3. Настройте персонализацию для товаров или акций:

    • Для персонализации каталога товаров задайте правила отображения каталога с помощью метода Создание правила фильтрации каталога:
      • В массиве attribute_conditions укажите условия доступности товаров в каталоге на основе проверки атрибутов пользователя.
      • В массиве items передайте список товаров, которые должен видеть пользователь, если значения его атрибутов соответствуют условиям.
    • Для настройки персонализированных акций используйте методы создания и обновления акции нужного типа и в массиве attribute_conditions передайте условия, которые определяют доступность акции на основе проверки атрибутов пользователя.
  4. Передайте JWT пользователя с его атрибутами в методы получения каталога товаров, чтобы получить персонализированный каталог.

Процесс настройки и применения персонализации на стороне Xsolla для товаров каталога:

Персонализация каталога товаров

Процесс настройки и применения персонализации на стороне Xsolla для акций:

Персонализация акций

Операции

Основная информация

Лимиты на использование акций позволяют ограничивать количество раз, которое конкретный пользователь может воспользоваться акцией. Вы также можете задавать периоды автоматического обновления лимитов.

Лимиты хранятся на стороне Xsolla и задаются в настройках каждой акции в Личном кабинете или через объект limits в следующих методах API:

Информация о лимитах возвращается в объекте items.promotions.limits в методах API получения каталога товаров:

Методы подраздела Управление из группы методов Лимиты позволяют получать информацию о текущем состоянии лимитов и изменять их для конкретного пользователя — например, сбрасывать счетчик после выполнения квеста или корректировать остаток вручную.

Примечание

Подробная информация по настройке лимитов в каталоге приведена в разделе Лимиты на количество использований акций.

Вы можете настроить limits.per_user —  лимит на количество использований акции для одного пользователя.

Для неавторизованного пользователя всегда отображается максимальное количество использований акции.

Чтобы отобразить пользователю оставшееся количество с учетом действующего лимита, необходимо передавать данные авторизации при запросе каталога товаров.

Чтобы настроить период автоматического обновления — ежедневно, еженедельно или ежемесячно, передайте объект limits.recurrent_schedule при создании или обновлении акции.

Limit configuration and enforcement scenario

  1. Вы создаете акцию через методы API Создание акции со скидками для товара или Создание акции с бонусами и передаете объект limits.
  2. Вы запрашиваете каталог для неавторизованного пользователя — в ответе возвращается максимальное количество использований акции в объекте items.promotions.limits.
  3. Пользователь авторизуется.
  4. Вы запрашиваете каталог, передавая авторизационный токен пользователя — в ответе возвращается оставшееся количество использований с учетом действующего лимита.
  5. Пользователь выбирает акционный товар и совершает покупку.
  6. После успешного платежа Xsolla уменьшает значение параметра items.promotions.limits.per_user. Когда значение этого параметра достигает 0, товар возвращается в методах запроса каталога — без скидки или бонуса.
  7. Вы можете обновить лимит через методы подраздела Управление:
  8. Вы получаете обновленное значение лимита в items.promotions.limits при следующем запросе каталога с авторизационным токеном пользователя и отображаете его пользователю.

Лимиты на использование акций

Операции

Основная информация

Цепочки наград позволяют мотивировать пользователей совершать покупки в магазине за реальную валюту. За каждую покупку пользователи получают призовые баллы и продвигаются по цепочке наград. Если пользователи объединены в кланы, их покупки приносят призовые баллы всему клану. Подробная информация о настройке цепочек наград приведена в разделе Система вознаграждений.

Цепочки настраиваются через методы подраздела Admin. Для настройки отображения цепочек и получения наград используйте методы подраздела Клиент. Для работы с клановыми цепочками наград используйте методы подраздела Клиент кланов.

Пример сценария настройки цепочки наград:

  1. Создайте товары с помощью методов API из подраздела Admin групп методов Виртуальные предметы и валюта или Бандлы.
  2. Создайте призовые баллы с помощью метода API Создание призовых баллов.
  3. Привяжите призовые баллы к товарам с помощью метода API Настройка призовых баллов для товаров. Пользователи получат эти баллы после покупки товаров.
  4. Создайте цепочку с помощью метода API Создание цепочки наград. Чтобы активировать цепочку, передайте параметр is_enabled: true.
  5. Реализуйте отображение цепочек наград. Для этого запросите список доступных пользователю цепочек с помощью метода API Получение цепочек наград для текущего пользователя. В ответе содержатся все активные цепочки с шагами и их статусами.
  6. Реализуйте отображение текущего баланса призовых баллов. Для этого вызовите метод API Получение баланса призовых баллов для текущего пользователя.
  7. Реализуйте получение награды пользователем. Для этого вызовите метод API Получение награды на уровне.
  8. Настройте отслеживание статуса заказа, например с помощью вебхуков, чтобы своевременно получать данные о запрошенных наградах и начислять их пользователю.

Пример настройки цепочки наград

Операции
Операции
Операции
Операции
Операции

Основная информация

Цепочка предложений — это последовательность шагов, каждый из которых содержит товар, который пользователь получает бесплатно или покупает в рамках действующего предложения. Цепочка предложений может содержать уникальные товары, доступные только в рамках цепочки, а также товары по более выгодным ценам, чем в магазине. Подробная информация о настройке этого маркетингового инструмента приведена в разделе Цепочки предложений.

Цепочки настраиваются через методы подраздела Admin. Для настройки отображения цепочек и реализации логики работы с товарами, которые получает пользователь, используйте методы подраздела Клиент.

Пример сценария настройки цепочки предложений:

  1. Создайте товары с помощью методов API из подраздела Admin групп методов Виртуальные предметы и валюта или Бандлы.

  2. Создайте цепочку с помощью метода API Создание цепочки предложений. Чтобы активировать цепочку, передайте параметр is_enabled: true.

  3. Реализуйте отображение цепочек предложений. Для этого запросите список доступных пользователю цепочек с помощью метода API Получение цепочек предложений для текущего пользователя. В ответе возвращаются все активные цепочки с шагами и их статусами.

  4. Реализуйте логику работы с товарами, которые получает пользователь:

  5. Настройте отслеживание статуса заказа, например, с помощью вебхуков, чтобы своевременно получать данные о запрошенных или оплаченных товарах и начислять их пользователю.

Reward chain configuration flow

Операции
Операции
Операции
Операции