# Create promotions and issue gift cards

> Offer discount codes and automatic promotions, and issue, adjust and turn off your store's gift cards.

Source: https://docs.coritan.com/organizations/commerce/discounts/

In the dashboard:

- /dashboard/organizations/…/commerce/discounts: https://www.coritan.com/dashboard/organizations

**Discounts** holds the store's promotions and gift cards. A promotion is a code that shoppers enter at checkout, or an automatic promotion that the cart applies by itself when its conditions are met. A gift card holds an amount in one currency and pays for orders until it is spent.

## Before you begin

- Only owners and admins see **Promotions**, because a code can be a secret you hand out privately. Owners and admins also issue and change gift cards.
- Tier 1 support and above can look up gift cards and their history. A note at the top of the section says so when you cannot change them.
- A fixed amount, a minimum spend and a gift card are each in one of the store's currencies. Choose the currencies under **Store** in [Settings](/organizations/commerce/settings/#store).

## Create a promotion

1. In the [dashboard](https://www.coritan.com/dashboard/organizations), open the organization, then **Commerce**, then **Discounts**.
2. Under **Promotions**, select **New promotion…**.
3. Under **How shoppers get it**, choose **A code** or **Automatic**. You cannot change this later.
4. For a code, enter the **Code**, such as `SUMMER25`. It takes letters, digits, `-` and `_`, up to 64 characters, and shoppers can type it in any case.
5. Optionally, enter a **Description**. Shoppers see it beside the discount on the cart and the order. Without one, they see what it takes off.
6. Choose the **Discount**:
   - **Percentage**: enter the **Percentage off**, above 0 and up to 100. Choose a **Currency** to offer it only to carts in that currency, or keep **Any currency**.
   - **Fixed amount**: enter the **Amount off**, such as `25.00`, and its **Currency**. Only carts in that currency get it.
   - **Free shipping**: the shipping costs nothing.
7. For a percentage or a fixed amount, choose what it **Takes it off**: **The order**, **Matching items** or **Shipping**.
8. Optionally, set the conditions and limits that [Set conditions and limits](#set-conditions-and-limits) describes.
9. Leave **Turn it on now** ticked, or untick it to save a draft that no cart can use until you turn it on.
10. Select **Create promotion**.

## Set conditions and limits

The promotion applies only when every condition you set is met.

**Minimum spend**
: What the cart's items come to before discounts, such as `60.00`. It needs the promotion's **Currency**.

**First order only**
: Only for a shopper with no earlier order, by account or email. A cancelled order does not count.

**Customer groups**
: Only signed-in shoppers in a ticked group get it. Tick none for everyone. It shows when the store has customer groups, which are made through the API.

**Collections**
: The cart must hold an item from a ticked collection. It shows when the store has collections, which are made through the API.

**Products**
: Search by title or SKU and add each product. The cart must hold one of them. With **Matching items**, the promotion takes its discount off only these products and the ticked collections, so choose at least one.

**Uses in total** and **Uses per shopper**
: How many orders can use it, and how many times each shopper can, counted by account or email. Leave them empty for no limit.

**Starts** and **Ends**
: The dates and times it runs, in your time zone. Without a start, it runs as soon as it is turned on. Without an end, it runs until you turn it off.

**Combines with other promotions**
: Unticked, it applies only on its own: the cart refuses a second code beside it, and an automatic one steps aside when anything else applies.

Codes apply in the order the shopper entered them, then automatic promotions from the oldest. Each takes its discount off what the earlier ones left. A cart holds up to 5 codes, and a store runs up to 50 automatic promotions at once.

## Change, turn off or delete a promotion

The list shows each promotion's **Status**, its **Discount** with its conditions, how often it was **Used** and when it **Runs**. Filter it with **All**, **Active**, **Drafts** and **Turned off**, or search by the start of a code or by words in the description.

| Status | What it means |
| --- | --- |
| Active | Carts can use it now. |
| Scheduled | It is turned on, and its start is still ahead. |
| Ended | Its end has passed. |
| Used up | It reached its **Uses in total**. |
| Draft | It was saved without being turned on. |
| Turned off | Someone turned it off. |

Each action is in the menu on the promotion's row.

**Edit promotion…**
: Change anything except how shoppers get it, then select **Save promotion**. Selecting the row opens it too. Orders already placed keep the discount they got, and the change applies to carts from then on.

**Turn off…**
: Select **Turn off promotion** to confirm. Shoppers who enter the code are told that it is not active, and an automatic promotion stops applying. Orders that have it keep their discount. **Turn on** turns it back on.

**Delete promotion…**
: Only a promotion that no order used can be deleted. Type its code, or `delete` for an automatic promotion, then select **Delete promotion**. Its code becomes free for a new promotion. Once an order has used a promotion, turn it off instead.

> [!CAUTION]
> Deleting a promotion cannot be undone.

## Issue a gift card

1. Under **Gift cards**, select **Issue gift card…**.
2. Enter the **Amount**, such as `25.00`, and choose the **Currency**. The card pays only for carts in that currency.
3. Optionally, enter the **Recipient's name** and **Recipient's email**, who it is **From**, and a **Message**. The email lets you find the card later.
4. Optionally, choose the day it **Expires on**. The card works to the end of that day, in your time zone. Leave it empty for a card that never expires.
5. Select **Issue gift card**.
6. Under **Save the code now**, copy the **Code**, then select **I have saved it**.

> [!WARNING]
> The code is shown once and cannot be shown again, and issuing a card does not email it. Send the code to the recipient yourself. The store keeps only its last four characters.

While the store is in test mode, the card you issue is a test card: it pays for test orders only. A gift card sold on the storefront is emailed to the recipient the order names, and it is listed here as **Sold in an order**.

## Look up a gift card

1. Under **Gift cards**, choose **All**, **Active**, **Used up**, **Expired** or **Turned off**.
2. Search by the recipient's email, the full code, or its last four characters.
3. Select a card to open its details.

The details show the card's **Balance**, **Status** and when it **Expires**, the **Recipient**, who it is **From**, the customer it is **Held by**, and how it was **Issued**. **History** lists each time the balance moved, newest first, such as **Spent on an order** or **Adjusted by the store**, with any note your team left. A move on an order links to it.

## Adjust, edit or turn off a gift card

Owners and admins find these actions in the menu on the card's row, and **Adjust balance…** and **Edit card…** in its details too.

**Adjust balance…**
: Choose **Add** or **Take away**, enter the amount, and optionally a **Note**, such as a goodwill credit for a late delivery. Only your team sees the note. Select **Save balance**. The balance cannot go below zero, and a used-up card that you add to can pay for orders again.

**Edit card…**
: Change the **Recipient's name**, the **Recipient's email** or the day it **Expires on**, then select **Save card**. To bring back an expired card, choose a later day. A day in the past is refused: to stop a card now, turn it off.

**Turn off…**
: Select **Turn off card** to confirm. The card cannot pay for anything until it is turned on again, and its balance stays on it. **Turn on** needs a balance above zero, so add to the balance first.

## Result

- A promotion that is turned on applies to carts from its start, and its **Used** count grows with each order.
- A gift card pays for carts in its currency while it is active, unexpired and has a balance. A test card pays only for test orders, and a live card only for live ones.

## Troubleshooting

**Promotions** is missing
: Only owners and admins see it. The note at the top of the section names your role.

The dialog says another promotion has this code
: Codes are unique across the organization, whatever their case. Choose another code, or delete the other promotion if no order used it.

A new automatic promotion cannot be turned on
: The store already runs 50 automatic promotions. Turn one off first.

**Delete promotion…** cannot be selected
: Orders used the promotion, so it can only be turned off.

A shopper's code is refused
: The Store API gives the reason, such as that the promotion has ended or that the cart does not reach its minimum. Check the promotion's **Status**, its dates, its **Currency** and its conditions.

**Turn on** cannot be selected on a gift card
: The card's balance is zero. Add to it with **Adjust balance…** first.

A gift card's code is lost
: The store cannot show it again. Turn the card off, then issue a new card for its balance.

## Related

- [Manage your store's customers](/organizations/commerce/customers/)
- [Add and edit your store's products](/organizations/commerce/products/)
- [Change your store's settings](/organizations/commerce/settings/)

## With the API

Promotions are under `https://api.coritan.com/api/v1/orgs/{org_slug}/commerce/promotions` and gift cards under `/commerce/gift-cards`. The API also makes the customer groups and collections that conditions point at, and gift card products the storefront can sell. [Offer promotions and gift cards](/organizations/storefront/commerce-api/#offer-promotions-and-gift-cards) has the details.

```bash
curl "https://api.coritan.com/api/v1/orgs/acme/commerce/gift-cards?q=luka@example.com" \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```
