Wallet SystemWallet System
Buy Now
View Demo
  • Getting Started

    • Introduction
    • Quick Start
    • Features
    • Installation
    • First-Time Setup
    • Admin Tour
  • Wallet Core

    • Core Wallet
    • Wallet Payment Gateway
    • Recharge / Top-up
    • Wallet Transfer
    • My Wallet Page
    • Shortcodes
  • Earn & Reward

    • Cashback Engine
    • Referral Program
    • Multilevel Referral
    • Daily Login Reward
    • Invite Friends
    • Deposit / Top-up Bonus
  • Spend & Payout

    • Checkout Discount
    • Checkout Restriction
    • Withdrawal
    • PayPal Payout
    • Stripe Payout
    • Refund to Wallet
    • Buy Now Pay Later
  • Identity & Mobile

    • KYC
    • QR Code Payments
  • Wallet Central

    • Overview
    • Endpoint & Routing
    • CTA Discovery
    • Home Dashboard
    • Add Funds
    • Withdraw
    • Withdrawals List
    • Send Money
    • QR Pay
    • Payment Requests
    • Refer & Earn
    • Transactions
    • Settings
    • KYC Flow
    • Architecture
    • Tweaks & Responsive
    • Security
    • Admin Controls
  • Admin Tools

    • Admin Settings (index)
    • Bulk Credit / Debit
    • Analytics Dashboard
  • Settings Tabs

    • General
    • Recharge
    • Checkout
    • Withdrawal
    • Payout (PayPal/Stripe)
    • KYC
    • Cashback
    • Referral
    • Multilevel
    • BNPL
    • QR Pay
    • Notifications
    • Wallet Central
    • Integrations
    • API Keys
  • Notifications

    • Email Notifications
    • SMS Notifications
  • Developer

    • REST API
    • Filters & Hooks
  • Help

    • Troubleshooting
    • FAQ
    • Glossary
Support
Buy Now
View Demo
  • Getting Started

    • Introduction
    • Quick Start
    • Features
    • Installation
    • First-Time Setup
    • Admin Tour
  • Wallet Core

    • Core Wallet
    • Wallet Payment Gateway
    • Recharge / Top-up
    • Wallet Transfer
    • My Wallet Page
    • Shortcodes
  • Earn & Reward

    • Cashback Engine
    • Referral Program
    • Multilevel Referral
    • Daily Login Reward
    • Invite Friends
    • Deposit / Top-up Bonus
  • Spend & Payout

    • Checkout Discount
    • Checkout Restriction
    • Withdrawal
    • PayPal Payout
    • Stripe Payout
    • Refund to Wallet
    • Buy Now Pay Later
  • Identity & Mobile

    • KYC
    • QR Code Payments
  • Wallet Central

    • Overview
    • Endpoint & Routing
    • CTA Discovery
    • Home Dashboard
    • Add Funds
    • Withdraw
    • Withdrawals List
    • Send Money
    • QR Pay
    • Payment Requests
    • Refer & Earn
    • Transactions
    • Settings
    • KYC Flow
    • Architecture
    • Tweaks & Responsive
    • Security
    • Admin Controls
  • Admin Tools

    • Admin Settings (index)
    • Bulk Credit / Debit
    • Analytics Dashboard
  • Settings Tabs

    • General
    • Recharge
    • Checkout
    • Withdrawal
    • Payout (PayPal/Stripe)
    • KYC
    • Cashback
    • Referral
    • Multilevel
    • BNPL
    • QR Pay
    • Notifications
    • Wallet Central
    • Integrations
    • API Keys
  • Notifications

    • Email Notifications
    • SMS Notifications
  • Developer

    • REST API
    • Filters & Hooks
  • Help

    • Troubleshooting
    • FAQ
    • Glossary
Support
  • Getting Started

    • Introduction
    • Quick Start — Wallet Live in 5 Minutes
    • Features
    • Installation
    • First-Time Setup
    • Admin Tour
  • Wallet Core

    • Core Wallet
    • Wallet Payment Gateway
    • Recharge / Top-up
    • Wallet Transfer
    • My Wallet Page
    • Shortcodes
  • Earn & Reward

    • Cashback Engine
    • Referral Program
    • Multilevel Referral
    • Daily Login Reward
    • Invite Friends
    • Deposit / Top-up Bonus
  • Spend & Payout

    • Checkout Discount
    • Checkout Restriction
    • Withdrawal
    • PayPal Payout
    • Stripe Payout
    • Refund to Wallet
    • Buy Now Pay Later (BNPL)
  • Identity & Mobile

    • KYC (Know Your Customer)
    • QR Code Payments
  • Wallet Central

    • Wallet Central Overview
    • Endpoint & Routing
    • CTA Discovery
    • Home Dashboard
    • Add Funds
    • Withdraw
    • Withdrawals List + Detail
    • Send Money
    • QR Pay
    • Payment Requests
    • Refer & Earn
    • Transactions
    • Settings (customer)
    • KYC Flow
    • Architecture
    • Tweaks & Responsive
    • Security
    • Admin Controls
  • Admin Tools

    • Admin Settings
    • Bulk Credit / Debit
    • Analytics Dashboard
  • Settings Tabs

    • General Settings
    • Recharge Settings
    • Checkout Settings
    • Withdrawal Settings
    • Payout Settings (PayPal + Stripe)
    • KYC Settings
    • Cashback Settings
    • Referral Settings
    • Multilevel Settings
    • BNPL Settings
    • QR Pay Settings
    • Notifications Settings
    • Wallet Central Settings
    • Third-Party Integrations
    • API Keys
  • Notifications

    • Email Notifications
    • SMS Notifications
  • Developer

    • REST API
    • Filters & Hooks
  • Help

    • Troubleshooting
    • FAQ
    • Glossary

