Бандлы

Как это работает

Бандл — комплект, состоящий из нескольких товаров, которые продаются как единое целое.

Основные возможности:

Примечание

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

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

В зависимости от типа товара и настроек интеграции бандл доставляется пользователю одним из следующих способов:
  • В PlayFab — для виртуальных валют, предметов, предметов с ограниченным сроком действия и бандлов, если настроена интеграция с PlayFab.
  • По электронной почте — для игровых ключей.
  • Через вашу собственную систему начислений на основе данных из вебхука Оплата заказа. Этот способ применяется для всех видов товаров, если:
    • интеграция с PlayFab не используется;
    • вы предпочитаете сами управлять доставкой товаров пользователю и начислять предметы через собственный сервер.
  1. Если передача содержимого бандла не отключена, после покупки бандла все товары, входящие в бандл, передаются в массиве items как список отдельных товаров. Если в составе бандла содержится другой бандл, он также передается как список отдельных товаров.

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

Ограничения:

  • В состав бандла нельзя добавить этот же бандл;
  • Нельзя создать пустой бандл.
  • Продажа бандла с ключами будет приостановлена, если кончились свободные для продажи ключи из состава бандла.

Ограничение количества доступных для покупки бандлов

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

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

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

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

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

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

В ответе, кроме информации о бандле, вы получите следующую информацию:

  • максимальное количество бандлов, которое может купить пользователь;
  • оставшееся количество бандлов, доступное пользователю для покупки.

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

Примечание

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

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

Пример ответа на вебхук с атрибутами пользователей:
Copy
Full screen
Small screen
 1{
 2  "items": [
 3    {
 4      "sku": "kg_1",
 5      "name": "kg_10.00_bundle",
 6      "type": "bundle",
 7      "description": "pricePoint_44056_1",
 8      "image_url": null,
 9      "long_description": null,
10      "attributes": {
11        "external_id": "genre",
12        "name": "Genre",
13        "values": [
14          {
15            "external_id": "genre_e3364991f92e751689a68b96598a5a5a84010b85",
16            "value": "Casual"
17          },
18          {
19            "external_id": "genre_eba07bfd0f982940773cba3744d97264dd58acd7",
20            "value": "Strategy"
21          },
22          {
23            "external_id": "genre_b8d0c6d8f0524c2b2d79ebb93aa3cd0e8b5199a8",
24            "value": "Mobile"
25          }
26        ]
27      },
28      "is_free": false,
29      "order": 999,
30      "groups": [],
31      "price": {
32        "amount": 9.99,
33        "currency": "USD",
34        "amount_without_discount": 9.99
35      },
36      "total_content_price": {
37        "amount": 10.99,
38        "currency": "USD",
39        "amount_without_discount": 10.99
40      },
41      "media_list": [],
42      "virtual_prices": [],
43      "can_be_bought": true,
44      "bundle_type": "standard",
45      "limits": {
46        "$ref": "./Catalog_item_limits.yaml"
47      },
48      "content": [
49        {
50          "sku": "big_rocket",
51          "name": "Big Rocket",
52          "description": "Big Rocket - short description.",
53          "image_url": "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png",
54          "type": "virtual_currency",
55          "quantity": 100,
56          "virtual_item_type": "non_consumable",
57          "attributes": {
58            "external_id": "size",
59            "name": "Size",
60            "values": [
61              {
62                "external_id": "size_e3364991f92e751689a68b96598a5a5a84010b85",
63                "value": "Large"
64              }
65            ]
66          },
67          "is_free": false,
68          "groups": [],
69          "price": {
70            "amount": 10.99,
71            "currency": "USD",
72            "amount_without_discount": 10.99
73          },
74          "virtual_prices": [],
75          "limits": {
76            "per_user": {
77              "total": 5,
78              "available": 5
79              },
80            "per_item": null
81           },
82          }
83        }
84      ]
85    }
86  ]
87}
Примечание

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

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

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

Ограничение времени отображения бандлов в магазине

Вы можете указать период отображения товаров в магазине, чтобы:
  • поддерживать актуальность каталога в заданное время, например, во время праздничных распродаж;
  • создать бандл заранее, не отображая его в каталоге;
  • мотивировать пользователей к покупке с помощью таймера, который может отображаться рядом с бандлом.
Примечание
При создании интерфейса каталога с помощью Site Builder таймер будет отображаться автоматически. При создании каталога в собственном интерфейсе таймер необходимо реализовать самостоятельно.

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

Чтобы настроить ограничение времени отображения бандла в магазине через методы API, передайте в методе Создание бандла или Обновление бандла параметры:

  • periods[0].date_from с данными о дате и времени начала периода отображения валюты в формате YYYY-MM-DDThh:mm:ss±TMZ, где TMZ — указатель часового пояса в формате hh:mm GMT;
  • periods[0].date_until с данными о дате и времени конца периода отображения валюты в формате YYYY-MM-DDThh:mm:ss±TMZ, где TMZ — указатель часового пояса в формате hh:mm GMT. Чтобы не указывать конец периода отображения валюты, передайте значение null.

