Part 3: Customer Wallet Management
Today, we will talk about the customer wallet management specification in detail.
As defined in the system features before, it should provide e-wallets for each Customer for each Currencies supported by Odoo settings. User will have at least one Fiat Currency wallet as the main wallet and one or more Crypto Currency wallets.
Before continuing, please consider to like, share, and subscribe our channel if you find it useful, as we will update the topics of Building E-wallet Exchange system with Odoo regularly.
Each wallet balance can be topped-up by depositing money through the respected currency mechanism. For fiat wallet, deposit will be done by interfacing to a payment gateway to local banks.
For crypto wallet, deposit is done by transferring crypto to the wallet address using the same crypto network as the wallet currency. The system will check whether there's an incoming deposit for the wallet, and if it is, then the wallet balance will be increased.
Each crypto wallet balance can be withdrawn to other crypto address by transferring to the destination crypto address. A transfer fee will apply depending on the crypto network used.
Each fiat wallet balance can be withdrawn to local banks by interfacing to payment gateway to local banks.
Each wallet balance can be transferred to other user’s wallet with the same currency without transfer fee.
To implement the wallet data on a Customer, we will add additional tabs on Odoo's Partner Form that will hold the customer Wallets.
On every partner creation, the Wallets will be automatically populated with the Currencies defined as active on Odoo settings.
Prior to be applied on a wallet, the Currency data should be identified with a flag, identifying whether it is a fiat or crypto currency.
Every wallet records belong to a Partner will hold their balance in crypto, as well as in company default currency, by converting it with the current rate.
If it is a cryptocurrency wallet, then it will also hold the wallet address on corresponding crypto network. The address is used for depositing crypto to increase the wallet balance.
The Partner Form also shows the total balance of all wallets the partner has, converted into the company main currency, for example USD, EUR, etc.
Here is a sample of Partner Form added with wallets information on a new tab.
On the Wallet tab:
Name: is the wallet name, a combination of the wallet currency name and the partner name to make it unique.
Balance: is the wallet balance in company default currency, for example IDR, USD, etc.
Balance Curr: is the wallet currency balance, for example on BTC wallet, 0.0005 means the amount in BTC.
Deposit Address: is the crypto wallet address for depositing the amount into.
Those are the minimum feature specification for the customer wallet management.
Please consider like, share, and subscribing our channel if you find it useful, as we will update the topics of Building E-wallet Exchange system with Odoo regularly.
Thanks for watching.