Skip to content

Promo Codes

Use this page to create and manage promo codes (coupons) for one location at a time — percentage or fixed discounts, free items, customer groups, order/payment rules, validity periods, weekday/time windows, and which menu items qualify.

Open the screen: Sidebar → Promotions ManagementPromo Codes

One location at a time

Pick Location on the list before codes load. The form also ties each code to a single outlet.


Promo codes list

What it does

Shows promo codes for the selected location with filters, pagination, and view/edit/delete actions.

Step-by-step

  1. Open Promotions ManagementPromo Codes.
  2. Select Location — first outlet is usually pre-selected; list does not load until a location is chosen.
  3. Optionally set Status and Expired filters.
  4. Read the table columns below.
  5. Tap refresh (title: Refresh promo codes) — disabled until Location is set. Toast: Refreshing / Loading promo codes…
  6. Use pagination at the bottom to change page or rows per page.

Filters

FilterOptionsWhat it does
LocationYour outletsWhich store’s promo codes you are viewing. The first outlet is usually selected automatically when the page opens. You must pick a location before the list loads.
StatusAll, Active (default), InactiveShow only live codes, only turned-off codes, or everything.
ExpiredAll, Not expired (default), ExpiredWhether the code is past its end date in the system. This is separate from Validity periods you set in the form (see below).

Changing Location, Status, or Expired returns you to the first page.

Toolbar: Add Promo (needs CREATE permission).

What the table shows

ColumnMeaning
IDInternal reference number for support (you rarely need this day to day).
CodeWhat the customer or staff types at checkout. Can be left blank when creating - the system can generate one for you.
TitleShort name for the promotion. Shows - if empty.
Discount typeFixed (dollar amount off) or Percent (% off), shown as a coloured label.
Offer scopeOrder (whole order) or Item (specific lines) - see form section below.
Available daysAll Days & Times, or which weekdays and hours the code works (e.g. Friday 09:00–17:00).
Discount amountThe number shown: dollars off or percent off, depending on discount type.
Used / limitHow many times the code has been used, compared to the maximum you allowed. No limit means unlimited uses.
StatusActive (can be used) or Inactive (turned off).
ActionsView, Edit, Delete - see below.

Row actions

ActionWhat it does
View (eye)Opens Promo Code Details (read-only). Use from the list — direct URL without list state shows Promo code data not available. Please navigate from the Promo Codes list.
Edit (pencil)Opens Edit Promo Code dialog
Delete (trash)Browser confirm: Are you sure you want to delete this promo code? — then permanent delete

Deactivate instead of delete

Turn Active status off in Edit if you may reuse the code later.

Common mistakes / FAQs

  • “No promo codes found”. Change filters or tap Add Promo.
  • Refresh is disabled. Select Location first.
  • Loading… — wait for the API response for that outlet.

Add or edit a promo code

What it does

Opens a large dialog — Add Promo Code or Edit Promo Code. Scroll for all sections.

Step-by-step

  1. Tap Add Promo or Edit on a row.
  2. Fill sections below (choose Location first — it refreshes menu items and customer groups).
  3. Add at least one eligible item before save.
  4. Tap Create Promo / Update Promo (Saving... while working).
  5. On success: Promo code created / Promo code updated — dialog closes and list refreshes.

Basic information

FieldRequired?What to enter
TitleYesA short name you will recognise (e.g. “Summer 10% off”).
LocationYesWhich store this code belongs to. Changing location refreshes the menu list and customer groups for item picking.
Promo codeNoThe code customers type. Leave blank to let the system create a unique code automatically.
Promotion typeYesDiscount - money or % off. Free - give items at no charge (price becomes zero on the free lines).
Offer scopeYesOrder level - whole order. Item level - specific lines. Free forces Item level only.
Max Times Per CartNoItem level only. Placeholder Unlimited — cap how many times the promo applies in one cart.
DescriptionNoInternal notes (placeholder: Optional description for internal reference).

Discount settings (only when type is Discount)

FieldWhat to enter
Discount typeFixed amount - e.g. $5 off. Percentage - e.g. 10% off.
AmountThe discount value. Required. Must be at least 0.1 (10 cents or 0.1%). For percent, you cannot enter more than 100.

Usage limits

FieldWhat to enter
Minimum orderOptional. Cart must reach this subtotal before the promo applies.
Maximum discountOptional. Stops the discount growing too large (especially for % off).
Maximum usesOptional. Total times anyone can use this code across all customers. Leave blank for unlimited.

Customer restrictions

FieldDefaultWhat it does
Customer groupsNone selectedOnly customers in the groups you pick (for that location) can use the code.
Once per customerOnEach customer can use it only once.
Logged in onlyOnGuest checkouts may not qualify, depending on POS/online setup.
Auto applyOffWhen on, the system can apply the promo automatically when the cart matches all rules (where the channel supports it).
First-time onlyOffWhen on, only first-time buyers can use it.

Order and payment restrictions

FieldWhat to enter
Order typesOptional. Limit to certain services (e.g. delivery only). If you pick nothing, all order types at that location are allowed.
Payment methodsOptional. Limit to certain ways of paying (e.g. card only). If you pick nothing, all payment methods are allowed.

