Show every product price right on the card — with live discounts customers can see
A focused, lightweight POS extension that displays pricelist-aware prices on the cashier's product grid, with strike-through original prices and an animated savings badge whenever a discount applies.
Built to make every checkout faster
Cashiers see prices at a glance. Customers see their loyalty discount before they pay. No more "how much is this?" interruptions at the counter.
Live price on every card
A modern green gradient pill under each product name shows the current selling price, formatted to the shop's currency. Renders automatically on all 36+ demo products and your real catalog.
Pricelist-aware discounts
When the order is on a loyalty, wholesale, or member pricelist, the pill shows the discounted price live. Switch the customer mid-order and every card recalculates with zero lag.
Visible savings badge
The original price strikes through and an animated "-X%" badge pops into the card corner whenever a discount applies. Customers see the value before they pay; loyalty actually feels rewarding.
Per-shop toggle
Each Point of Sale shop has its own "Show Product Price on Card" boolean. The Bakery can keep image-only cards while the Furniture Shop shows prices. Independent and instant.
OWL-native reactivity
Built on Odoo's OWL framework as a clean patch over the standard ProductCard component. No fork, no override of internal methods, no breakage when you switch customers or pricelists.
Safe to uninstall
Adds one boolean column to pos.config and three small frontend files. Uninstall returns the shop to vanilla Odoo with zero residue. No database migrations to worry about.
A price pill under every product
Out-of-the-box Odoo POS shows only the product name. Cashiers either memorize prices or tap each product to check. This module surfaces the price right where the eye is already focused.
- Renders on every product card in the grid, no extra configuration
- Uses the same currency formatting as the rest of the POS
- Smooth hover lift and subtle gradient — feels native to Odoo
- Works for variants, combos, and products with attribute extras
Make every discount unmissable
When the order has a pricelist that lowers the price, the card transforms: the original price strikes through, the green pill shows the new price, and a red -20% badge animates into the top-left corner.
A glance is all the cashier or customer needs to confirm the savings — no math, no surprises, no need to add the product to the cart just to see the price.
- Strike-through original price beside the discounted pill
- Animated -X% badge pops in with a scale-in keyframe
- Recalculates instantly when the cashier switches customer or pricelist
- Hidden automatically when no discount applies — no clutter
One toggle, per shop
The module adds a single Show Product Price on Card boolean to each shop's configuration form. Flip it on or off without touching any other setting.
- Each Point of Sale shop decides independently
- Default is ON when the module is installed
- Cleanly placed under a "SDLC Product Price Display" section
- No global setting to hunt for — the toggle is where the shop is
Before and after, side by side
A direct comparison of the standard Odoo POS card and the same card with this module installed.
| Behavior | Standard Odoo POS | With this module |
|---|---|---|
| Price visible on product card | Hidden | Shown as a gradient pill |
| Customer-specific pricelist price | Only visible after adding to cart | Live on every card before adding |
| Discount visibility | None on the card | Strike-through + animated −X% badge |
| Per-shop control | N/A | One toggle on each shop's config |
| Hover interaction | Plain | Pill lifts, brightens, casts a deeper shadow |
| Reaction to pricelist switch | Static | All cards recalculate instantly via OWL reactivity |
Up and running in 60 seconds
No data migration. No setup wizard. No new menus to learn.
Install the module
From Apps, search for "POS Product Price on Card" and click Install. The module depends only on point_of_sale; no other apps required.
Open any POS session
Navigate to Point of Sale and click Open POS on any shop. The product grid now shows the green price pill on every card. Default is ON for every existing and new shop.
(Optional) Apply a discount pricelist
If the order is on a pricelist that lowers the price, the strike-through original price and the red -X% savings badge appear automatically. No additional configuration of the module is needed.
(Optional) Toggle per shop
To disable the feature on one specific shop, go to Configuration → Point of Sale → pick the shop, scroll to SDLC Product Price Display, and flip the toggle off. Hard-refresh the POS tab and the pills disappear on that shop only.
Built clean. Engineered safe.
No core overrides. No conflicts with other POS extensions. Six files, around 220 lines of code total.
Frequently asked questions
getPrice resolver Odoo uses when adding items to the cart, so variant-specific prices and combo base prices are respected.patch() API and inherits the XML template via t-inherit. Both are designed for multiple extensions to coexist.pos.config is dropped, the JavaScript stops loading from the asset bundle, and the form view inheritance is removed. The POS reverts to vanilla. No data is lost.static/src/scss/product_card_price.scss) with clearly named classes. Edit gradients, shadows, and animations to match your brand in minutes.
Please log in to comment on this module