Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. E-commerce
  3. B2B Pricing Suite — Tiered Pricing, MOQ, Quantity Steps & Volume Discount for Odoo eCommerce v 19.0
  4. Sales Conditions FAQ

B2B Pricing Suite — Tiered Pricing, MOQ, Quantity Steps & Volume Discount for Odoo eCommerce

by Hexalian LLC https://hexalian.com
Odoo

$ 80.02

v 19.0 Third Party
Live Preview
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 17.0 18.0 19.0
You bought this module and need support? Click here!
Versions 17.0 18.0 19.0
  • Description
  • Manifest
  • License

B2B Pricing Suite

Tiered Pricing, MOQ, Quantity Steps & Guest Price Hiding for Odoo eCommerce

Odoo 18.0+ B2B Pricing Tools MOQ Enforcement EN/ES/FR Translations
Get B2B Pricing Suite — $79

Free lifetime updates & bug fixes · OPL-1 License

What's Included

Everything you need to transform your Odoo store into a B2B sales engine

What You Get Details
Tiered Pricing Table Display all quantity breaks with per-unit savings on product pages
Best-Price Highlight Automatically highlights the best-value tier in the pricing table
Date-Based Pricing Set start/end dates on tiers; expired tiers auto-hidden with expiring-soon badges
Price Range on Shop "From X to Y" range on the shop grid for tiered products
Savings Messages Live-updating "Order N more to get $X each" upsell prompts
Minimum Order Quantity Per-product MOQ enforcement on frontend + backend (cannot be bypassed)
Quantity Step Force quantities in multiples (5, 10, 50) with clear error messages
Unit Price Display Show price per kg, per item, per hour — any configurable label
Guest Price Hiding Per-product toggle to require login before revealing prices
Multi-Website Works correctly in multi-website environments
Multi-Currency Proper decimal formatting per currency symbol
Multi-Language Full EN / ES / FR translations included
32 Unit Tests Comprehensive test coverage for controllers, models, and hooks
Free Lifetime Updates Bug fixes and feature improvements included at no extra cost

Overview

Give your B2B customers the pricing transparency they need to buy more

The B2B Pricing Suite brings your backend pricelists to life on the frontend. Customers can see quantity breaks with per-unit savings, minimum order quantities are enforced, and dynamic messages encourage upsell — all powered by your existing Odoo pricelist items.

Server-side validation ensures MOQ and quantity step rules cannot be bypassed. Cart validation runs on the backend, giving you peace of mind that your pricing rules are enforced.

Hide prices from guests with a per-product toggle. Non-logged-in visitors see a login prompt instead of prices, "Add to Cart", or tiered tables — perfect for wholesale and B2B stores that require registration.

Batch-loaded for performance. Shop grids with 100+ products load pricing data in a single RPC call. CSS custom properties adapt to any Odoo theme automatically.

15
Features
4
API Endpoints
32
Tests
3
Languages

Key Features

Everything you need for B2B pricing on the website

Tiered Pricing Table

Show all quantity breaks with per-unit savings on the product page. Works with existing pricelists — no duplicate data entry.

Best-Price Highlight

The tiered table automatically highlights the row with the lowest per-unit price, so customers instantly spot the best value.

Price Range on Shop

Show "From $X to $Y" on the shop grid for tiered products. Helps customers identify bulk discounts without opening each product page.

Savings Messages

"Order 20 more to get $3.50 each" — live-updating messages that drive upsell and increase average order value.

Minimum Order Quantity

Enforce per-product minimums with frontend input clamping and server-side validation. Cannot be bypassed.

Quantity Step

Force quantities in multiples (5, 10, 50). Validated on both client and server with clear error messages.

Unit Price Display

Show price per kg, per item, per hour — any label you choose. Dynamically updates to reflect the selected tier.

Hide Prices from Guests

Per-product toggle to hide prices, "Add to Cart", and tiered tables from non-logged-in visitors with a login prompt.

Date-Based Pricing

Set start/end dates on pricelist tiers. Expired tiers auto-hide, with optional "expiring soon" countdown badges.

Theme-Compatible CSS

Uses CSS custom properties to adapt to any Odoo website theme automatically. No theme-specific overrides needed.

Multi-Website

Works correctly in multi-website environments with proper website resolution and pricelist scoping.

Multi-Language

Full translations included for English, Spanish, and French. All customer-facing strings are translatable.

See It In Action

Screenshots from the Odoo frontend

Tiered Pricing Table, Price Range & Date Columns

Product page showing price range, tiered pricing table with quantity breaks, unit prices, savings, and expiration dates

The product page displays a price range above the tiered pricing table. When date-based pricing is enabled, each tier shows its expiration date. Tiers expiring within 30 days get an amber expiring-soon badge with a red countdown — e.g. "22 Jul 2026 (1d)" — while far-out dates show as clean purple badges. This drives urgency and helps customers plan their orders.

