Version: 2017.1


class in UnityEngine.Purchasing

Switch to Manual


Represents a product that may be purchased as an In-App Purchase.

Here is an example of a sample Store class working with a Product referencs.

using System;
using UnityEngine;
using UnityEngine.Purchasing;

public class MyStoreClass : MonoBehaviour, IStoreListener { static string kProductID100Currency = "virtualcurrency_100"; IStoreController m_StoreController; void Awake() { ConfigurationBuilder builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); builder.AddProduct(kProductID100Currency, ProductType.Consumable); UnityPurchasing.Initialize(this, builder); }

public void PurchaseCurrency() { if (m_StoreController != null) { // Fetch the currency Product reference from Unity Purchasing Product product = m_StoreController.products.WithID(kProductID100Currency); if (product != null && product.availableToPurchase) { m_StoreController.InitiatePurchase(product); } } }

public void OnInitialized(IStoreController controller, IExtensionProvider extensions) { m_StoreController = controller; }

public void OnInitializeFailed(InitializationFailureReason error) {} public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e) { if (String.Equals(, kProductID100Currency, StringComparison.Ordinal)) { Debug.Log("Purchased 100 coins"); } return PurchaseProcessingResult.Complete; }

public void OnPurchaseFailed(Product item, PurchaseFailureReason r) {} }


availableToPurchaseDetermine if this product is available to purchase according to the store subsystem.
definitionFundamental immutable product properties.
hasReceiptOwned Non Consumables and Subscriptions should always have receipts.
metadataLocalized metadata provided by the store system.
receiptThe purchase receipt for this product, if owned. Otherwise null.
transactionIDA unique identifier for this product's transaction, if available. Otherwise null.

Public Functions

EqualsEquality defined for use in collections.
GetHashCodeGetHashCode defined for use in collections.