Skip to content
Sellify

Selling more

Campaigns and promo codes

Menu: Promotions · Who: owner, branch manager

Two kinds of offer. A campaign applies itself; a promo code is asked for by name. Both are decided in one place, so they can never double up by accident.

Campaigns

Campaigns apply themselves when the cart fits.
Campaigns apply themselves when the cart fits.
A campaign carries its own scope — all, a category, or named products.
A campaign carries its own scope — all, a category, or named products.
FieldNotes
NameWhat the cashier and the receipt see: "Ramzan 10%"
BranchEmpty = every branch
Discount + valuePercent off, or an amount off
Most it may giveA cap on a percentage — "20% off, up to Rs 500"
Applies toThe whole bill, only these categories, or only these products
Runs from / untilDates
DaysTuesdays only, weekends only. All off = every day
From / Until (time)Happy hour, in the branch's own clock. A window that ends before it starts (22:00 → 02:00) runs through midnight
Minimum billChecked against the whole bill
Order typesDelivery only, dine-in only… all off = every type

Scope decides what it touches

  • Whole bill — everything in the cart is discounted.
  • Categories / productsonly the qualifying lines. "20% off Pizzas" never touches the cola sitting next to it.

When two campaigns fit

Nothing is applied. The POS shows PICK AN OFFER with each campaign and what it is worth, and the cashier asks the customer. A single eligible campaign applies itself with a badge.

Promo codes

Promo codes, with how many times each has been spent.
Promo codes, with how many times each has been spent.
A code carries dates, a usage cap, a minimum order value and a per-phone limit.
A code carries dates, a usage cap, a minimum order value and a per-phone limit.
FieldNotes
CodeEID500. Letters, digits, - and _. Unique in your company — another company may use the same code
NameWhat the receipt prints: "Eid Rs 500 off"
Discount + value, Most it may giveAs above
Minimum bill"Rs 2,500 se ooper"
Total usesThe whole run. Empty = no cap
Uses per phoneOne per customer. Needs the customer's phone on the order
Runs from / until, Branch, Order typesAs above

A code discounts the whole bill. Line-scoped offers are campaigns, not codes.

When a code is spent

When the sale is paid — not when it is quoted, and not when the order is held. Voiding the sale gives the use back. The Used column counts from the record of actual uses, never from a number someone typed.

Writing a deleted code again starts a new run of it: its caps count from that moment, and the old uses stay in the reports.

A series of codes — XMAS001 to XMAS500

Writing a numbered series in one go.
Writing a numbered series in one go.

One code at a time is right for EID500, the code you print on a banner. A voucher is the other shape: a different code for every customer, each one good for a single use. Generate series writes them all in one go.

FieldNotes
PrefixThe word in front — XMAS. Letters, digits, - and _
First / Last numberThe range. 1 to 500 gives five hundred vouchers
DigitsHow the numbers are padded. 3 → XMAS001; 4 → XMAS0001
NameWhat every code in the series is called, and what the receipt prints
Everything belowThe one offer every code in the series carries — discount, minimum bill, dates, branch, order types

Total uses is per code, and it starts at 1 — a voucher spent once. Set it higher if one voucher may be used more than that; empty means no cap on each code.

This writes shows exactly what will be written — the first code, the last code and the count — before you press anything. Up to 2,000 codes at a time; run it again for the next block, with the same prefix, starting where you left off.

Once a series exists

It is listed as one line, not five hundred, and each code inside it is an ordinary promo code with its own cap and its own history. On the series line:

CodesOpens the list, with a search box — type XMAS24 to find that voucher and see whether it has been spent
CSVDownloads every code in the series, to mail-merge onto cards or send out
Pause / RestartStops or restarts the whole series at once
DeleteRetires every code in it. Sales that used one keep their discount

Used / left on the line counts the vouchers actually spent, so you can see a print run being redeemed.

If a code in the range already exists

Nothing is written. The message names the codes that clash — "XMAS001, XMAS002, XMAS003 and 7 more already exist" — and you either change the prefix or start the numbering higher. A live voucher is never quietly overwritten, because the cards are already printed.

A whole series that was deleted and written again is a new run, exactly like a single code: the old spends stay in the reports and this run's caps start at zero.

Which offer wins

  1. FOC writes the whole order off and stops.
  2. A manual discount replaces any automatic offer.
  3. Otherwise the customer gets whichever is worth more — unless Allow a promo code and a campaign together is on, in which case the campaign lands first and the code works on what is left.

A campaign or a code never needs a manager PIN. And the company discount cap trims an over-generous offer instead of refusing the sale, because a mispriced offer must not stop the till.

Seeing what worked

Reports → Promotions shows every campaign and code with the orders it brought, what it gave away, that as a share of gross, and the average order it produced.