API

CBSStoreModule.GetStoreTitles - Get all store title available for player. Get short stores information without items.

using CBS;
using CBS.Models;
using UnityEngine;

public class StoreExample : MonoBehaviour
{
    private IStore Store { get; set; }

    private void Start()
    {
        Store = CBSModule.Get<CBSStoreModule>();

        Store.GetStoreTitles(OnGet);
    }

    private void OnGet(CBSGetStoreTitlesResult result)
    { 
        if (result.IsSuccess)
        {
            var titles = result.StoreTitles;
            foreach (var title in titles)
            {
                var storeID = title.ID;
                var storeDisplayName = title.DisplayName;
                var storeDescription = title.Description;

                var customData = title.GetCustomData<CBSStoreCustomData>();
            }
        }
        else
        {
            Debug.Log(result.Error.Message);
        }
    }
}

CBSStoreModule.GetStores - Get all stores available for player.

using CBS;
using CBS.Models;
using UnityEngine;

public class StoreExample : MonoBehaviour
{
    private IStore Store { get; set; }

    private void Start()
    {
        Store = CBSModule.Get<CBSStoreModule>();

        Store.GetStores(OnGet);
    }

    private void OnGet(CBSGetStoresResult result)
    { 
        if (result.IsSuccess)
        {
            var stores = result.Stores;
            foreach (var store in stores)
            {
                var storeID = store.ID;
                var storeDisplayName = store.DisplayName;
                var storeDescription = store.Description;
                var customData = store.GetCustomData<CBSStoreCustomData>();

                var items = store.Items;
                foreach (var item in items)
                {
                    var itemID = item.ItemID;
                    var itemStoreID = item.StoreID;
                    var itemDisplayName = item.DisplayName;
                    var itemDescription = item.Description;
                    var hasQuantityLimit = item.HasQuantityLimit;
                    var limitation = item.Limitation;
                    var discounts = item.Discounts;
                    var prices = item.Prices;
                    var itemCustomData = item.GetCustomData<CBSStoreItemCustomData>();
                }
            }
        }
        else
        {
            Debug.Log(result.Error.Message);
        }
    }
}

CBSStoreModule.GetStoreByID - Get store by id if avalilable for player.

using CBS;
using CBS.Models;
using UnityEngine;

public class StoreExample : MonoBehaviour
{
    private IStore Store { get; set; }

    private void Start()
    {
        Store = CBSModule.Get<CBSStoreModule>();

        var storeID = "storeID";
        Store.GetStoreByID(storeID, OnGet);
    }

    private void OnGet(CBSGetStoreResult result)
    { 
        if (result.IsSuccess)
        {
            var store = result.Store;
            var storeID = store.ID;
            var storeDisplayName = store.DisplayName;
            var storeDescription = store.Description;
            var customData = store.GetCustomData<CBSStoreCustomData>();

            var items = store.Items;
            foreach (var item in items)
            {
                var itemID = item.ItemID;
                var itemStoreID = item.StoreID;
                var itemDisplayName = item.DisplayName;
                var itemDescription = item.Description;
                var hasQuantityLimit = item.HasQuantityLimit;
                var limitation = item.Limitation;
                var discounts = item.Discounts;
                var prices = item.Prices;
                var itemCustomData = item.GetCustomData<CBSStoreItemCustomData>();
            }
        }
        else
        {
            Debug.Log(result.Error.Message);
        }
    }
}

CBSStoreModule.GetStoreItemByID - Get specific item information from store.

using CBS;
using CBS.Models;
using UnityEngine;

public class StoreExample : MonoBehaviour
{
    private IStore Store { get; set; }

    private void Start()
    {
        Store = CBSModule.Get<CBSStoreModule>();

        var storeID = "storeID";
        var itemID = "store item id";
        Store.GetStoreItemByID(storeID, itemID, OnGet);
    }

    private void OnGet(CBSGetStoreItemResult result)
    { 
        if (result.IsSuccess)
        {
            var item = result.Item;
            var itemID = item.ItemID;
            var itemStoreID = item.StoreID;
            var itemDisplayName = item.DisplayName;
            var itemDescription = item.Description;
            var hasQuantityLimit = item.HasQuantityLimit;
            var limitation = item.Limitation;
            var discounts = item.Discounts;
            var prices = item.Prices;
            var itemCustomData = item.GetCustomData<CBSStoreItemCustomData>();
        }
        else
        {
            Debug.Log(result.Error.Message);
        }
    }
}

CBSStoreModule.PurchaseStoreItem - Purchase store item with currencies.

using CBS;
using CBS.Models;
using UnityEngine;

public class StoreExample : MonoBehaviour
{
    private IStore Store { get; set; }

    private void Start()
    {
        Store = CBSModule.Get<CBSStoreModule>();

        var storeID = "storeID";
        var itemID = "store item id";
        var currencyCode = "GD";
        var cuurencyValue = 100;
        Store.PurchaseStoreItem(itemID, storeID, currencyCode, cuurencyValue, OnPurchase);
    }

