Codjo Houngbédji owns a drinks depot in Porto-Novo. Before the end-of-year festivities he wants to reward the bars that buy a lot: the more a customer orders, the bigger the discount, but only on beer crates. Until now Fifamè, the manager, worked out these reductions on paper and sometimes forgot them. The same steps apply to any business that wants to give discounts on a schedule, by code or automatically, such as a hardware store with a cement promotion or a pharmacy with a loyalty offer.

Create the campaign

Codjo starts with Create a discount campaign. The campaign is created as a draft, with no tier yet, so nothing applies to sales. He gives it a name and chooses:
  • Activation mode: automatic, where the discount applies by itself, or code, where the customer gives a code. A code is required in code mode and refused in automatic mode. It is stored in capitals and must be unique among the company’s campaigns.
  • Discount type: percentage or fixed.
  • Application scope: order for the whole order, or stockables for chosen product units.
  • Tier basis: whether the tiers are measured on the whole order or only on the eligible products.
  • Access mode: public, the default, or restricted. See Choose who gets a campaign.
  • Combination policy: exclusive or stackable.
  • Dates: a start date is required. The end date, when given, must be after it. A date without an offset is read in the company time zone.
  • Limits (optional): a usage limit, a pool limit and a limit per customer.
The activation mode, discount type, application scope and access mode cannot be changed afterwards. Edit a discount campaign changes the name, the description, the limits and the dates. The tier basis and the combination policy can change only while the campaign is a draft or paused, and the code only while it is a draft.

Set tiers, conditions and products

While the campaign is a draft, Codjo prepares three lists. Each one replaces the previous list entirely.
  • Set campaign discount tiers: each tier has a minimum amount, for example 100,000 FCFA, and two tiers cannot share a minimum. A percentage campaign needs a percentage on each tier, and a percentage tier may also cap the discount. A fixed campaign needs a fixed amount on each tier. Tiers can also be replaced while the campaign is paused.
  • Set campaign conditions: the only condition type is minimum_amount, which needs an amount above zero. An empty list removes all conditions.
  • Set campaign target products: accepted only when the scope is stockables, and needed before such a campaign can be activated. The list cannot be empty, and each identifier must be unique and exist in the organization’s catalogue.
Discount amounts are sent in major units and stored in minor units, using the campaign’s own currency decimals.

Move the campaign through its life

Returning to draft and deleting are both refused once an order has used the campaign.

Check a code and follow usage

Before Fifamè promises a discount to a bar, she tests the code with Check a discount code, giving the basket and, if known, the customer. She sees whether the code is eligible, the reasons if it is not, and what the discount would be. Nothing is applied and no usage is recorded. An unknown code is not an error: she sees “not eligible” with the reason code_unknown. To see where and by whom the campaign was used, she opens List campaign usages. List discount campaigns can be filtered by status, activation mode, discount type, scope, access mode or combination policy, and View a discount campaign shows one campaign with its settings. To limit a campaign to some customers, see Choose who gets a campaign.

The rules

  • A campaign belongs to one company.
  • Conditions and target products can be replaced only while the campaign is a draft. Tiers only while it is a draft or paused.
  • An archived campaign is read-only until it is returned to draft.
  • A campaign with a start date and an end date: the end must be after the start.

All the actions of this topic