Promotions and vouchers
Shop/marketing manage automatic promotion rules separately from code-based vouchers.
Shop/marketing manage automatic promotion rules separately from code-based vouchers.
Where to find it
Web: open Shop. Desktop: Business → Shop, using the same record paths. Disabled modules or missing read permission remove the navigation entry.
| Screen / tab | Web path | Usage | Desktop |
|---|---|---|---|
| Promotions | /discounts | List, view or tab | Native screen |
| Vouchers | /discounts/vouchers | List, view or tab | Native screen |
| Record details | /discounts/[id] | Record or editor | Native screen |
| Record details | /discounts/vouchers/[id] | Record or editor | Native screen |
Start working
Step 1
Create promotions and dated/scoped rules.
Step 2
Set voucher channel values, limits and scope.
Step 3
Add/import/remove codes.
Step 4
Review order discounts.

Settings
Option-by-option configuration and screen paths: Settings guide.
There is no separate settings route; the guide distinguishes record options from declared defaults.
Permissions and limits
Before you start
Vouchers are not automatically valid in all channels. Configuration lives on records, not a general settings page.
Role capabilities: Read (read), Write (write), Delete/archive (delete), Comment (comment).
Own-record restrictions apply equally to lists, records and Era. Record state or missing data can refuse an otherwise permitted action.
Ask Era
Show promotions starting next week.
Select relevant records for Era context. Era respects modules/roles; external or confirmation-sensitive work can stop for approval. Use era tools in the terminal to inspect currently available tools.
Automation and events
These declared events are available to module-event triggers. Subscribing does not configure the next operation; choose recipients, conditions and actions separately.
Operation details
The inventory includes record, configuration, visitor and background flows. IDs support Era/automation; not every row is a menu button. Asterisks mark required inputs. Unmapped rows do not imply a visible control.
| Operation and ID | Inputs | Permission | Screen or flow |
|---|---|---|---|
Save a promotion · discounts.save_promotion | Promotion, Name *, Type, Description, Starts, Ends | Write | /discounts, /discounts/[id] |
Delete a promotion · discounts.delete_promotion | Promotion * | Delete/archive | /discounts/[id] |
Save a promotion rule · discounts.save_promotion_rule | Rule, Promotion, Name, Description, Channels, Off by, Value, Reward, Covers, Covers (AND / OR tree), Order condition, Gifts | Write | /discounts/[id] |
Delete a promotion rule · discounts.delete_promotion_rule | Rule * | Write | /discounts/[id] |
Save a voucher · discounts.save_voucher | Voucher, Name, Applies to, Off by, Usage limit, Starts, Ends, Once per order, Once per customer, Each code once, Staff only, Minimum items, Countries, Codes | Write | /discounts/vouchers, /discounts/vouchers/[id] |
Delete a voucher · discounts.delete_voucher | Voucher * | Delete/archive | /discounts/vouchers/[id] |
Set a voucher’s value per channel · discounts.set_voucher_channels | Voucher *, Channels * | Write | /discounts/vouchers/[id] |
Limit a voucher to part of the catalogue · discounts.set_voucher_catalogue | Voucher *, Products, Variants, Categories, Collections | Write | /discounts/vouchers/[id] |
Add voucher codes · discounts.add_voucher_codes | Voucher *, Codes, How many to generate (0–50), Prefix | Write | /discounts/vouchers/[id] |
Remove voucher codes · discounts.delete_voucher_codes | Voucher *, Codes * | Delete/archive | /discounts/vouchers/[id] |
Import voucher codes · discounts.import_voucher_codes | Voucher *, Codes * | Write | /discounts/vouchers/[id] |
Announce a promotion starting or ending · discounts.announce_promotion | Promotion * | Write | Record/API/visitor flow; no separate screen button mapped |
Related guides
Settings
Options, screen paths and defaults.
Workflows
Operations managers connect triggered blocks on a canvas with conditions, loops and approval waits.
Shop
Shop — modules and detailed settings
Technical sources
packages/os-kernel/src/modules/discounts.ts, packages/os-kernel/src/modules/index.ts, apps/studio/lib/os/navigation.ts, apps/studio/lib/os/settings-groups.ts, apps/era-station/apps/web/src/era/business/screens.ts.