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

# Discount Codes

> Create discount codes and control who can save, when, and how much.

Discount codes are a great way to encourage players to make a purchase — during an event, a holiday, or a promotion on Discord. This is where you manage all of your codes, create new ones, and decide exactly how each one should work.

<Frame caption="Discount code creation form with a live preview">
  <img src="https://mintcdn.com/andcze/6Qp9zwUm8VUzRssf/images/panel/discounts.png?fit=max&auto=format&n=6Qp9zwUm8VUzRssf&q=85&s=7076b8f20b626d2d89435da4511e68c0" alt="Discount code creation panel" width="1280" height="720" data-path="images/panel/discounts.png" />
</Frame>

## List of discount codes

When you open **Discount codes**, the first thing you'll see is a list of all the codes you already have. Each row is a single code, and the columns show the most important information at a glance:

<Columns cols={2}>
  <Card title="Code" icon="ticket">
    The password a player types in at checkout (e.g. `SUMMER2026`).
  </Card>

  <Card title="Discount" icon="percent">
    The size of the discount — a percentage (e.g. `10%`) or a fixed amount in your currency.
  </Card>

  <Card title="Scope" icon="layers">
    What the code applies to: **Entire store**, **Servers**, or **Products**.
  </Card>

  <Card title="Usage" icon="hashtag">
    How many times the code has already been used compared to its limit, e.g. `12 / 100`.
  </Card>

  <Card title="Expires" icon="calendar">
    The date through which the code is valid. If there's none, you'll see `—`.
  </Card>

  <Card title="Status" icon="circle-check">
    An **Active** (green) or **Inactive** (gray) badge.
  </Card>
</Columns>

On the right-hand side of each row you'll find buttons:

<Columns cols={2}>
  <Card title="Edit" icon="pencil">
    Opens a form with the code's current settings, where you can change anything.
  </Card>

  <Card title="Delete" icon="trash">
    Removes the code. A confirmation prompt appears first — the code only "disappears" after you click **Delete**. This action can't be undone.
  </Card>
</Columns>

<Note>
  If you work as part of a team, only people who have been granted the right permissions will see the **Edit** and **Delete** buttons. A teammate without permissions will see the list, but won't be able to change or remove any codes.
</Note>

### When you don't have any codes yet

If the list is empty, you'll see the message **"No discount codes"** with a prompt to add your first one. This is normal at the start — just click **Add code** at the top and walk through the form described below.

## Code validator — test a code before a player does

Above the list you'll find a handy tool: the **Code validator**. It lets you check whether a particular code will work for an order of a given value — before a player ever tries it. It's the best way to make sure your promotion really works the way you want.

<Steps>
  <Step title="Enter the code">
    In the **Code** field, type the password you want to check (e.g. `SUMMER2026`). Capitalization doesn't matter — the system converts it to uppercase for you.
  </Step>

  <Step title="Enter the order value">
    In the **Order value (PLN)** field, type an example cart amount, e.g. `100`.
  </Step>

  <Step title="Check the result">
    The result appears right below, immediately.
  </Step>
</Steps>

The result can go one of two ways:

<Columns cols={2}>
  <Card title="The code is valid" icon="circle-check">
    You'll see **how big the discount is** and **what the price will be after the discount** for the amount you entered. That's a sign the code works.
  </Card>

  <Card title="The code is invalid" icon="circle-x">
    You'll see the **reason** the code won't work — for example, it expired, it ran out of uses, or the order didn't reach the minimum value.
  </Card>
</Columns>

<Tip>
  Right after creating a new code, test it in the validator using a few different amounts (e.g. a small one and a large one). That way you'll check whether the conditions — minimum order value and maximum discount amount — work the way you planned.
</Tip>

## How to create a discount code

To add a new code, click the **Add code** button above the list. A separate page opens with the form and a **live preview** at the top. You can return to the list at any time with the **Back** button (without saving).