Вы можете настроить несколько периодов отображения бандла в магазине. Для этого передайте в методе Создание бандла или Обновление бандла массив объектов с датами начала и конца всех периодов.

Пример:

Copy
Full screen
Small screen
 1"periods": [
 2      {
 3        "date_from": "2022-06-10T14:00:00+03:00",
 4        "date_until": "2022-06-30T14:00:00+03:00"
 5      },
 6       {
 7        "date_from": "2022-07-10T14:00:00+03:00",
 8        "date_until": "2022-07-30T14:00:00+03:00"
 9      },
10       {
11        "date_from": "2022-08-10T14:00:00+03:00",
12        "date_until": "2022-08-30T14:00:00+03:00"
13      }
14]

Для кого подходит

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

Как настроить

Сценарий интеграции

  1. Настройте бандл.
  2. Реализуйте получение бандлов в каталоге.

Настройка бандла

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

Настройка через Личный кабинет

  1. В проекте в Личном кабинете перейдите в раздел Store > Бандлы.
  2. Нажмите + и в раскрывающемся списке выберите пункт Создать бандл.
  3. Добавьте:
    • изображение (опционально);
    • артикул;
    • одну или несколько групп, которым должен принадлежать бандл;
    • название бандла;
    • описание бандла (опционально);
    • содержимое бандла.
  4. Настройте цену бандла:
    1. Задайте цены или создайте бесплатный бандл:
      1. Чтобы создать бесплатный бандл, в поле Платно или бесплатно выберите Бесплатный бандл.
      2. Чтобы задать цену, в поле Платно или бесплатно выберите Платный бандл и укажите цену в одной или нескольких валютах в реальной или виртуальной валютах. При необходимости настройте региональные цены.
    2. Задайте ограничение на покупку бандла (опционально). Для этого установите переключатель Ограничивать покупку бандлов пользователем в положение Вкл и укажите количество бандлов, доступное для покупки пользователем.
  5. Нажмите Далее.
  6. Настройте отображение бандла в магазине:
    • Измените статус на Доступен.
    • Настройте ограничение времени отображения бандлов (опционально). Для этого выберите пункт Период времени и укажите часовой пояс, начало и конец периода. Чтобы не указывать конец периода отображения бандла, установите флажок Без даты окончания.
  7. Нажмите Далее.
  8. Проверьте настройки и нажмите кнопку Сохранить.

Настройка через методы API

Для настройки бандлов используются методы подраздела Admin из группы методов Бандлы.
Внимание
Методы из подраздела Admin не предназначены для построения каталога в магазине на клиенте. Они не должны использоваться на лендингах, в веб-магазинах и внутриигровой логике.

Добавление в бандл игрового ключа

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

Copy
Full screen
Small screen
1"content": [{
2     “sku”: “brilliant_game_sku_steam”,
3     “quantity”: 1
4  }
5]

Настройка региональных ограничений

Чтобы настроить региональные ограничения на бандл, передайте в метод Создание бандла или Обновление бандла массив объектов regions с ID регионов, в которых предмет будет доступен для продажи.

Примечание
Предварительно необходимо настроить регионы в проекте. Вы можете это сделать:
  • c помощью методов API;
  • через запрос персональному менеджеру проекта;
  • через email-адрес cms@xsolla.com.
Copy
Full screen
Small screen
1"regions": [{
2     “id”: “123”
3  }, {
4     “id”: “456”
5  }
6]

Настройка региональных цен

Чтобы настроить региональные цены для бандла, передайте в метод Создание бандла или Обновление бандла массив объектов prices с настройками цен для регионов.

Copy
Full screen
Small screen
 1"prices": [
 2      {
 3        "amount": 100,
 4        "currency": "USD",
 5        "is_enabled": true,
 6        "is_default": true
 7      },
 8      {
 9        "amount": 200,
10        "currency": "CZK",
11        "country_iso": "CZ",
12        "is_enabled": false,
13        "is_default": false
14      }
15    ]

Получение бандлов в каталоге

Для получения каталога бандлов используются методы подраздела Catalog из группы методов Бандлы.
Примечание
Методы из подраздела Catalog предназначены для построения каталога в магазине на клиенте. Для их использования авторизация не требуется.
Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Последнее обновление: 19 марта 2025

Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.

Сообщите о проблеме
Мы постоянно улучшаем качество нашей документации. Ваш отзыв поможет нам в этом.
Укажите email-адрес, чтобы мы могли связаться с вами
Спасибо за обратную связь!
Не получилось отправить ваш комментарий
Попробуйте еще раз позже или напишите нам на doc_feedback@xsolla.com.