- Home
- Apps
- Multichannel & PIM Tools
- Website Display Packaging Options
Illustrative previewA build-to-order Odoo eCommerce module that lets your online shoppers view,
compare and select packaging options (single unit, retail case, pallet, gift-wrap, bulk) directly on the product page, with the chosen packaging flowing through cart, quotation, delivery and invoice. Scoped, built, installed and supported by ECOSIRE.
What is Website Display Packaging Options?
A build-to-order Odoo eCommerce module that lets your online shoppers view, compare and select packaging options (single unit, retail case, pallet, gift-wrap, bulk) directly on the product page, with the chosen packaging flowing through cart, quotation, delivery and invoice. Scoped, built, installed and supported 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
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 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
Most Odoo-run eCommerce teams hit the same wall the moment a product ships in more than one way. Odoo's product.packaging model captures a qty per pack for inventory and purchasing, but the website product page has no native mechanism to surface those packaging choices to a shopper, let them pick one, and price accordingly. So customers who want a single unit, a retail case, a full pallet, or a gift-wrapped presentation all land on the same "Add to Cart" button — and your team fields the "which pack size is this?" emails, corrects orders by hand, and eats the margin on mis-picked packaging. Odoo core out of the box simply does not expose packaging as a customer-facing selection on the storefront, and the standard website_sale variant/attribute flow was never designed to model packaging economics (price-per-pack, minimum order quantity, step rounding).
ECOSIRE builds a made-to-order module that turns packaging into a first-class option on your website. On the product page we render a QWeb/OWL selector — radio cards, a dropdown, or image swatches to your design — driven by the packaging records you already maintain, extended with the website-facing fields your catalog needs: display label, description, image, minimum/step quantity, lead-time note, and a per-packaging price rule. When the shopper selects an option, the choice is carried through the website_sale add-to-cart controller and written onto the sale.order.line, so the selected packaging appears in the cart summary, the quotation, the delivery order, and the invoice PDF. Quantities are validated and rounded to the packaging qty (a "sold in cases of 12" rule enforced client-side in OWL and re-checked server-side), and the unit price is derived through a compute method that respects your pricelists, taxes and currency.
Technically this is a clean, upgrade-safe extension rather than a core patch. We add fields to product.packaging (or a dedicated website.packaging.option link model where a product needs website-only packaging that shouldn't affect purchasing), guard everything with ir.model.access.csv plus record rules for multi-website/multi-company isolation, and expose the selector through inherited website templates so a theme upgrade won't wipe it. Pricing logic lives in @api.depends compute methods with stored fields where performance matters; the add-to-cart path is a controller extension of WebsiteSale so it degrades gracefully if JavaScript is disabled. The same packaging selection is exposed on the JSON-RPC/XML-RPC API, so headless frontends, marketplace connectors, or a mobile app can read and set it exactly as the website does. We target Odoo 17.0, 18.0 and 19.0, and note Community vs Enterprise differences during scoping (for example, whether you rely on Enterprise-only delivery or subscription flows that the packaging choice must feed).
Because this is build-to-order, delivery follows a short, predictable path: a scoping call to lock the packaging data model, selector UX, and pricing rules; a fixed written quote; then a build on a staging copy of your database with UAT before we touch production. Typical delivery is one working week from confirmed scope, depending on how many products carry packaging, your pricing complexity, and integration touchpoints. Pricing starts from $999 (indicative, single-company base scope); multi-company or multi-website isolation, heavy pricelist/tax logic, marketplace or ERP integration of the packaging field, and large catalog data migration increase the quoted scope.
What you get
- Installable, version-pinned module source code for your Odoo edition (17.0, 18.0, or 19.0) with a clean `__manifest__.py` and dependency declarations
- Installation and configuration on your environment, including packaging data setup for an agreed pilot set of products
- Technical documentation: data model, fields added, controller and template inheritance points, and API usage notes
- End-user guide plus one live training session for your catalog/eCommerce team
- UAT on a staging copy of your database with a documented test script and a rollback plan before production go-live
- Post-go-live support window for defect fixes and configuration questions on the delivered scope
- Git repository handover with full commit history and tagged release
- Configuration workbook capturing packaging rules, pricing logic, and default-selection decisions agreed during scoping
Who this is for
eCommerce Manager on Odoo Website
Runs the storefront and needs shoppers to self-select case, pallet, or gift-wrap packaging without back-and-forth emails or manual order corrections, with the choice visible end-to-end from cart to invoice.
Operations / Fulfilment Lead
Wants every web order to arrive with packaging already resolved and quantities rounded to real pack sizes, so pick-pack teams stop guessing and mis-picks drop.
Odoo Administrator / Technical Owner
Responsible for an upgrade-safe implementation — inherited templates, proper access rules, and API exposure — that won't break on the next Odoo minor version or theme update.
Finance / Pricing Manager
Needs per-packaging pricing to flow correctly through pricelists, taxes, and currency onto quotations and invoices so margins on each pack format are accurate and auditable.
How Website Display Packaging Options Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Customer-facing packaging selection | Built to your UX (cards/dropdown/swatches) on the product page | Possible but you design and build it from scratch | Fixed selector UI, limited layout control | No packaging selection on the storefront at all |
| Per-packaging pricing | Price rules that respect pricelists, taxes, currency | Whatever you implement and test yourself | Basic price-per-pack, pricelist edge cases often unhandled | Not applicable — packaging isn't priced on web |
| Flows to quotation / delivery / invoice | Written to `sale.order.line`, printed via report inheritance | Requires wiring every document yourself | Usually cart-only; documents may not reflect it | No web packaging choice to carry |
| Fit to your catalog & rules | Data model and rounding rules scoped to your products | Full control, full effort and maintenance burden | Generic model; you adapt your data to it | None |
| Upgrade safety | Inherited templates + added fields, version-pinned | Depends on your team's discipline | Varies by vendor; theme upgrades can break it | N/A |
| API / headless access | Packaging exposed over JSON-RPC/XML-RPC | Only if you build and document it | Rarely exposed for external systems | No web packaging field to expose |
| Support & handover | Docs, training, support window, git repo handover | Internal knowledge only | Ticket-based support, no bespoke changes | Community/self-support |
| Cost & timeline | From $999 indicative; fixed quote, one working week | Higher build cost, open-ended timeline | Low licence fee, but gaps become your project | Free, but the capability doesn't exist |
Frequently Asked Questions about Website Display Packaging Options
How long does delivery take?
Because this is a build-to-order module, we build it after you confirm scope. Typical delivery is one working week from confirmed scope, depending on how many products carry packaging, your pricing complexity, and any integration or migration work. The scoping call gives you a concrete date in your fixed quote.
Is this an existing app I can download and install today?
No. This is a productized service, not an off-the-shelf download. ECOSIRE designs the packaging data model, selector UX, and pricing rules to your catalog, then builds, installs, and supports the module on your Odoo. You receive the installable source and git repository at handover.
How does pricing and scoping work?
Pricing starts from $999 as an indicative from-price for a single-company base scope. After a short scoping call we send a fixed written quote. Drivers that increase scope include multi-company/multi-website isolation, complex pricelist and tax logic, marketplace or ERP integration of the packaging field, and large catalog data migration.
What about support and future Odoo updates?
Every build includes a post-go-live support window for defect fixes and configuration questions. Because we extend Odoo through inherited templates and added fields rather than patching core, the module is upgrade-safe within its target version. Moving to a new major Odoo version (e.g. 18.0 to 19.0) is a separate, quotable migration.
Will the selected packaging show on quotations, delivery orders, and invoices?
Yes. The chosen packaging is written onto the `sale.order.line` and carried through the whole document chain via QWeb report inheritance, so it appears in the cart, quotation, delivery slip, and invoice PDF — not just as a visual choice on the product page.
Does it work with our pricelists, taxes, and multiple currencies?
Yes. Per-packaging prices are computed through methods that respect your active pricelists, tax configuration, and the visitor's currency, so each pack format prices correctly for every customer group. We confirm your exact pricing rules during scoping.
Which Odoo versions and editions do you support?
We build for Odoo 17.0, 18.0, and 19.0. The module works on Community and Enterprise; we flag any edition-specific differences (such as Enterprise-only delivery or subscription flows the packaging choice must feed) during the scoping call so the quote reflects your exact stack.
Related Modules

Warehouse KPI & Operations Dashboard for Odoo
Build-to-order Odoo module: real-time warehouse dashboard for pick rate, accuracy, dock-to-stock and order-cycle time. Built & supported by ECOSIRE.

Warehouse Reports
A build-to-order Odoo reporting suite that turns your stock, moves, and picking data into branded PDF and Excel documents scoped to how your warehouse actually runs. ECOSIRE designs, builds, installs, and supports it after a scoping call.

Website Page Migration
A build-to-order Odoo module that imports website pages, blog posts, and product records — with embedded images, per-language translations, and SEO metadata preserved — into your Odoo site. ECOSIRE scopes, builds, installs, and supports it for you.

Website Page Restore, Revision & History
A build-to-order Odoo module that captures a full revision history for every website page, letting your team compare versions, roll back mistakes, and restore any prior state with one click. ECOSIRE designs, builds, installs, and supports it after a scoping call — it is not an instant download.
Website Display Packaging Options
A build-to-order Odoo eCommerce module that lets your online shoppers view, compare and select packaging options (single unit, retail case, pallet, gift-wrap, bulk) directly on the product page, with the chosen packaging flowing through cart, quotation, delivery and invoice. Scoped, built, installed and supported by ECOSIRE.
- Website product-page packaging selector rendered via inherited QWeb templates and an OWL component (radio cards, dropdown, or image swatches to your design)
- Extension fields on `product.packaging` (display label, website description, image, min/step qty, lead-time note) surfaced only where marked website-visible
- Optional dedicated `website.packaging.option` link model so website-only packaging never disturbs purchasing/inventory `product.packaging` records
- Per-packaging price rules computed through `@api.depends` methods that respect active pricelists, taxes, and the visitor's currency