Skip to main content
Store Wallet & Store Credit for Odoo — A prepaid wallet and store-credit balance your customers can top up and spend at check — 1/1Illustrative preview

A prepaid wallet and store-credit balance your customers can top up and spend at checkout,

with instant refunds-to-wallet and rule-based cashback. Built to order for Odoo 17, 18 and 19 by ECOSIRE.

What is Store Wallet & Store Credit for Odoo?

A prepaid wallet and store-credit balance your customers can top up and spend at checkout, with instant refunds-to-wallet and rule-based cashback. Built to order for Odoo 17, 18 and 19 by ECOSIRE. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

`store.wallet` model with one `company_id`-scoped balance per `res.partner`, safe for multi-company setups
`store.wallet.transaction` append-only ledger where the running balance is a stored `compute` field via `@api.depends`, so UI and DB never drift
Top-ups through Odoo's native `payment.provider` / `payment.transaction` flow — reuse Stripe, PayPal, bank transfer without a new gateway
Server action / automated action posts a `top_up` ledger row only on a confirmed, reconciled payment transaction
"Pay from wallet" injected into website `sale.order` checkout and POS `pos.order`, supporting partial payment combined with card or cash
Instant refund-to-wallet from an order or `account.move` credit note — value returns in seconds, no card-fee round-trip
Configurable cashback/loyalty rules (percentage or fixed) scoped by product category, customer group, or campaign window
Optional per-wallet `account.account` liability backing so outstanding store credit appears on the balance sheet
Customer portal statement in `/my`, QWeb-rendered, with paginated transaction history, filters and running balance
Balance expiry and negative-balance guards enforced at the ORM layer with configurable overdraft policy
`ir.model.access.csv` + record rules so a customer can only ever read and spend their own wallet
XML-RPC / JSON-RPC endpoints to read balance, post credits, and debit wallets from POS, mobile, or marketplace connectors
QWeb PDF wallet statement report for customer service and dispute handling
Admin adjustment tool with mandatory reason and audit trail on every manual credit or debit

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Retailers who want to hand customers a prepaid balance quickly hit a wall in stock Odoo. Native Odoo has gift cards and some eWallet mechanics in Enterprise eCommerce, but there is no first-class, portal-visible "store wallet" a shopper can top up, spend partially at checkout, and watch as a running ledger. Refunds go back to the original payment method through account.move credit notes and payment reconciliation, which is slow and card-fee-heavy — there is no button to instantly return value as store credit the customer can respend the same day. That gap costs repeat sales and buries your support team in "where is my refund" tickets.

ECOSIRE builds a dedicated wallet layer on top of Odoo's own accounting and eCommerce plumbing. At the core is a store.wallet model (one balance per res.partner, company_id-scoped for multi-company) plus a store.wallet.transaction ledger where the running balance is a stored compute field driven by @api.depends over every credit and debit line, so the figure on screen and the figure in the database can never drift. Top-ups run through Odoo's existing payment.provider / payment.transaction flow (Stripe, PayPal, bank transfer — whatever you already accept); on a confirmed transaction a server action posts a top_up ledger row. Optionally each wallet is backed by a dedicated account.account liability so your accountant sees outstanding credit as a real balance-sheet number rather than a spreadsheet guess.

At checkout — both the website sale.order and the POS pos.order — we add a "Pay from wallet" option that debits the balance and can be combined with card or cash for partial payment, so a customer with 40 in credit can spend it against a 100 order and pay the rest normally. Refunds are the headline feature: from an order or a credit note, staff (or an automated rule) issue an instant refund credit that lands in the wallet in seconds instead of days. Cashback and loyalty rules are configurable records — percentage or fixed, per product category, per customer group, or per campaign window — evaluated by an @api.depends-aware engine and posted as cashback ledger rows on order confirmation. Every movement is exposed in the customer's /my portal via a QWeb-rendered statement, and the same balances are reachable over the XML-RPC / JSON-RPC API so a POS terminal, mobile app, or marketplace connector can read and debit the wallet programmatically.

Because this is build-to-order, nothing ships until we agree on scope. A short scoping call establishes your edition (Community vs Enterprise — it changes how we hook eCommerce and POS), your target versions (17.0 / 18.0 / 19.0), and the exact top-up, refund and cashback rules for your business. We then build the module against your data on a staging instance, secure it with ir.model.access.csv and record rules so customers only ever see their own wallet, run UAT with you, and deploy behind a rollback plan. Typical delivery is one working week from confirmed scope, and you receive the full source and git repository at handover.

What you get

  • Installable, version-matched module source for your Odoo 17.0, 18.0 or 19.0 instance (Community or Enterprise)
  • Installation and configuration on your environment, including payment-provider and cashback-rule setup
  • Technical documentation: data model, `@api.depends` compute logic, security rules, and API reference
  • User guide plus a live training session for staff on top-ups, refunds and adjustments
  • Post-go-live support window for defect fixes and questions
  • UAT on a staging instance with an agreed test script and a documented rollback plan
  • Handover of the complete git repository with commit history
  • Accounting mapping notes so your finance team can reconcile wallet liability against the ledger

