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

# Coupons & promotions

> Create discount codes in Pocketsflow, scope them to products, set expiries, and track how they perform.

Coupons let you run campaigns, reward loyal customers, and experiment with
pricing — without editing your product's list price. Buyers enter a code at
checkout and the discount is applied to the eligible product before payment.

## How discounts work

A discount is a **code** with a **value** that applies to one or more of your
products. There are two value types:

<CardGroup cols={2}>
  <Card title="Percentage off" icon="percent">
    A percentage of the price, e.g. `20` = 20% off. Use `valueType: percentage`.
  </Card>

  <Card title="Fixed amount off" icon="tag">
    A flat amount off the price, e.g. `10` = \$10 off. Use `valueType: fixed`.
  </Card>
</CardGroup>

Each discount is **scoped to specific products** — it only applies to the
products you attach it to, so a code for one launch can't accidentally discount
your whole catalog.

## Creating a coupon

<Steps>
  <Step title="Open Coupons">
    In the dashboard go to **Coupons** (Discounts) and choose **New coupon**.
  </Step>

  <Step title="Configure it">
    Set:

    * **Name** — an internal label for the campaign.
    * **Code** — what buyers type, e.g. `LAUNCH20`. Codes must be unique within
      your account.
    * **Value** and **type** — percentage or fixed amount.
    * **Eligible products** — the products the code applies to.
    * **Expiration** — an optional end date, after which the code stops working.
    * **Active** — toggle the code on or off at any time.
  </Step>

  <Step title="Share the code">
    Publish it to your audience. When a buyer enters it at checkout, Pocketsflow
    validates that the code is active, not expired, and applies to that product
    before discounting the price.
  </Step>
</Steps>

<Note>
  A code only applies at checkout when **all** of these are true: it's marked
  **active**, it hasn't passed its **expiration** date, and the product being
  bought is in the code's **eligible products**. Otherwise it's rejected.
</Note>

## Editing and deactivating

You can edit a discount's value, type, eligible products, and expiry at any
time, or flip **Active** off to retire a code instantly without deleting it (so
its history stays intact). Deleting a code removes it entirely.

## Tracking promotion performance

The Coupons list shows a **used** count for each code — how many orders were
placed with it — so you can see which campaigns drove real sales. Combine that
with your [orders export](/operations/orders-and-customers) and
[analytics](/operations/analytics) to:

* Compare revenue **with and without** a promotion running.
* See whether a code is bringing **new buyers** or mainly discounting purchases
  that would have happened anyway.
* Judge whether the extra volume justified the margin you gave up (remember the
  flat 2% platform fee and processing fees still apply to the discounted price —
  see [Pricing & fees](/payments/fees)).

## Best practices

* Use **short, memorable codes** that match the campaign (`SUMMER25`, `VIP10`).
* Set an **expiration** and make the deadline clear in your marketing — urgency
  converts.
* **Scope tightly**: attach a code only to the products it's meant for.
* Avoid **stacking** too many overlapping offers; it confuses buyers and erodes
  margins.
* Retire codes with the **Active** toggle rather than leaving expired campaigns
  lying around.

<Note>
  Free trials and introductory pricing on recurring plans are configured on the
  **subscription** itself, not through discount codes. See
  [Subscriptions](/selling/subscriptions).
</Note>

## Related topics

* [Analytics](/operations/analytics)
* [Pricing & fees](/payments/fees)
* [Create a product](/selling/create-product)
* [Subscriptions](/selling/subscriptions)
