> For the complete documentation index, see [llms.txt](https://guides.paynow.gg/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guides.paynow.gg/getting-started/your-first-product.md).

# Your First Product

This is the short path: one simple product, a command so it actually delivers, and a test purchase to prove it. For every field explained, see [Creating a Product](/products/creating-a-product.md).

*Dashboard → Content → Products. Needs `product_read` to view, `product_create` to add.*

You need a [linked game server](/integrations-and-commands/game-servers.md) first. Without one there's nothing to deliver to, and no way to test properly.

## 1. Create the product

1. Go to **Content → Products**.
2. Click **Create**.
3. Fill in the essentials:
   * **Name**: what the customer sees. `Starter Kit`
   * **Price**: `2.99`
   * **Description**: what they get. Be concrete. Customers refund things they didn't understand.
4. Under **Lifetime → Product lifetime cycle**, leave **Allow One Time Purchases** ticked and **Allow Subscriptions** unticked. Those are the defaults. Subscriptions add renewal behaviour you don't want to debug on your first product.
5. Click **Create**.

<figure><img src="/files/NVrrEKLv1APBA4DzjjqJ" alt="The product creation form filled in for a Starter Kit priced at 2.99 with Allow One Time Purchases ticked."><figcaption></figcaption></figure>

## 2. Attach a command

Skip this step and the customer pays and receives nothing.

1. Open the product you just created.
2. Open **Deliverable Actions → Commands**.
3. Set the stage to **On Purchase**.
4. Type the command your server console would run, with a placeholder where the player's name goes. On Minecraft that looks like:

   ```
   give {customer.minecraft.name} diamond_pickaxe 1
   ```

   On a Steam game such as Rust, use `{customer.steam.id}` instead.
5. Save.

{% hint style="warning" %}
**Use the placeholder, not your own username.** A command with your name hard-coded in it gives *you* the item every time someone else pays.
{% endhint %}

The command editor has an **Available variables** link listing every placeholder, each one click-to-copy. [Commands & Placeholders](/integrations-and-commands/commands.md) explains them.

## 3. Make it purchasable

A product can exist and still not appear on your storefront. Under **Lifetime → Product availability period**, confirm **Disable product** is unticked and that **Enabled from** / **Enabled until** don't exclude today. Then check your storefront in a **private browsing window**. Your logged-in dashboard session can show you things customers cannot see.

## 4. Test it before anyone else does

There is no sandbox or test mode, so the test is a real order. You don't have to pay for it. Any of these gets you through checkout for nothing:

* A **100%** [**coupon**](/marketing/coupons.md) you make for yourself and delete afterwards.
* A [**gift card**](/marketing/gift-cards.md) you issue to yourself.
* A **free product**, priced at 0, that you hide once you're done.

Buying it properly and refunding yourself works too, but it puts a refund on your records for no reason.

Then:

1. Buy the product using one of the above.
2. Watch the server console. The command should run within seconds.
3. Check **Content →** [**Orders**](/orders-and-subscriptions/orders.md). The order should be listed.
4. Check the receipt email arrived.

All four true means a working product. Repeat for the rest of your catalogue, using [Tags](/your-webstore/tags.md) to organise it and [Tier Groups](/products/tier-groups.md) for ranks that upgrade between each other. Then work through the [Going Live Checklist](/getting-started/going-live-checklist.md).