Price Range on Shop Grid

Odoo shop page showing price range from lowest to highest tier and expiring-soon badges on products with tiered pricing

Products with tiered pricing show a "€X - €Y" range directly on the shop grid. Products with hidden prices show "Log in for price" instead. When date-based pricing is active, tiers expiring within 30 days display expiring-soon badges with a countdown — giving customers urgency to buy.

Server-Side MOQ Enforcement

Cart showing MOQ validation warning: quantity below minimum order triggers server-side enforcement

When a customer tries to checkout with a quantity below the minimum, the cart shows a clear validation warning — "Quantity adjustments needed: min 5 (currently 1)." MOQ and quantity step rules are enforced both on the frontend and the backend. Customers cannot bypass these rules to place an order that violates your B2B requirements.

Hide Prices from Guests — Product Page

Product page showing login prompt instead of prices for non-logged-in visitors

When "Show Price to Customers" is unchecked on a product, non-logged-in visitors see a clean login prompt instead of prices, "Add to Cart" button, or the tiered pricing table. Logging in restores full visibility automatically.

Hide Prices from Guests — Shop Grid

Shop page showing 'Log in for price' on products with hidden prices for non-logged-in visitors

On the shop grid, products with hidden prices display "Log in for price" instead of the actual price or price range. This gives non-logged-in visitors a clear call to action while keeping your B2B pricing private. Once logged in, the full price range and tiered pricing table become visible.

Why Buy the B2B Pricing Suite?

See what you get vs. Odoo out of the box

Feature Odoo Default B2B Pricing Suite
Tiered pricing table on product page Not visible to customers Fully displayed with savings
Price range on shop grid Single price only "€X - €Y" range for tiered products + "Log in for price"
Dynamic upsell messages Not available Live "Order N more" prompts
Minimum order quantity Not enforced on website Frontend + backend validation
Quantity step enforcement Not available Per-product multiples enforced
Unit price display Not available Configurable per product
Best-price highlight in table Not available Auto-highlights best value tier
Hide prices from guests Not available Per-product login gate
Variant-level pricing Backend only Fully supported on website
Multi-currency Default behavior Proper decimal formatting per currency
Batch performance (100+ products) N/A Single RPC call for all products
Date-based pricing tiers Not available Auto-filter expired, expiring-soon badges
Configuration N/A Per-feature toggles in Settings
No duplicate data entry. Tiered pricing is read directly from your existing Odoo pricelist items. Configure pricing in one place, display it everywhere.

Technical Specifications

Built with Odoo best practices

Dependencies:

  • base
  • web
  • website
  • website_sale
  • product
  • sale

Compatibility:

  • Odoo 18.0 Community Edition
  • Odoo 18.0 Enterprise Edition
  • Bootstrap 5 compatible
  • Works with all standard themes

Test Coverage:

  • 32 unit tests (controllers + models + hooks)
  • MOQ validation edge cases
  • Multi-currency support
  • Variant-level pricelist deduplication
  • Public user price hiding
  • Date-based tier filtering & expiring-soon detection

API Endpoints:

  • /shop/b2b-pricing-config — Get global module configuration
  • /shop/b2b-pricing-data — Get pricing data for a product
  • /shop/b2b-pricing-batch — Batch pricing for multiple products
  • /shop/b2b-validate-cart — Validate cart against MOQ/step rules

File Structure:

ecommerce_b2b_pricing_suite/
├── controllers/
│   ├── __init__.py
│   └── main.py              # 4 JSON-RPC endpoints
├── data/
│   └── default_config.xml    # Default settings
├── i18n/
│   ├── es.po
│   ├── fr.po
│   └── ecommerce_b2b_pricing_suite.pot
├── models/
│   ├── __init__.py
│   ├── product_template.py   # MOQ, step, unit price fields
│   ├── res_config_settings.py # Settings panel
│   └── sale_order.py         # Server-side validation
├── static/
│   ├── description/
│   │   ├── icon.png
│   │   ├── index.html
│   │   └── images/
│   │       ├── product_page.png
│   │       ├── shop_page.png
│   │       ├── shop_guest.png
│   │       ├── cart_page.png
│   │       ├── guest_hidden_price.png
│   │       └── settings_page.png
│   └── src/
│       ├── css/
│       │   └── pricing_suite.css
│       └── js/
│           └── pricing_suite.js
├── tests/
│   ├── __init__.py
│   ├── test_controllers.py   # 21 tests
│   └── test_models.py        # 11 tests
├── views/
│   ├── product_view.xml
│   ├── res_config_settings_view.xml
│   └── website_templates.xml
├── __init__.py
├── __manifest__.py
├── hooks.py                  # Clean uninstall
├── LICENSE
└── README.md

