# Promotions and promo codes

> Make a discount that applies by itself or with a code, for a set time, cart size, products or warehouse, and use it at the till.

*Section: Marketing and promotions · Updated: 2026-10-19 · Needs the plan feature: promotions*

By the end you will have made a promotion with a code, such as 10% off breakfast shopping for a week, and seen it taken off a sale at the till.

> **Note:** Promotions come with some plans only. If **Promotions** isn't under **Customers** in your menu, your plan or your role doesn't include it.

Promotions work at the POS and on **Add sale**. They don't apply in the online store.

## Make a promotion

Open **[Customers › Promotions](/app/promotions)** and **click Create**. The form has six parts, and the **Preview** on the right shows the result as you type.

1. **Basics.** Type the **Name**, such as **Breakfast week**. Leave **Type** on **Discount**. Type a **Code**, such as **BREAKFAST10**, if customers must say it; leave it empty and the promotion applies by itself. **Description** is a note for your team.
2. **Discount value.** Pick **% Percentage** or **$ Fixed**, and type the **Value**.
3. **Validity.** Set **Starts at** and **Ends at**, or leave them empty for no end. **Restrict to specific hours of the day** limits it to, say, a happy hour; it can run past midnight.
4. **Conditions.** **Minimum cart total** and **Minimum item count** set the least a customer must buy. **Product scope** is **All products**, or **Specific products** to trigger only when one of them is in the cart.
5. **Warehouse.** Tick where it is honoured. A promotion with no warehouse ticked never applies.
6. **Stacking & limits.** **Priority** decides which wins when several apply; switch on **Stackable** to let it add to others. **Total usage limit** and **Per-customer limit** cap how often it is used; leave them empty for no limit.

**Save as Draft** keeps it switched off; **Save & Activate** starts it.

![The promotion form: Basics with Name Breakfast week, Type Discount, Code BREAKFAST10 and a Description; Discount value 10 % Percentage; and the Preview on the right: 10% OFF, Breakfast week, DISCOUNT, BREAKFAST10, ACTIVE, Applies at Default Warehouse, the Validity window and the Conditions Cart ≥ $ 10, All products.](https://armpos.online/storage/help/57d830d82e-promotions-and-promo-codes-1-basics.webp)
*The Preview sums the promotion up. Check its Window: today it shows the times 3 hours early.*

![Validity with Starts at and Ends at, the Restrict to specific hours of the day switch, Conditions with Minimum cart total $ 10 and Minimum item count, Product scope All products, and Warehouse with Default Warehouse ticked.](https://armpos.online/storage/help/d86b7649f3-promotions-and-promo-codes-2-conditions.webp)
*Tick at least one warehouse, or the promotion never applies.*

> **Warning:** Each time you open a promotion and save it, check **Starts at** and **Ends at** first: today the edit page loads them a few hours early, and saving keeps the wrong times. Type your times again before **SaveChanges** (the button shows its label like this).

![Customers › Promotions: Create and Usage Report, and Breakfast week, discount, 10.00%, Default Warehouse, its window, priority 0, with Edit and Delete.](https://armpos.online/storage/help/c44655a582-promotions-and-promo-codes-3-list.webp)
*Your promotions with their value, warehouse and dates.*

## Use the code at the till

1. **Fill the cart in the POS** as usual.
2. **Type the code in Promo code,** under the totals, and **click Apply.**
3. **Check the Promotions line.** It shows the promotion's name and what it takes off. The × beside **Apply** removes the code.
4. **Take the payment.** The sale records the promotion.

![The POS totals: Subtotal $ 16.45, Tax $ 0.00, Promotions (Breakfast week) -$ 1.65, and Promo code BREAKFAST10 with Apply, × and the name Breakfast week in green.](https://armpos.online/storage/help/f83e0779a7-promotions-and-promo-codes-4-pos.webp)
*The Promotions line shows what the code takes off.*

A code that can't be used says why under the box: "Unknown code.", "This code is not yet active.", "This code has expired.", "This code is not valid at this warehouse.", "This code is only valid at certain hours." or "This code has reached its usage limit." A cart under the **Minimum cart total** gets no promotion.

On **Add sale** the same **Promo code** box sits with the totals.

## See what it gave away

**Usage Report** on the promotions list shows the **Total uses**, the **Total discount** and how many promotions were used, then each use with its **Date**, **Promotion**, **Code**, **Sale**, **Client**, **Warehouse** and **Discount**. Narrow it by dates, promotion or warehouse.

## What's next

Tell customers about it: [Marketing campaigns and customer segments](/app/help/marketing-campaigns).
