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

# Products and Variants

> Create a product, set up variants and pricing, control stock and visibility, and collect the information you need from buyers at checkout.

A product is what buyers see on your storefront. Every product has at least one **variant**, and the variant carries the price, the stock and the delivery. A product with three tiers is one product with three variants.

Create products under [**Products**](https://dash.sellauth.com/products) in the dashboard.

## Starting from a template

New products open with a template picker covering the common cases: serial keys, accounts, Discord Nitro gifts, game top ups and gift cards, subscriptions, cheats and software, digital downloads, services, dynamic delivery and physical products.

A template presets the delivery type and a starting set of variants. The gift card template opens with $5, $10 and \$25 variants, and the cheats template with 1 day, 7 days, 30 days and lifetime. Everything stays editable afterwards, and **Start from scratch** skips the picker.

## Product basics

**Name** is what buyers see on your storefront.

**Path** is the part of the web address that points at this product. A product named "Windows 11 Pro Key" gets a path of `windows-11-pro-key`, and its page is:

```
https://yourshop.mysellauth.com/product/windows-11-pro-key
```

SellAuth fills the path in from the name, so you can ignore it. Change it when you want a shorter or tidier link to share, using lowercase letters, numbers and hyphens only. Editing the path changes the product's address, so any link you have already posted stops working.

**Currency** is set per product, so you can price different products in different currencies.

**Visibility** decides who can reach it:

| Setting | Behaviour |
| - | - |
| **Public** | Listed on your storefront and purchasable by anyone |
| **Unlisted** | Hidden from the storefront, purchasable through a direct link |
| **Private** | Hidden completely, visible only to you |
| **On Hold** | Listed on the storefront, but purchases are disabled |

Unlisted is how you sell to a specific group without putting the product in your catalogue. On Hold keeps a product visible while you restock, instead of removing it and losing the page.

**Groups and categories** organise products on your storefront. **Product tabs** add extra description sections to the product page, for things like requirements, terms or an FAQ.

## Variants

Every product needs at least one variant. Add more when the same product is sold in several sizes, durations or tiers. How many products you can have, and how many variants each can carry, depend on your plan. Addons count toward the same product limit.

Each variant has its own:

* **Price**, and an optional **slashed price** shown struck through next to it
* **Your cost per unit**, what the unit costs you, used for estimated profit
* **Image**, optional, one of the product images. The storefront gallery jumps to it when a buyer selects the variant, and themes can show it inside the variant picker
* **Stock**, either a number or unlimited
* **Minimum and maximum quantity** per order
* **Instructions**, overriding the product level ones
* **Downloadable files**, **Discord roles** and **redirect URL**
* **Disabled payment methods**, if some methods should not apply here

### Stock

For serial products, stock is the number of unsold items you have loaded, and there is no stock field to edit. See [Serials and Keys](/guides/serials-and-keys).

For every other delivery type you set stock yourself, from 0 up to 1,000,000, or click the infinity icon to make it unlimited. Services, dynamic delivery and digital downloads are usually unlimited.

### Your cost per unit

**Your Cost Per Unit** is what one unit costs you to buy or make, in the product's currency. It is never shown to buyers. Filling it in lets your dashboard show estimated gross profit, which is revenue minus the cost of the items sold, next to plain revenue.

Every new order stores the cost as it stands at the moment of the sale, so past orders keep the cost they were sold at even after you change it. Orders placed before you set a cost count as free until you backfill them, which you can do for a date range from **Backfill Costs** under Miscellaneous in your storefront settings. See [Analytics](/guides/analytics) for how the figures read.

### Quantity limits

**Min Quantity** and **Max Quantity** bound how many units one buyer can take in an order. A maximum is useful when you would rather one buyer did not clear your stock in a single order, and a minimum when the product only makes sense in bulk. Leave both open where buying several at once is normal.

## Presentation

**Badges** are small labels such as `NEW` or `BEST SELLER`. Add as many as you like, each with its own text, icon and background colour, and drag them into the order you want. Leave the colour empty to use your theme's.

Each badge has two switches, so you choose where it appears:

| Switch | Effect |
| - | - |
| **Show on Product Card** | The badge appears on the product in your storefront listing |
| **Show on Product Page** | The badge appears on the product's own page |

You can turn on either, both or neither. New badges start as page only, so tick **Show on Product Card** as well if you want it visible while buyers are browsing.

**Status label** adds a coloured status line to the product page.

**Images** are uploaded per product and can be reordered, with the first one used as the main image. How many you can add depends on your plan.

**Meta title, description and image** control how the product looks when shared on social platforms or listed in search results.

## Checkout options

The Checkout tab of a product controls what happens around the purchase.

### Custom fields

Ask the buyer for something you need in order to deliver, such as a Discord username, a game ID or a server invite. Fields can be:

| Type | Use |
| - | - |
| **Text** | Single line input |
| **Textarea** | Multi line input |
| **Checkbox** | A yes or no toggle |
| **Select** | Dropdown of options you define |

Each field takes a placeholder, a hint, a default value, whether it is required, and an optional regular expression to validate the answer. Templates are available for common cases including Discord username, Discord server invite, email address, phone number, website and full name, each with validation already set.

<Note>
  A required field with a regular expression catches bad input at the point of sale. Mistyped Discord usernames and server invites are a common cause of failed deliveries, and validation prevents most of them.
</Note>

### Addons and upsells

**Addons** are extras a buyer can take alongside this product, created on the Addons page and then selected here. Each addon counts as a product toward your plan limit.

**Upsell products** are other products from your catalogue offered with this one.

Both appear as recommendations on this product's page. Neither is shown in the cart or during checkout, so a buyer who goes straight from the product page to paying will not see them again.

### Stock messages

**Out of stock message** is shown when someone pays and the stock runs out before delivery. It applies to any product with a stock count.

**Deliverables label** renames what the delivered items are called on the checkout page and in the delivery email. By default a buyer sees **Deliverables**, with **Download Deliverables** and **Copy Deliverables** buttons beside it. Setting the label to `License Keys` turns those into **License Keys**, **Download License Keys** and **Copy License Keys**. Serial products only.

### Other options

**Force Discord Login** requires a Discord account before purchase, which is useful when delivery depends on knowing who the buyer is on Discord.

**Subscription settings** turn a variant into recurring billing. See [Subscriptions](/guides/subscriptions).

**Cashback percentage** is set per product, and overrides the shop default. Zero disables cashback on that product, and leaving it empty inherits the shop setting.

## Next steps

<CardGroup cols={2}>
  <Card title="How delivery works" icon="truck" href="/guides/delivery">
    The five delivery types and how each one fulfills an order.
  </Card>

  <Card title="Serials and keys" icon="key" href="/guides/serials-and-keys">
    Selling license keys, accounts and codes from stock.
  </Card>

  <Card title="Coupons and deals" icon="tag" href="/guides/coupons-and-deals">
    Discount codes, volume pricing, quantity deals and bundles.
  </Card>

  <Card title="Physical products" icon="box-open" href="/guides/physical-products">
    Shipping zones and fulfilling shipped orders.
  </Card>
</CardGroup>


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