Perfect For

Ideal for these business types

  • Wholesalers — Show bulk pricing tiers that increase with order volume
  • Manufacturers — Display price per unit and enforce MOQ from suppliers
  • Distributors — Customer-specific pricelists with tiered visibility
  • Any B2B Store — Increase average order value with savings incentives
  • Office Supplies — Enforce case-pack quantities with step enforcement
  • Raw Materials — Show price per kg/ton with tiered volume discounts
  • Subscription Products — Display per-unit pricing for multi-quantity orders
  • Membership Stores — Hide prices from non-members with guest gating

Quick Configuration

Get started in minutes

  1. Go to Settings → B2B Pricing Suite and enable the module
  2. Toggle individual features on/off (tiered table, price range, savings messages, unit price)
  3. On each product, configure MOQ and unit price label in the B2B Pricing tab
  4. Tiered pricing is automatically read from your existing pricelist items
Quick Start: Install the module, enable it in Settings, and your existing pricelist items are instantly displayed as a tiered pricing table on the product page — no additional configuration needed.

Settings Panel

Every feature individually toggleable

Odoo Settings panel showing B2B Pricing Suite configuration toggles: enable module, hide prices, tiered table, price range, savings messages, unit price, date visibility

All features are individually toggleable in Settings → B2B Pricing Suite. The Pricing Visibility section controls the master toggle and guest price hiding. Customer Engagement toggles the tiered table, price range, savings messages, unit price display, and date visibility (Always Show Dates, Expiring Soon Only, or Disabled). Tiered pricing data is read directly from your existing Sales → Products → Pricelists items — no duplicate data entry.

What's New in v2.1.0

Recent improvements and additions

New Features

  • Date-Based Pricing Tiers — Tiers with date_start/date_end are automatically filtered; expired tiers hidden
  • Show Dates Setting — Three modes: Disabled, Always Show Dates, Only When Expiring Within 30 Days
  • Expiring Soon Badge — Visual countdown for tiers about to expire (within 30 days)
  • Valid Until Column — Optional date column in the tiered pricing table

Improvements

  • 7 New Tests — Date filtering, expiring-soon detection, show_dates config (32 total)
  • Multi-Website Support — No longer hardcodes website ID 1
  • jQuery Removed — Migrated to native fetch() API
  • SEO Structured Data — Schema.org AggregateOffer markup

Frequently Asked Questions

Common questions about the B2B Pricing Suite

Does this module work with existing Odoo pricelists?

Yes. The B2B Pricing Suite reads tiered pricing directly from your existing Odoo pricelist items. No duplicate data entry — configure pricing once in Sales → Products → Pricelists, and it automatically displays on your storefront.

Can I hide prices from non-logged-in visitors?

Yes. You can hide prices globally for all products or per-product using the "Show Price to Customers" toggle. Non-logged-in visitors see a "Log in for price" prompt instead of prices, the "Add to Cart" button, or the tiered pricing table.

Does it support multi-website and multi-currency?

Yes. The module works correctly in multi-website environments with proper website resolution and pricelist scoping. Multi-currency is fully supported with proper decimal formatting per currency.

Is the minimum order quantity enforced on the backend?

Yes. MOQ and quantity step rules are enforced both on the frontend (JavaScript) and the backend (sale.order.line constraints). Customers cannot bypass these rules to place orders that violate your B2B requirements.

Does it work with product variants?

Yes. The module supports both template-level and variant-level pricelist items. When a customer selects a variant, the pricing data automatically refreshes to show variant-specific tiers.

Is there a jQuery dependency?

No. The module uses pure vanilla JavaScript with the native fetch() API. Zero jQuery dependency means faster page loads and no conflicts with other modules.

The Perfect Companion

Need to replace "Add to Cart" with "Request a Quote"?

Request for Quote — $49 →

Pair the B2B Pricing Suite with our free Request for Quote module for a complete B2B e-commerce experience — tiered pricing on products you sell, quote-only for products you negotiate.

Bundle & Save: Get both modules together in the B2B Commerce Suite for $99 (save $29 vs buying separately).

Support

For technical support or feature requests, contact support@hexalian.com

Get B2B Pricing Suite — $79

B2B Pricing Suite v2.1.0 | Developed by Hexalian LLC

License: OPL-1. This software is provided "as is", without warranty of any kind.

Related Odoo modules (Odoo 18)

Request for Quote

$49

B2B Commerce Suite

$99 (Bundle)

Wishlist & Favorites
Product Comparison
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Website (website)
• eCommerce (website_sale)
• Discuss (mail)
• Invoicing (account)
Lines of code 1616
Technical Name ecommerce_b2b_pricing_suite
LicenseOPL-1
Websitehttps://hexalian.com
Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with