Cashback Settings
The Cashback engine is rule-based. Build any number of rules; engine picks the first matching by priority.
Want the feature overview?
See Cashback Engine for what cashback does, customer experience, refund reversal, and developer hooks.
Where
Wallet → Cashback Rules (CRUD UI, separate from main settings tabs).

The toggleable defaults for the engine live on Wallet → Settings → Cashback Settings:

Step-by-step Setup
1. Create a rule
Click Add new rule → opens the single-rule editor.
2. Name
Internal label. Also shown in the customer's activity feed:
Cashback +₹50 "Spring sale 5%"
Make it descriptive — Q4 Electronics 10% not Rule 1.
3. Active toggle
Rule fires only when ON. Useful to pause without deleting.
4. Scope
| Scope | When to use |
|---|---|
global | Any order |
product | Specific SKUs only |
category | Specific WC categories only |
5. Targets
Required for product / category scope. Multiselect picker.
6. Match
For multi-target rules:
| Match | Behaviour |
|---|---|
OR (default) | Rule fires if any line item matches |
AND | Rule fires only if all line items match |
OR is what most stores want.
7. Min order value
Cart total threshold for the rule to fire. Set 0 for no minimum.
8. Max order value
Optional ceiling. Useful for "5% on orders ₹500-₹5000 only".
9. Type
| Type | Amount field |
|---|---|
percent | percent of order subtotal (e.g. 5 = 5%) |
fixed | currency value (e.g. 50 = ₹50 flat) |
10. Amount
The percent or currency value. See examples below.
11. Max cashback cap
Optional. "10% on Electronics, but never more than ₹1000 cashback per order."
12. Priority
Lower number runs first. First matching rule wins.
| Priority | Use |
|---|---|
5 | Time-boxed promotions (high-priority, run first) |
10 | Default rules |
20 | Catch-all fallback rules |
13. Start / End date
Optional window. Rule only fires inside the dates. After end date, rule auto-skips.
14. Per-customer cap
Max times this specific rule can credit one customer.
| Use case | Cap |
|---|---|
| Welcome cashback (one-shot) | 1 |
| Monthly | 12 (one per month roughly) |
| Unlimited | leave blank |
15. Save
Click Save rule.
Common Setups
Flat 5% on everything
| Field | Value |
|---|---|
| Name | Baseline 5% |
| Active | ON |
| Scope | global |
| Min order value | 0 |
| Type | percent |
| Amount | 5 |
| Priority | 10 |
10% on Electronics, min ₹2000, capped ₹1000
| Field | Value |
|---|---|
| Name | Electronics 10% |
| Scope | category |
| Targets | Electronics |
| Min order value | 2000 |
| Type | percent |
| Amount | 10 |
| Max cap | 1000 |
| Priority | 8 |
Flat ₹50 on launch SKU
| Field | Value |
|---|---|
| Name | Launch SKU bonus |
| Scope | product |
| Targets | LAUNCH-SKU-1 |
| Type | fixed |
| Amount | 50 |
| Priority | 7 |
Limited-time double cashback
Two rules:
| Field | Rule A (baseline) | Rule B (promo) |
|---|---|---|
| Priority | 10 | 5 |
| Scope | global | global |
| Type | percent | percent |
| Amount | 5 | 10 |
| Start date | empty | 2026-04-01 |
| End date | empty | 2026-04-30 |
During April, Rule B (lower priority = checked first) wins. After, only Rule A matches.
Welcome cashback for first order
| Field | Value |
|---|---|
| Name | First-order welcome |
| Scope | global |
| Type | percent |
| Amount | 15 |
| Per-customer cap | 1 |
| Priority | 5 |
Generous percent on the first order only.
Verify
As a test customer:
- Place a qualifying order
- Wait for
completedstatus - Wallet credited automatically
- Activity feed shows the cashback row with rule name
Important Behaviour
- Engine awards one cashback per order (not stacked)
- First matching rule by priority wins
- To "stack" multiple percentages, build a single rule that combines them
- Refunds reverse cashback proportionally
Reporting
Filter Wallet → Transactions by type = cashback. Sort by date / customer.
CSV export available for accounting reconciliation.
Troubleshooting
| Problem | Fix |
|---|---|
| Cashback not credited | Rule active? Min met? Order in completed? Already credited? |
| Wrong rule fired | Check priority — lower number runs first |
| Cashback credited twice | Should not happen — guard meta on order |
| Want cashback on subtotal-with-tax | Use wkwp_cashback_basis filter (dev) |
