> ## 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.

# Products

> Add ranks, items and in-game currency: price, fulfillment commands, variants, bonus packages and images.

A product is anything a player can buy from you — a rank, a crate key, a kit or in-game currency. Every product belongs to one server and has commands that the plugin runs on that server once the order is paid.

> [!WARNING]
>
> Before adding your first product, add a [server](https://andcze.mintlify.site/en/shop/servers.md). A product can't be saved without one.

## Add a product

**1. Choose a server**

Pick the server where the purchase should be delivered. The product is tied to it in this form.

**2. Fill in the basics**

Name (e.g. "VIP Rank") and price. Optionally a **pre-sale price** — a higher, struck-through price shown next to the current one.

**3. Choose how it's sold**

**Quantity (slider)** or **Variants** — see below.

**4. Enter fulfillment commands**

At least one command, one per line. They deliver the purchase in-game.

**5. Add a description and images**

Short description (on the product card), full description (on the product page) and images — the first one is the thumbnail.

**6. Test, then activate**

Save the product as a draft, make a test purchase, and only then turn on **Active**.

## Digital content instead of commands

A product can also deliver **license keys**, a **downloadable file** or a **message** — with no plugin or game server. You pick the delivery kind in the product form; details in [Digital delivery](https://andcze.mintlify.site/en/shop/digital.md).

## Fulfillment commands

Once an order is paid, the plugin runs the product's commands in the server console, in order. You can use these placeholders:

| Placeholder | Replaced with |
| - | - |
| `{PLAYER}` | nickname of the player who bought the product |
| `{PRODUCT}` | name of the purchased product |
| `{QUANTITY}` | number of units bought (including any package bonus) |

Example for a rank and coins:

```text theme={null}
lp user {PLAYER} parent add vip
eco give {PLAYER} {QUANTITY}
broadcast {PLAYER} bought {PRODUCT}!
```

> [!WARNING]
>
> An active product with a broken command means the player pays and gets nothing. Always make a test purchase before activating — the easiest way is a 100% discount code (see [Discounts and vouchers](https://andcze.mintlify.site/en/shop/discounts.md)).

## Quantity or variants

A product is sold in one of two modes — they are mutually exclusive.

> **Quantity (slider)**
>
> The player picks the number of units; the price is per unit. For currency, points and keys. You can add bonus packages.

> **Variants**
>
> The player picks one of several ready options, e.g. "VIP 30 days" and "VIP 90 days". Each variant has its own price and, optionally, its own commands.

| Field (slider) | Meaning | Default |
| - | - | - |
| Min. quantity | smallest number of units per purchase | `1` |
| Max. quantity | largest number of units per purchase | `64` |
| Step | how much the quantity changes, e.g. `10` = 10, 20, 30… | `1` |

In **Variants** mode you can add up to 20 variants. A variant without its own commands uses the product's default commands. At least one variant with a price is required.

### Bonus packages

In slider mode you can add up to 12 **package suggestions** — ready-made tiles under the slider. Each package has a **quantity** and a **bonus** (free units). The bonus is added automatically to what the player receives, so `{QUANTITY}` in a command already includes it.

| Quantity | Bonus | Player receives |
| - | - | - |
| `500` | `0` | 500 coins |
| `1000` | `200` | 1200 coins |
| `5000` | `1500` | 6500 coins |

## Prices per payment method

By default a product can be bought with every payment method added to the shop. In the product settings you can:

* turn off selected methods for this product,
* set a **different price for a specific method** — e.g. a higher one for SMS payments with a high fee. Empty field = standard price.

In variants mode you set per-method prices on each variant separately. Methods are identified by their unique code, so two methods of the same provider (e.g. two Stripe accounts) can have different prices. More: [Payments](https://andcze.mintlify.site/en/shop/payments.md).

## Images

Upload an image from your disk or provide the URL of an image hosted elsewhere (one URL per line). The first image is the thumbnail; the rest form a gallery.

| Rule | Value |
| - | - |
| Formats | PNG, JPEG, WebP, GIF |
| Max. file size | 8 MB |
| Shop file storage | 10 MB (after compression) |
| Unused files removed after | 1 h (Free plan) or 24 h (Pro) |

Uploaded images are automatically validated, compressed to WebP and stripped of metadata. Uploading is not saving — a file only counts as "in use" once you save the product. A file not used in any product or setting is deleted after the grace period.

> [!NOTE]
>
> When you use an external URL, ItemShop doesn't control its availability — if the image disappears from that host, it disappears from your shop too.

## Visibility and order

| Setting | Effect |
| - | - |
| **Active** | on = product is in the shop; off = draft hidden from players |
| **Featured** | the product gets a badge and more prominent placement — for bestsellers and new items |
| Order | order in the product list = order in the shop; change it by dragging |
| Translations | if the shop has several languages, you provide the name and descriptions in each; empty fields fall back to the default |

Deleting a product is irreversible, but it doesn't delete order history. If you only want to hide a product, turn off **Active**.

## Next

> **[Payments](https://andcze.mintlify.site/en/shop/payments.md)**
>
> Connect a provider so players can pay.

> **[Plugin](https://andcze.mintlify.site/en/shop/plugin.md)**
>
> Install the plugin that runs product commands.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.