Who this is for

Independent retailer / eCommerce owner

Wants to give repeat customers a prepaid balance and cut card fees, without stitching together gift cards and manual spreadsheets. Needs a wallet visible in the customer portal and usable at both website and POS checkout.

Customer-service / operations lead

Drowning in refund tickets and slow card reversals. Needs a one-click refund-to-wallet that resolves disputes instantly, plus a clear per-customer statement to answer 'where is my balance' questions.

Finance / accounting manager

Must treat outstanding store credit as a real liability, not a hidden number. Needs wallet balances backed by an `account.account` and reconcilable against orders, top-ups and refunds.

Marketing / loyalty manager

Wants cashback and store-credit incentives to drive repeat purchases, scoped by category, customer group or campaign, with the credited amount landing automatically in the shopper's wallet.

How Store Wallet & Store Credit for Odoo Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Portal-visible wallet balanceFirst-class `store.wallet` with running ledger in `/my`Possible but you design the model and portal from scratchUsually a balance field, portal statement variesNo true store wallet; gift cards only
Partial payment at checkoutWallet + card/cash split on website and POSMust hook both checkout flows yourselfOften website-only, POS support patchyNot supported for a store balance
Instant refund-to-walletOne-click or automated `refund` credit in secondsBuild the refund path and reconciliation yourselfSometimes present, rarely accounting-backedCredit note to original method, slow and fee-heavy
Cashback / loyalty rulesCategory/group/campaign-scoped, posts `cashback` rowsRule engine is yours to design and testBasic percentage cashback, limited scopingLoyalty exists but not credited to a wallet balance
Accounting integrityOptional `account.account` liability backing, reconcilableDepends on your accounting designOften off-ledger balance fieldN/A — no wallet concept
API accessXML-RPC / JSON-RPC read and debit for POS/mobileYou expose and secure endpoints yourselfRarely documented for external debitGeneric ORM API, no wallet endpoints
Fit to your businessBuilt to your exact top-up, refund and cashback rulesFully bespoke but you own all the riskFixed feature set, configure around itWhatever core ships, no more
Support & handoverDocs, training, support window, full git repoDepends on your developer's handoverVendor tickets, no source ownershipCommunity/Enterprise support, no custom code

Frequently Asked Questions about Store Wallet & Store Credit

How long does delivery take?

This is a build-to-order module, not an instant download. After a short scoping call to lock your edition, versions and wallet rules, typical delivery is one working week from confirmed scope. We build against your data on staging, run UAT with you, then deploy behind a rollback plan.

Does this work on Odoo Community or only Enterprise?

Both. The wallet model, ledger and refunds work on Community and Enterprise. The edition mainly changes how we hook eCommerce and POS checkout — we confirm your edition on the scoping call and build the integration accordingly for 17.0, 18.0 or 19.0.

How are refunds returned to the wallet, and does accounting stay clean?

A refund posts an instant `refund` credit to the customer's `store.wallet.transaction` ledger — value is respendable in seconds. If you want strict accounting, we back each wallet with a dedicated `account.account` liability so outstanding credit is reconcilable on your balance sheet rather than sitting outside the ledger.

Can customers pay only part of an order from their wallet?

Yes. At website and POS checkout we add a 'Pay from wallet' option that debits the available balance and lets the remainder be paid by card or cash. A customer with 40 in credit can apply it to a 100 order and pay the other 60 normally.

Is the wallet secure — can one customer see another's balance?

No. Access is enforced with `ir.model.access.csv` and record rules so a portal user can only read and spend their own wallet. Manual admin adjustments require a reason and are written to an audit trail.

Can our POS terminal or mobile app read and debit the wallet?

Yes. Balances and ledger operations are exposed over Odoo's XML-RPC / JSON-RPC API, so a POS terminal, mobile app or marketplace connector can check a balance and post debits or credits programmatically, subject to the same access rules.

What about support and updates after go-live?

Every build includes a post-go-live support window for defect fixes and questions. Because you receive the full source and git repository, you can maintain it yourself or engage ECOSIRE for version upgrades and enhancements as your needs grow.

Request a quote

Store Wallet & Store Credit

A prepaid wallet and store-credit balance your customers can top up and spend at checkout, with instant refunds-to-wallet and rule-based cashback. Built to order for Odoo 17, 18 and 19 by ECOSIRE.

  • `store.wallet` model with one `company_id`-scoped balance per `res.partner`, safe for multi-company setups
  • `store.wallet.transaction` append-only ledger where the running balance is a stored `compute` field via `@api.depends`, so UI and DB never drift
  • Top-ups through Odoo's native `payment.provider` / `payment.transaction` flow — reuse Stripe, PayPal, bank transfer without a new gateway
  • Server action / automated action posts a `top_up` ledger row only on a confirmed, reconciled payment transaction

Request a Quotation

Tell us about your Store Wallet & Store Credit requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.