> ## Documentation Index
> Fetch the complete documentation index at: https://docs.minestorecms.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Incremental Pricing

> Change a package price on each repeat purchase by the same player — discourage farming, encourage variety, or reward loyalty.

## **Introduction**

**Incremental Pricing** lets you define a **step ladder** of prices for the same package. The price a player sees depends on how many times **they** have already bought that package. After an optional reset window, the counter falls back to step 1.

<Check>
  Use it to **discourage repeat farming** (each subsequent purchase costs more), to **reward loyalty** (each next purchase is cheaper), or simply to push players toward variety in your store.
</Check>

<Info>
  The step counter is **per player**, not global. Two different players each see the package at its **Step 1** price for their first purchase, regardless of how many other players have bought it.
</Info>

## **How It Works**

1. You define **N steps** for the package. Each step has either a **fixed price** or a **discount %** off the base price.
2. When a player checks out, the platform counts that player's previous completed purchases of this package.
3. The **next step in line** is applied. After the last step is reached, every further purchase uses the **last step's price** indefinitely.
4. If a **reset window** is configured, completed purchases older than the window are ignored — the counter resets back to Step 1.

<Info>
  **Gifts count too.** A purchase counts toward the **recipient's** counter, not the buyer's, when the package is bought as a gift.
</Info>

## **Configuring Incremental Pricing**

<Steps>
  <Step title={'Open the Package'}>
    Go to **Packages** in the sidebar and open the package you want to configure.
  </Step>

  <Step title={'Switch to the Others Tab'}>
    Open the **Others** tab on the package edit screen.
  </Step>

  <Step title={'Enable Incremental Pricing'}>
    Toggle **Incremental Pricing** on. The configuration panel appears.
  </Step>

  <Step title={'Configure Steps'}>
    Click **+ Add Step** to add a row. For each row, fill in either a **Price** in your store's base currency, or a **Discount %** off the package's normal price.
  </Step>

  <Step title={'Set the Reset Window'}>
    Pick a **Reset window value** and **unit** (Minute / Hour / Day / Week / Month / Year), or choose **No Period** to make the escalation permanent.
  </Step>

  <Step title={'Save Changes'}>
    Click **Save** at the bottom of the page.
  </Step>
</Steps>

## **Step Fields**

| **Field**      | **Meaning**                                                                                                    |
| -------------- | -------------------------------------------------------------------------------------------------------------- |
| **Step #**     | Order in the ladder. Step 1 applies to the player's first purchase, Step 2 to the second, and so on.           |
| **Price**      | Fixed full price charged for this step, in your store's base currency. Leave at `0` to use a discount instead. |
| **Discount %** | Optional percentage off the package's normal price for this step (applied when **Price** is `0`).              |

<Warning>
  The **last step's price is reused** for every further purchase past the ladder. If you want unlimited escalation, add more steps.
</Warning>

## **Reset Window**

| **Reset Unit**                            | **Effect**                                                                                        |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------- |
| **No Period**                             | Permanent. A player's step level **never** resets.                                                |
| **Minute**                                | Step counter resets after `N` minutes since the player's last completed purchase of this package. |
| **Hour**                                  | Same as above, in hours.                                                                          |
| **Day** / **Week** / **Month** / **Year** | Same, in larger units.                                                                            |

<Info>
  The reset window is anchored to the **last completed payment's `updated_at`**, not to a fixed wall-clock interval. A player who keeps buying within the window never resets; one who stops will fall back to Step 1 after the window elapses.
</Info>

## **Regional Pricing per Step**

If your package uses **Regional Pricing**, each step can also have its own per-region override. Click the **globe icon** next to the step's price to configure country- or continent-specific prices for that step.

| **Region Match** | **Behaviour**                                                                  |
| ---------------- | ------------------------------------------------------------------------------ |
| **Country**      | If a country override exists for the buyer's country at this step, it is used. |
| **Continent**    | Used as a fallback when no country override matches.                           |
| **No match**     | The step's base price (or discount-off-base) is used.                          |

## **Behaviour in the Cart**

* The cart shows the **next step's price** as the unit price for an authenticated player.
* For **guests** (no username yet), the cart shows the **Step 1** price.
* For **multi-quantity** orders, each unit in the quantity may land on a **different step**: e.g. buying 3 when the player is at Step 2 charges Step 2 + Step 3 + Step 4.

<Warning>
  Incremental Pricing **interacts** with **Sales**, **Coupons** and **Perks**. The step price is the **base** to which discounts are then applied, in the order configured by your discount-stacking rules.
</Warning>
