POS Multi-Currency Cash Payments
https://apps.odoo.com/apps/modules/19.0/pos_nm_multicurrencies
Accept cash in your customers' currency.
Does your shop welcome international customers? With POS Multi-Currency Cash Payments, your Odoo point of sale accepts cash in multiple currencies — dollars, euros, CFP francs and more — without ever leaving the checkout screen. The amount due is displayed in the customer's currency, conversion relies on the exchange rates in your Odoo database, and change can be given in the currency the customer paid with, clearly itemised on the receipt. A solution designed for tourist areas, duty-free shops and border retailers.
Where most solutions stop at converting the payment, this module handles the full cash drawer cycle for every currency: opening float, cash in and cash out during the day, and closing count with automatic difference calculation. Every cash discrepancy is posted to the profit and loss accounts of the relevant journal — your books stay accurate, currency by currency.
On the back-office side, each POS session displays a summary table per currency (opening, sales, transactions, expected amount, counted amount, difference), the sales report breaks down totals by currency, and each payment retains the amount actually collected in the customer's currency, visible on orders as well as in the payments list.
Available for Odoo 17, 18 and 19 (Community and Enterprise) on the Odoo Apps Store, the module is set up in four steps — one cash journal per currency, a payment method, one option to enable — and comes with full documentation. Publisher support: [email protected].
Documentation
| Language | PDF file |
|---|---|
| Deutsch (German) | |
| English | |
| Español (Spanish) | |
| Français (French) |
Forbidden Discounts
https://apps.odoo.com/apps/modules/19.0/nm_forbidden_discount
Forbidden Discounts on Products and Categories
Every catalogue holds references that must leave the store at their exact price: gift cards, newspapers, prescription drugs, fuel, franchise-mandated prices, loss leaders sold at cost.
This module adds that notion — and enforces it in the four places where a price can drop.
Four Ways to Discount. All Four Blocked.
- Manual discount — on quotations, sales orders, customer invoices and credit notes, the Discount cell turns read-only. A discount forced through an import or the API is refused.
- Point of Sale — the % key of the numpad is greyed out on a protected line, which carries a discreet No discount mention (never printed on the receipt). The order is checked again when it reaches the server.
- Pricelists — a rule may still raise the price of a protected product, never take it below its sales price.
- Promotions, coupons, discount codes and loyalty — protected products are removed from the base of every discount reward, in the back office and at the register. The order's Discount button computes the global discount on the rest of the basket.
One Decision, Three Levels
The policy is set on the product category (inherited by its sub-categories), on the product or on the variant — the most specific decision wins. Protect a whole category in one move, including the products you will create tomorrow, and lift the restriction on the exceptions.
Everything defaults to Inherit: installing the module on a live database changes nothing until you decide something.
Available for Odoo 17, 18 and 19 (Community and Enterprise) on the Odoo Apps Store, the module comes with full documentation. Publisher support: [email protected].
Documentation
| Language | PDF file |
|---|---|
| English | |
| Français (French) |