Виртуальные предметы
Как это работает
Виртуальные предметы представляют собой внутриигровой контент, который можно продавать за реальную или виртуальную валюту.
Основные возможности:
- Настройка цен в реальной и виртуальной валюте.
- Настройка каталога с одним или несколькими уровнями вложенности.
- Автоматическое определение валюты и страны пользователя.
- Ограничение количества доступных для покупки предметов.
- Ограничение времени отображения предметов в магазине.
- Бесплатные товары.
Особенности настройки цен:
- Для одного предмета может быть указана цена и в реальной, и в виртуальной валюте.
- Возможно указать цены в нескольких реальных или виртуальных валютах, при этом для группы цен нужно выбрать одну валюту по умолчанию.
- Можно создать предмет без указания цены в реальной или виртуальной валюте. Если для такого предмета включено отображение в магазине, он будет доступен пользователям бесплатно.
Ограничения настройки цен:
- Нельзя создать предмет с нулевой ценой.
Виртуальные предметы делятся на три типа:
Расходуемые виртуальные предметы
Расходуемый предмет — это предмет в инвентаре, который можно накапливать и покупать многократно. После использования его количество уменьшается.
Основные возможности:
- Пополнение количества предметов в инвентаре.
- Хранение множества единиц предмета в инвентаре пользователя.
- Можно расходовать с клиента игры.
Пример: Гранаты, патроны и т. д.
Нерасходуемые виртуальные предметы
Нерасходуемый предмет — это предмет в инвентаре, который можно начислить или купить только один раз.
Основные возможности:
- Хранение предмета в инвентаре пользователя в единственном экземпляре.
- Нельзя расходовать с клиента игры, изымается из инвентаря только серверным методом.
Пример: Доступ к локациям, статусы персонажа, косметические улучшения, предустановленные
Предметы с ограниченным сроком действия
Предмет с ограниченным сроком действия — это бонус, который пользователь покупает разово и должен будет купить повторно, когда срок действия предмета закончится.
Основные возможности:
- После окончания периода действия становится неактивным.
- Чтобы активировать повторно, пользователь должен снова купить такую подписку.
Пример:
Подробная информация приведена в рецепте Предметы с ограниченным сроком действия.
Ограничение количества доступных для покупки предметов
Вы можете ограничить покупку предметов. Например, вы можете продавать:
- ограниченное количество предметов одному пользователю;
- приветственные предметы, которые доступны к покупке только один раз.
Если пользователь купил все товары в рамках заданного ограничения, предмет не будет отображаться в каталоге.
Вы можете отобразить в интерфейсе максимальное доступное количество предметов и оставшееся количество предметов, которое доступно пользователю.
Чтобы задать ограничение на покупку, при создании предмета в Личном кабинете установите переключатель Ограничивать покупку предмета пользователем в положение Вкл и укажите доступное для покупки количество.
Вы можете получить информацию о предметах, используя методы подраздела Catalog из группы методов Виртуальные предметы и валюта.
В ответе, кроме информации о виртуальном предмете, вы получите следующую информацию:
- максимальное количество предметов, которое может купить пользователь;
- оставшееся количество предметов, доступное пользователю для покупки.
Подробнее о том, как настроить или обновить ограничения, вы можете прочитать в инструкции Ограничения для пользователя.
Для неавторизованного пользователя всегда отображается максимальное количество товаров, которое он может купить. Чтобы отобразить пользователю оставшееся количество товаров с учетом действующего ограничения, необходимо передавать данные авторизации пользователей на этапе запроса каталога товаров с использованием методов подраздела Catalog из группы методов Виртуальные предметы и валюта.
Для корректного отображения количества товаров, которое доступно пользователю, необходимо настроить аутентификацию.
- json
{
"items": [
{
"sku": "big_rocket",
"name": "Big Rocket",
"groups": [
{
"external_id": "accessory",
"name": "Accessory"
}
],
"attributes": [
{
"external_id": "stack_size",
"name": "Stack size",
"values": [
{
"external_id": "size_e3364991f92e751689a68b96598a5a5a84010b85",
"value": "5"
}
]
}
],
"type": "virtual_good",
"description": "Big Rocket - description",
"image_url": "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png",
"is_free": false,
"price": {
"amount": "100.99",
"amount_without_discount": "100.99",
"currency": "USD"
},
"virtual_prices": [
{
"amount": 100,
"sku": "vc_test",
"is_default": true,
"amount_without_discount": 100,
"image_url": "http://image.png",
"name": "SHOTGUN FOR TRUE RAIDERS",
"type": "virtual_currency",
"description": "description"
}
],
"can_be_bought": true,
"inventory_options": {
"consumable": {
"usages_count": 1
},
"expiration_period": {
"type": "day",
"value": 1
}
},
"virtual_item_type": "non_renewing_subscription",
"limits": {
"per_user": {
"total": 5,
"available": 5
},
"per_item": null
},
}
Xsolla контролирует соблюдение ограничений и не позволяет пользователям приобрести количество товаров, которое превышает заданное ограничение.
При открытии платежного интерфейса и оплате предмета все неоплаченные заказы с этим товаром становятся недействительными.
Пример: пользователь может открыть форму оплаты товара с ограничением на покупку в нескольких вкладках браузера, пока товар не был куплен. Это автоматически приводит к созданию нескольких заказов на один товар. После покупки товара на одной вкладке Xsolla аннулирует все неоплаченные заказы с товаром.
Ограничение времени отображения товаров в магазине
Вы можете указать период отображения товаров в магазине, чтобы:- поддерживать актуальность каталога в заданное время, например, во время праздничных распродаж;
- создать товар заранее, не отображая его в каталоге;
- мотивировать пользователей к покупке с помощью таймера, который может отображаться рядом с товаром.
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
.
Вы можете настроить несколько периодов отображения предмета в магазине. Для этого передайте в методе Создание виртуального предмета или Обновление виртуального предмета массив объектов с датами начала и конца всех периодов.
Пример:
"periods": [
{
"date_from": "2022-06-10T14:00:00+03:00",
"date_until": "2022-06-30T14:00:00+03:00"
},
{
"date_from": "2022-07-10T14:00:00+03:00",
"date_until": "2022-07-30T14:00:00+03:00"
},
{
"date_from": "2022-08-10T14:00:00+03:00",
"date_until": "2022-08-30T14:00:00+03:00"
}
]
Для кого подходит
- Для партнеров, которые хотят настроить игровую экономику или монетизацию путем добавления в игру внутриигровой валюты и продажи за нее внутриигровых предметов.
- Для партнеров, которые уже подключили In-Game Store и хотят настроить новый тип товара — виртуальные предметы.
Как настроить
Сценарий интеграции
Настройка виртуальных предметов и их групп
Для настройки виртуальных предметов необходимо настроить группы. Группы позволяют создавать многоуровневый каталог. Предметы, созданные без указания группы, попадают в отдельную группу
Виртуальные предметы и их группы можно настроить одним из следующих способов:
Настройка через Личный кабинет
Настройка через методы API
Для настройки виртуальных предметов используйте методы подразделаДля использования методов требуется базовая аутентификация. Передайте в запросе параметр Authorization:Basic <your_authorization_basic_key>
, где <your_authorization_basic_key>
— пара ID продавца:ключ API, закодированная по стандарту Base64. Значения параметров вы можете найти в Личном кабинете:
- ID продавца указан:
- В разделе Настройки компании > Компания.
- Aдресной строке браузера на любой странице Личного кабинета. URL-адрес имеет вид
https://publisher.xsolla.com/<merchant ID>/<Publisher Account section>
.
- Ключ API отображается в Личном кабинете только при создании и должен храниться на вашей стороне. Создать ключ можно в разделах:
- Настройки компании > Ключи API;
- Настройки проекта > Ключи API.
Подробная информация о работе с ключами API приведена в справочнике API.
Основные рекомендации:
- Сохраните созданный ключ API на вашей стороне. Вы можете посмотреть ключ API в Личном кабинете только один раз при его создании.
- Никому не сообщайте ваш ключ API, так как он дает доступ к управлению аккаунтом и проектами в Личном кабинете.
- Ключ API должен храниться на вашем сервере и никогда — в бинарных файлах или на фронтенде.
Если необходимый метод API не включает в себя path-параметр project_id
, используйте для авторизации ключ API, который действует во всех проектах.
Для получения каталога виртуальных предметов на клиенте используйте методы подраздела
Чтобы получить весь список предметов, независимо от их групп, используйте метод external_id
.
Настройка региональных ограничений и региональных цен
Чтобы настроить региональные ограничения на виртуальные предметы, передайте в метод- http
"regions": [{
“id”: “123”
}, {
“id”: “456”
}
]
Чтобы настроить региональные цены для виртуальных предметов, передайте в метод
- http
"regional_prices": [{
“region_id”: “123”,
“country_iso”: “CHN”,
“amount”: 40,
“currency_iso”: “CNY”,
“is_default”: true,
“is_enabled”: true
}
]
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.