If you select both order types and payment methods, the code only works when both match (e.g. delivery and card). Leave both empty for no restriction.

Weekday and time restrictions

  • Add day - restrict the promo to certain days and hours (default slot 09:00–17:00).
  • Each weekday can only appear once.
  • You can add more than one time slot on the same day.
  • No days added - the promo is valid any day, any time (as long as other rules pass).

Validity periods

  • Add period - set Valid from and Valid to (date and time).
  • Valid to must be after Valid from.
  • You can add several periods if needed; delete a row with the trash icon on that row.
  • No periods - the promo can stay available indefinitely while Active, subject to usage limits and weekday rules.

There is no single “expiry date” box on this form. Use Validity periods for calendar windows, and use the list filter Expired to find codes the system marks as expired.

Applicable items

You must add at least one eligible item before saving.

ButtonWhen you can use itWhat it does
Add eligible itemsAfter you choose a locationOpens Select items - pick categories or products the customer must buy (or that qualify for the deal).
Add offer itemsAfter you choose a locationSame picker, for the free or discounted “reward” lines (buy X get Y).
On full menuOnly when Offer scope is Order levelQuickly selects every menu category at that location as eligible (whole-menu promotion).

Eligible items (required)

  • What the customer needs in the cart (categories or individual products).
  • Required qty - how many they must buy. If several rows share the same group, changing quantity on one updates the others in that group.
  • Group (link icon) - link items so the customer can choose any one in the group (e.g. “any pizza” counts). Use None, an existing Group 1 / Group 2…, or + New group.

Offer items (optional)

  • What they get as the deal (e.g. free fries). Set Free qty or Offer qty per line.
  • For Free promotions, add offer lines for what is given away free.

Buy X get discount
If type is Discount and you add no offer items, a blue note explains: the discount applies to the eligible items once the required quantity is in the cart.

Tips when picking items

  • Picking a whole category means you do not need to tick every product under it separately.
  • If you save from Select items, it replaces the previous list for that section (eligible or offer) - it does not add on top of old picks.

Active status and buttons

ControlWhat it does
Active statusOn = customers can use the code (if all other rules match). Off = deactivated without deleting.
Reset formClears many fields and restrictions. Does not remove the items you already picked or change location - adjust those manually if needed.
Create promo / Update promoSaves your changes and closes the window. The list refreshes. If something is wrong, a message appears at the top of the screen.

Messages you may see when saving

  • No eligible items - you must add at least one under Applicable items.
  • Discount amount missing or too small - enter at least 0.1 for fixed or percent.
  • Validity dates - “Valid to” must be after “Valid from”.

Select items (picker)

Opened from Add eligible items or Add offer items.

Part of the windowWhat to do
SearchType to find categories or product names.
Select all categoriesTicks every category currently shown (after search, only visible ones).
Category rowTick the box to include the whole category; click the arrow to expand and pick individual products.
Product rowTick one product at that location.
VariantsSome products show sizes/options underneath - tick the exact variant if the deal applies to one size only.
Category vs productTicking the category clears individual products under it, and vice versa - you use one or the other.
FooterShows how many you selected; Save returns to the promo form, Cancel discards changes.

Only active menu items at the chosen location appear. Items not set up at that store are not listed.


Common setups (examples)

What you wantTypeScopeEligibleOfferAlso set
10% off the whole billDiscountOrderOn full menu or all categories-Percent amount; optional min order / max discount
$5 off when they buy pizzaDiscountItemPizza category, qty 1-Fixed or % amount
Buy 2 burgers, get 1 free friesFreeItemBurgers, qty 2Fries, free qty 1Offer items
Buy dessert or coffee (either counts)DiscountItemBoth in the same group, qty 1 each-Group link icon
Lunch deal hours onlyAnyAnyAs neededAs neededWeekdays + times (e.g. Mon–Fri 11:00–14:00)
Runs 1 Dec – 31 Dec onlyAnyAnyAs neededAs neededValidity periods
VIP members onlyAnyAnyAs neededAs neededCustomer groups
Delivery paid by card onlyAnyAnyAs neededAs neededOrder types + payment methods

View promo code details

What it does

Read-only page at /promo-codes/:id with full rule breakdown. Data comes from the list row — not a separate API fetch.

Step-by-step

  1. Tap View (eye) on the list row.
  2. Review Summary, Conditions, Validity periods, Available days & times, Eligible items, Offer items, Linked customer groups (Loading linked groups... / This coupon is not linked to any customer group.).
  3. Tap Back to return to the list. Use Edit on the list to change settings — no edit on this page.

Permissions

What you needWhy
Promo Codes module permissionSee the menu and list
CREATEAdd Promo
UPDATEEdit and Active status
DELETEDelete on a row

Tips

  • Choose location first, then pick menu items.
  • Turn Active off instead of Delete if you might reuse the code later.
  • Expired on the list and Validity periods in the form work together - set dates in the form if the deal must stop on a calendar day.
  • After a complex setup, use View to double-check eligible items, offer items, and conditions.
  • Test with a small real order on POS or online before sharing the code publicly.

Pratham POS User Guide