<Steps>
  <Step title="Enter the code">
    In the **Code** field, type the password players will enter at checkout, e.g. `SUMMER2026` or `DISCORD10`. Only **uppercase letters, digits, and the `_` and `-` characters** are allowed (up to 50 characters). A short, simple code is easier to remember.
  </Step>

  <Step title="Add a description (optional)">
    In the **Description** field you can jot down a short note for yourself and your team, e.g. "Summer promo — 10% off everything" or "Code from the YouTube video". It's an internal note — players won't see it. This field isn't required.
  </Step>

  <Step title="Choose the scope">
    Decide what the discount applies to: the entire store, selected servers, or selected products (see the **Discount scope** section below).
  </Step>

  <Step title="Set the discount type and value">
    Choose whether the discount should be a **percentage** or a **fixed amount**, and enter its size (the **Discount value** section).
  </Step>

  <Step title="Set validity and usage limit">
    Provide an **expiration date** and a **usage limit** — both fields are required (the **Validity and usage limit** section).
  </Step>

  <Step title="Add conditions (optional)">
    If you'd like, set a minimum order value and a maximum discount amount (the **Order conditions** section).
  </Step>

  <Step title="Save">
    Take one more look at the live preview and click **Add code**. From that moment on, players can use it at checkout.
  </Step>
</Steps>

## Live preview

At the top of the form you'll see a **live preview** — a short summary of what you're setting up. It updates in real time as you fill in the fields, for example:

> **Preview: −10% on the entire store · valid until 2026-12-31 · limit of 100 uses**

This lets you see right away how your code will work in practice, even before you save it. It's a good way to catch a mistake before players start using the code. If you choose a scope of servers or products, the preview will also show the **number of selected items**.

## Discount scope — what the code applies to

In the **Discount scope** section you decide what the code will work on. You have three options:

<Columns cols={3}>
  <Card title="Entire store">
    The discount covers all products across all servers. The simplest option — perfect for general promotions.
  </Card>

  <Card title="Selected servers">
    The discount only works on products from the servers you choose. Once you pick this option, a list of servers to check appears.
  </Card>

  <Card title="Selected products">
    The discount applies only to specific products. A list appears where you check the products the code covers.
  </Card>
</Columns>

### How to select servers or products

When you choose **Selected servers** or **Selected products**, a **list with checkboxes** appears below. You simply click the names of the items you want the code to cover — a checkmark appears next to each one you select. Next to the heading you'll see a **counter of selected** items.

<Note>
  You select servers and products **by name** — the same name you see in the panel. You don't have to remember any numbers or identifiers.
</Note>

<Warning>
  If you choose a scope of servers or products, you must select **at least one item**. Without that, the code can't be saved — a message will appear asking you to pick a target.
</Warning>

## Discount value — type and size

In the **Discount value** section you decide how the code lowers the price. First you choose the **Type**, then you enter the **Value**:

<Columns cols={2}>
  <Card title="Percentage (%)">
    The discount is a percentage off the price, e.g. **10%**. On pricier orders the player saves more. The value can't exceed **100**.
  </Card>

  <Card title="Fixed amount (PLN)">
    The discount is a fixed amount, e.g. **5**, subtracted from the order price.
  </Card>
</Columns>

In the **Value** field, type a number — for a percentage discount that's the number of percent (e.g. `10`), and for a fixed-amount discount it's the amount of money (e.g. `20`). You can use decimals. This field is **required**.

<Note>
  The field label changes depending on the type: for a percentage discount you'll see **Value (%)**, and for a fixed amount **Value (PLN)**. That way you always know what you're entering.
</Note>

## Validity and usage limit

<Columns cols={2}>
  <Card title="Expiration date" icon="calendar">
    Set how long the code should stay valid — you pick a date from the calendar. After that date the code stops working automatically; you don't have to remember it or turn it off by hand. This field is **required**.
  </Card>

  <Card title="Usage limit" icon="hashtag">
    Set how many times the code can be used in total, e.g. **100**. Once the limit is reached, the code stops working. This field is **required** (minimum 1).
  </Card>
</Columns>