    private void OnPurchase(CBSPurchaseStoreItemResult result)
    { 
        if (result.IsSuccess)
        {
            var itemID = result.ItemID;
            var purchasedInstances = result.PurchasedInstances;
            var purchasedCurrencies = result.PurchasedCurrencies;
            var priceCode = result.PriceCode;
            var priceValue = result.PriceValue;
            var storeID = result.StoreID;
            var limitationInfo = result.LimitationInfo;
        }
        else
        {
            Debug.Log(result.Error.Message);
        }
    }
}

CBSStoreModule.PurchaseStoreItemWithRealMoney - Purchase store item with real money. Required "CBSIAP" module enabled.

using CBS;
using CBS.Models;
using UnityEngine;

public class StoreExample : MonoBehaviour
{
    private IStore Store { get; set; }

    private void Start()
    {
        Store = CBSModule.Get<CBSStoreModule>();

        var storeID = "storeID";
        var itemID = "store item id";
        Store.PurchaseStoreItemWithRealMoney(itemID, storeID, OnPurchase);
    }

    private void OnPurchase(CBSPurchaseStoreItemWithRMResult result)
    { 
        if (result.IsSuccess)
        {
            var transactionID = result.TransactionID;
            var itemID = result.ItemID;
            var purchasedInstances = result.PurchasedInstances;
            var purchasedCurrencies = result.PurchasedCurrencies;
            var storeID = result.StoreID;
            var limitationInfo = result.LimitationInfo;
        }
        else
        {
            Debug.Log(result.Error.Message);
        }
    }
}

CBSStoreModule.RevokeItemStoreLimitation - Revoke quantity limitation of item for player.

using CBS;
using CBS.Models;
using UnityEngine;

public class StoreExample : MonoBehaviour
{
    private IStore Store { get; set; }

    private void Start()
    {
        Store = CBSModule.Get<CBSStoreModule>();

        var storeID = "storeID";
        var itemID = "store item id";
        Store.RevokeItemStoreLimitation(storeID, itemID, OnRevoke);
    }

    private void OnRevoke(CBSRevokeLimitationResult result)
    { 
        if (result.IsSuccess)
        {
            var itemID = result.ItemID;
            var storeID = result.StoreID;
        }
        else
        {
            Debug.Log(result.Error.Message);
        }
    }
}

CBSStoreModule.GetSpecialOffers - Get all special offers available for profile. Included "global offers" and "profile offers".

using CBS;
using CBS.Models;
using UnityEngine;

public class StoreExample : MonoBehaviour
{
    private IStore Store { get; set; }

    private void Start()
    {
        Store = CBSModule.Get<CBSStoreModule>();

        Store.GetSpecialOffers(OnGet);
    }

    private void OnGet(CBSGetSpecialOffersResult result)
    {
        if (result.IsSuccess)
        {
            var offers = result.Offers;
            foreach (var offer in offers)
            {
                var item = offer;
                var itemID = item.ItemID;
                var itemStoreID = item.StoreID;
                var itemDisplayName = item.DisplayName;
                var itemDescription = item.Description;
                var hasQuantityLimit = item.HasQuantityLimit;
                var limitation = item.Limitation;
                var discounts = item.Discounts;
                var prices = item.Prices;
                var itemCustomData = item.GetCustomData<CBSStoreItemCustomData>();

                var offerInstanceID = offer.OfferInstanceID;
                var hasTimeLimit = offer.HasTimeLimit;
                var duration = offer.Duration;
                var offerEndDate = offer.OfferEndDate;
            }
        }
        else
        {
            Debug.Log(result.Error.Message);
        }
    }
}

CBSStoreModule.GrantSpecialOfferToProfile - Grant special offer for profile. Required itemID from "Profile Special offers" section.

using CBS;
using CBS.Models;
using UnityEngine;

public class StoreExample : MonoBehaviour
{
    private IStore Store { get; set; }

    private void Start()
    {
        Store = CBSModule.Get<CBSStoreModule>();

        var specialOfferItemID = "item id";
        Store.GrantSpecialOfferToProfile(specialOfferItemID, OnGrant);
    }

    private void OnGrant(CBSSpecialOfferResult result)
    {
        if (result.IsSuccess)
        {
            var item = result.Offer;
            var itemID = item.ItemID;
            var itemStoreID = item.StoreID;
            var itemDisplayName = item.DisplayName;
            var itemDescription = item.Description;
            var hasQuantityLimit = item.HasQuantityLimit;
            var limitation = item.Limitation;
            var discounts = item.Discounts;
            var prices = item.Prices;
            var itemCustomData = item.GetCustomData<CBSStoreItemCustomData>();

            var offerInstanceID = item.OfferInstanceID;
            var hasTimeLimit = item.HasTimeLimit;
            var duration = item.Duration;
            var offerEndDate = item.OfferEndDate;
        }
        else
        {
            Debug.Log(result.Error.Message);
        }
    }
}

Last updated