npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

extensions.unity.iap.store

v4.12.2

Published

Unity IAP (4.12.2) wrapper for simple usage

Readme

Unity IAP Store

npm openupm License Stand With Ukraine

image

Powerful Store manager for Unity project. You have codeless products management system, where you can create in-game products. Create all currencies with custom names and icons. Each product has price in single or multiple in-game currencies. Ability to create bundle of different products and sell them in single purchase. Any product can be easily swapped to IAP or back to in-game product. Fully supported IAP for iOS and Android out of the box, other platforms supported also, just need to extend fram base class and add needed to you code.

Features

  • ✔️ add custom currencies
  • ✔️ item price in multiple currencies
  • ✔️ item categorization
  • ✔️ in-app purchases supported for iOS and Android
  • ✔️ currencies management
  • ✔️ pack of multiple products by single purchase
  • ✔️ pack of multiple currencies by single purchase
  • ✔️ drawer for showing items in Unity UI with ability to override for any other UI system
  • ✔️ drawer adapter for showing all items from specific category in Unity UI with ability to override for any other UI system

How to install - Option 1 (RECOMMENDED)

How to install - Option 2

{
  "dependencies": {
    "extensions.unity.iap.store": "4.12.2",
  },
  "scopedRegistries": [
    {
      "name": "package.openupm.com",
      "url": "https://package.openupm.com",
      "scopes": [
        "extensions.unity",
        "com.cysharp.unitask",
        "com.neuecc.unirx"
      ]
    }
  ]
}

How to setup

1. Extends from StoreSO

Override at least abstract method. You should take of saving your data in persistent memory. There are basic methods required to implement in the example below.

using System;
using System.Collections.Generic;
using Sirenix.Serialization;
using UnityEngine;
using UniRx;
using Project.Store;
using BigInt = System.Numerics.BigInteger;

[CreateAssetMenu(fileName = "MyStore", menuName = "Store/MyStore")]
public class MyStore : StoreSO
{
    [OdinSerialize, NonSerialized]
    public ReactiveProperty<BigInt> balance = new ReactiveProperty<BigInt>();

    public override IObservable<Price> OnBalanceChanged(string currency)
    {
        return balance.Select(x => new Price(currency, x));
    }

    public override BigInt GetBalance(string currency)
    {
        return balance.Value;
    }

    protected override void SpendBalance(string currency, BigInt amount)
    {
        balance.Value -= amount;
    }
    protected override void ApplyPurchase(List<IStoreSellable> sellables)
    {
        // Apply purchase here
    }
}

2. Create instance of the new ScriptableObject MyStore

Create instance and do setup. You can add as many currencies as needed. Also you can use it without currencies at all, if you just need to handle in-app purchases. Unity_4gPx4Wi804

3. Add StoreInstaller to any gameObject

Unity_uV6ioqFm1l

How to show sellable item(s) in UI

This system is quite independent, but you need to show sellable items for a user, to make ability for a user to buy them. There are multiple ways to do that.

  • create prefab for drawing UI element which represent single item for selling. If you need you can use multiple prefabs for different reasons in different places
  • add StoreSellableDrawer_UGUI component to the prefab
  • bind all required elements to the component

image

It can be used for showing single sellable item.

Adapters

Adapter generates multiples items, very easy to setup all of them from single place with small amount of setup steps.

  • StoreCategoryAdapter - shows list of sellable items from specific category
  • StoreCustomAdapter - shows custom list of sellable items
  • Or create your own StoreAdapter, for that need to extand from StoreAdapter. Also you may create custom StoreSellableDrawer for any UI system in case if you don't use Unity UI.

image

How to show player's current currencies balance in UI

CurrencyBalanceDrawer_UGUI_TMP show currency balance and refreshes it when it changed.

image

How to show separate price of specific sellable item

That is easy. Just create any gameObject with Text component and add PriceDrawer on it.

image

Other

  • to execute Purchase action without sellable item drawer and/or adapter use SimplePurchaser
  • to restore non-consumable in-app purchases use SimpleInAppPurchaseRestorer

image