> For the complete documentation index, see [llms.txt](https://docs.candy-smith.com/main/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.candy-smith.com/main/match-3-kit-home-design/customization/settings/shop-settings.md).

# Shop settings

<figure><img src="/files/ZyqHbKEXrbiI9bxb1dvm" alt=""><figcaption></figcaption></figure>

`CoinsShopSettings` is the shop catalog. It does not contain the price or rewards of each product; it references the bundle assets that the coins shop displays.

* `Watch Ad Bundle` — bundle granted after a successful rewarded ad;
* `Shop Bundles` — purchasable bundles displayed in the shop.

The order of `Shop Bundles` is the display order in the coins shop. Remove a bundle from this list to hide it without deleting its asset.

The asset is:

`Assets/HomeDesignMatch3Kit/Resources/Settings/ShopSettings/CoinsShopSettings.asset`

The referenced product IDs must match the products configured in the Unity IAP provider. Test both the purchase flow and the rewarded-ad flow on a device or supported test environment.

### Coin bundles

Coin bundles are `ShopBundleScriptable` assets whose main reward is the `Coins` resource. The included project examples are stored in:

`Assets/HomeDesignMatch3Kit/Resources/Settings/ShopSettings/CoinsBundle*.asset`

Typical coin bundle fields are:

* `Bundle Name` — internal or display name, for example `100 Coins`;
* `Pack Elements` — the coin pack item and the number of coins granted;
* `Product ID` — the Unity IAP product assigned to the bundle;
* `Price` — fallback price shown in the Editor and when a localized store price is unavailable;
* `View Prefab` — UI prefab instantiated as the shop row;
* `Rewarded Ad Reference` — leave empty for a paid bundle.

For a coin bundle, add a `PackElementScriptable` whose `Resource` is `Coins`, then set its quantity in `Pack Elements`. The shop uses the first coin entry to calculate the main quantity displayed for the bundle.

#### Create or edit a coin bundle

1. Select an existing `CoinsBundle*.asset`, or create a `Shop Bundle` asset from `Assets > Create > HomeDesignMatch3Kit > Shop > Bundle`.
2. Set `Bundle Name`.
3. Add the coin `PackElementScriptable` to `Pack Elements` and set the quantity.
4. Assign a unique `Product ID` that exists in the Unity IAP configuration.
5. Set `Price` and assign the correct `View Prefab`.
6. Add the bundle to `CoinsShopSettings > Shop Bundles`.
7. Test that the displayed amount, localized price, purchase, and reward are correct.

Coin bundles can contain additional pack elements, but keep the main coin entry clear so that the shop quantity label remains meaningful.

###

### Shop bundle settings

Shop bundle assets define individual entries used by the coins shop. A shop bundle can contain coins, boosters, lives, or other `PackElementScriptable` rewards. The same asset type is used for coin bundles; coin bundles are simply configured with a `Coins` reward as their primary content.

* `Bundle Name` — display name;
* `Pack Elements` — resources and quantities granted by the bundle;
* `Product ID` — Unity IAP product reference;
* `Price` — price displayed by the shop;
* `View Prefab` — visual representation of the bundle in the shop;
* `Rewarded Ad Reference` — rewarded ad used for ad-based bundles;
* `Badge Type` — `Most Popular`, `Best Deal`, or `Hidden`;
* badge sprites and text materials — visuals used for the selected badge type.

#### Shop bundle types

**Paid shop bundle**

A paid bundle requires:

* a `Product ID` that matches a store product;
* a `Price` used as the fallback display price;
* a `View Prefab` containing the supported shop-bundle UI;
* one or more entries in `Pack Elements`.

When a player completes the purchase, the configured pack elements are granted and the shop popup closes.

**Watch-ad bundle**

The free watch-ad bundle is assigned to `CoinsShopSettings > Watch Ad Bundle` and normally contains:

* `Product ID` left empty;
* `Price` set to a descriptive value such as `FREE`;
* `Rewarded Ad Reference` assigned to a rewarded ad;
* `Pack Elements` containing the reward, usually coins;
* a `View Prefab` containing a `RewardedButtonHandler`.

The reward is granted only after the rewarded ad completes successfully. The view prefab must be compatible with the `ShopBundle` component.

**Non-consumable bundle**

For a non-consumable product such as `No Ads`, assign a non-consumable `Product ID`. After the product is recorded as purchased, the corresponding shop item is hidden on subsequent shop openings.

#### Bundle badges

Set `Badge Type` to:

* `Most Popular` — displays the most-popular badge;
* `Best Deal` — displays the best-deal badge;
* `Hidden` — hides the badge.

Assign the matching badge sprite and text material when using a visible badge. Badge text uses the localization keys `MOST_POPULAR` and `BEST_DEAL`.

#### Add a shop bundle to the shop

1. Create or edit the `ShopBundleScriptable` asset.
2. Configure its pack elements, product information, price, and view prefab.
3. Add the asset to `CoinsShopSettings > Shop Bundles`.
4. Place the list in the desired display order.
5. Verify that the view prefab contains a `ShopBundle` component.
6. Test the item in Play Mode and then in the store's test environment.

Paid bundles require a valid `Product ID` and a matching product configuration in the store dashboard. Use `Rewarded Ad Reference` only for ad-based bundles.