<Tip>
  These two fields are your protection against abuse. Thanks to them, the code doesn't "live" forever and won't be used more times than you planned. On the code list you can see in real time how many times a code has already been used.
</Tip>

## Order conditions

The **Order conditions** section contains two optional fields that give you precise control over when the discount kicks in and how big it can get:

<Columns cols={2}>
  <Card title="Min. order value (PLN)">
    The discount only kicks in once the order reaches a certain amount, e.g. **20** or more. Great for encouraging bigger purchases. Leave it at `0` or empty if you don't want a threshold.
  </Card>

  <Card title="Max. discount amount (PLN)">
    An upper limit on savings — even on a large order, the discount won't exceed the amount you set. This field is especially useful for percentage discounts, so you don't give away too much.
  </Card>
</Columns>

## Editing an existing code

To change a code, click **Edit** next to it on the list. The same form opens, but with a few differences:

<Columns cols={2}>
  <Card title="The code is locked" icon="lock">
    The code password itself **can no longer be changed** once created — the code field doesn't appear in edit mode. You can freely change all the other settings (scope, value, dates, limits, conditions).
  </Card>

  <Card title="The 'Active' toggle" icon="toggle-right">
    In edit mode there's an added **Status** section with an **Active** toggle. Turn it off to temporarily pause the code without deleting it.
  </Card>
</Columns>

<Tip>
  If you want to pause a promotion for a while (e.g. until the next event), don't delete the code — just **edit it and turn off the "Active" toggle**. You can switch it back on later, and the existing usage and settings will be preserved. A code with the **Inactive** status won't work at checkout.
</Tip>

<Note>
  Want to change the code password itself? You can't do that while editing — create a new code with a new password and (if needed) delete the old one.
</Note>

## Frequently asked questions

<AccordionGroup>
  <Accordion title="A player says the code doesn't work — what should I check?">
    Use the **Code validator** at the top of the page: enter the code and the order value. The result will tell you directly whether the code is valid, and if not, it will give the reason (e.g. it expired, ran out of uses, or the order didn't reach the minimum value). Also check on the list whether the code has the **Active** status.
  </Accordion>

  <Accordion title="Can I change the code password itself?">
    No. Once created, the code password is fixed — the code field doesn't appear in edit mode. If you need a different password, create a new code and optionally delete the old one.
  </Accordion>

  <Accordion title="How is 'Inactive' different from deleting a code?">
    Turning off the **Active** toggle only pauses the code — you can switch it back on at any time, and the settings and usage counter stay. Deleting removes the code permanently, and that action can't be undone.
  </Accordion>

  <Accordion title="What happens when a code reaches its usage limit or expiration date?">
    The code automatically stops working — players won't be able to apply it at checkout. You don't have to do anything by hand. You'll still see it on the list, so if needed you can raise the limit or push the date back while editing.
  </Accordion>

  <Accordion title="I chose a product scope, but I can't save the code.">
    With a scope of **Selected servers** or **Selected products**, you have to select at least one item from the list. Without that, the code won't save — you'll be asked to pick a target.
  </Accordion>
</AccordionGroup>

## Best practices

<Tip>
  **Create clear codes.** A short password made of uppercase letters and digits (e.g. `SPRING15`) is easier to remember and type than a random string of characters. Players are less likely to make a typo, and you'll spot the code on the list more easily.
</Tip>

<Warning>
  **Always set a sensible usage limit and expiration date.** Both fields are required precisely so the code doesn't circulate online forever. A generous but time-limited code is a safe promotion.
</Warning>

<Tip>
  For percentage discounts, it's worth adding a **maximum discount amount**. That way even a large order won't cut your revenue more than you intend.
</Tip>

<Tip>
  **Test every new code in the validator** before you announce it to players. Check a small and a large amount to make sure the thresholds and limits work the way you want.
</Tip>

<Tip>
  **Add a description to each code.** A short note ("Discord promo", "Halloween event") helps you and your team quickly recognize what a given code was made for — especially when you have a lot of them.
</Tip>