Cashback Engine

Reward customers automatically on every order. Drives repeat purchase by parking the reward in their wallet — they spend it next time.

Setting up?

Skip to Cashback Settings for the step-by-step rule-editor walkthrough + 5 ready-to-use recipes.

What It Does

ForMeans
CustomerEarn wallet credit automatically on completed orders. Spend it on the next purchase
AdminBuild rules in the admin UI — by product, category, or store-wide. Pick percent or fixed amount. Set caps

How Customers See It

  1. Place an order → pay → order completes
  2. Wallet gets credited automatically
  3. Activity feed shows a Cashback row with the rule name + amount
  4. Cashback email fires (if enabled)

That's it. No coupon codes, no claim flow.

Recent activity card — cashback rows show inline alongside top-up, refund, transfer

Rule Anatomy

Wallet → Cashback Rules → Add new

Cashback Rules list — priority, scope, type, status; click any row to edit

FieldWhat it does
Nameinternal label (also shown in customer activity feed)
Activerule fires only when ON
Scopeproduct / category / global
Targetsthe products / categories — only when scope is product/category
MatchOR (any line item matches) / AND (all line items match)
Min order valuerule fires only above this cart total
Max order valueoptional ceiling
Typepercent / fixed
Amountthe percent (e.g. 5 = 5%) or currency value
Max cashback capoptional per-order ceiling
Prioritylower runs first; first matching rule wins
Start / End dateoptional window
Per-customer capmax times this rule can fire for one customer

One cashback per order

The engine awards one cashback per order — whichever rule matches first by priority. To stack multiple percentages, build a single rule that combines them.

Common Setups

5% on everything, no minimum

FieldValue
Scopeglobal
Min order value0
Typepercent
Amount5

Simplest possible rule. Drives wallet engagement across the catalogue.

10% only on Electronics, min order ₹2000, capped at ₹1000

FieldValue
Scopecategory
TargetsElectronics
Min order value2000
Typepercent
Amount10
Max cap1000

Higher-margin categories get more aggressive cashback.

Flat ₹50 cashback on the launch SKU

FieldValue
Scopeproduct
TargetsLAUNCH-SKU-1
Typefixed
Amount50

Drives attention to a specific product.

Limited-time double cashback

Build two rules:

  • Rule A: priority 10, scope global, percent 5 (your baseline)
  • Rule B: priority 5, scope global, percent 10, with start_date + end_date set to the campaign window

During the window Rule B (lower priority = checked first) wins. After the window, only Rule A matches.

Refund Reversal

When the order is refunded, cashback reverses automatically.

RefundCashback
Full refundfull cashback debited
Partial refundproportional cashback debited
Order cancelledno reversal — cashback applies on completed, not processing

Reversal is protected — never debits below zero. If the customer has spent the cashback already, the shortfall becomes BNPL debt (only when BNPL is enabled).

Settings That Affect This

SettingWhereEffect
Cashback basisfilterablesubtotal-ex-tax (default), subtotal-inc-tax, or total
Cashback emailNotifications tabtoggle the credited-confirmation email

When Something Goes Wrong

ProblemFix
Cashback not creditedRule active? Min met? Order in completed? Already credited?
Wrong rule firedCheck priority — lower number runs first
Cashback credited twiceShould not happen — guard meta on order. Delete the duplicate ledger row + open a ticket
Want cashback on subtotal but it's on totalUse the wkwp_cashback_basis filter (see dev section)
For developers — hooks + idempotency

Resolution flow

WKWP_Cashback_Engine::resolve_for_order:

  1. Load all active rules ordered by priority ASC
  2. For each rule, check date window, scope, min/max order value, per-customer cap
  3. First rule passing all checks → compute amount → break

Idempotency

Order meta _wkwp_cashback_processed = yes written immediately after credit. Subsequent runs of woocommerce_order_status_completed (admin flipping statuses) are no-ops.

To re-issue cashback (rare): delete the meta + the matching ledger row, then re-trigger order status.

Hooks

HookTypeWhen
wkwp_cashback_eligible_rulesfiltermutate the rules list before resolution
wkwp_cashback_resolved_rulefilterswap out the chosen rule
wkwp_cashback_amountfiltermutate computed cashback before credit
wkwp_cashback_creditedactionafter credit row written
wkwp_cashback_reversedactionafter refund reversal
wkwp_cashback_basisfiltersubtotal_ex_tax / subtotal_inc_tax / total

Reporting

Filter Wallet → Transactions by type = cashback. CSV export for accounting reconciliation.

Related

  • Core Wallet
  • Refund to Wallet
  • Daily Login Reward
  • Filters & Hooks
Next
Referral Program