A build-to-order Odoo Point of Sale extension that lets your cashiers sell the same product in multiple units of measure — piece, box, pack, kg — with automatic price and inventory conversion at the register. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 environment. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $249.00 USD; request a quote for a scoped proposal.
Uygulama manifestosu
İş akışınıza göre tasarlandı
A build-to-order Odoo Point of Sale extension that lets your cashiers sell the same product in multiple units of measure — piece, box, pack, kg — with automatic price and inventory conversion at the register. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 environment.
Kendiniz kurmanıza gerek yok — ECOSIRE tarafından geliştirilen, kurulan ve desteklenen çalışır bir uygulama.
Tek seferlik geliştirme fiyatıyla başlayın. Kapsamı başlangıçta sizinle birlikte belirleriz.
ECOSIRE, Odoo ortamınızda geliştirir, yapılandırır ve kurar.
Yaklaşık 2–4 haftada yayına alırsınız; lansman sonrası bir destek süresi de dahildir.
Retail and wholesale teams running Odoo Point of Sale hit a wall the moment they need to sell one product in more than one unit. Odoo's core POS is built around a single sale unit per product: the register shows the product, adds a quantity, and prices it at the product's base UoM. But real counters sell water by the bottle and by the 24-pack, cheese by the piece and by the kilo, hardware by the each and by the carton. Native Odoo forces a workaround — separate product variants, duplicate SKUs, or manual price math at the till — and every workaround fragments inventory, breaks reporting, and slows down the line. The uom.uom and uom.category framework exists in the backend, but the POS session simply doesn't expose it at point of sale.
This is a build-to-order module that ECOSIRE designs and develops for your specific catalog and register workflow. On the data side we extend product.template/product.product to declare which UoMs a product can be sold in (constrained to a single uom.category so conversions stay mathematically valid), with per-UoM pricing that either derives from the base price via the standard conversion factor or is overridden through a dedicated price model resolved against the customer's pricelist. On the POS side we ship a front-end extension (OWL components and a patched PosStore/order-line model in Odoo 17/18/19, replacing the legacy Backbone POS in older lines) that adds a UoM selector to each order line, recomputes unit price and line total live as the cashier switches units, and writes the chosen UoM back onto the pos.order.line so it flows correctly into stock moves and invoicing.
Technically, everything is wired to keep a single source of truth for inventory. When a line is sold in a non-base unit, the module converts the quantity to the product's base UoM before the stock.move is created, so one physical stock pool is decremented no matter which unit was rung up — no duplicate SKUs, no drift between the shop-floor count and the accounting count. We load the allowed UoMs and conversion factors into the POS session via the standard _loader_params/load_pos_data hooks so the register works offline, add ir.model.access.csv entries and record rules for any new models, and surface the sold unit on receipts through QWeb and in POS reporting so margin-by-unit is auditable. The build is delivered as a clean, versioned addon with its own __manifest__.py, pinned to your exact Odoo 17.0, 18.0, or 19.0 line and validated against Community or Enterprise as you run it.
Delivery is build-to-order, not an instant download. After a short scoping call we confirm your UoM categories, pricing rules, receipt and reporting needs, and target Odoo version, then send a fixed quote and a UAT plan. Typical delivery is 2–4 weeks from confirmed scope, ending with installation on your staging environment, user acceptance testing, a rollback plan, and a supported go-live. Pricing starts from $249 (indicative, single-company base scope); multi-company registers, custom per-UoM pricelist logic, barcode-per-unit scanning, and integration with existing inventory or loyalty customizations increase the quoted scope.
Sells the same product loose and by the case at the counter and needs one SKU, one inventory pool, and correct per-unit pricing without cashiers doing mental math.
Runs high-volume registers on Odoo POS and needs cashiers to switch a line between piece, pack, and box instantly while stock stays accurate to a single count.
Owns the Odoo instance and wants the UoM logic implemented cleanly via inherit/patch, with proper access rules and no duplicate-variant sprawl that breaks reporting.
Needs margin and stock to reconcile no matter which unit was sold, with the actual unit visible on receipts and in POS reporting for audit.
| Kriter | ECOSIRE | Özel Yapı | Rakip | Odoo Yerlisi |
|---|---|---|---|---|
| Sell one product in multiple units at the register | Built for your exact workflow with a per-line UoM selector | Achievable but you fund all design and edge cases | Generic selector, may not match your pricing rules | |
| Inventory accuracy across units | Converts to base UoM before stock.move; single pool | Depends on your team getting conversion logic right | Usually handled, but conversion depth varies | |
| Per-UoM pricing and pricelist logic | Derived or overridden price resolved against pricelist | You build and maintain the pricing model | Fixed to the module author's pricing assumptions | |
| Fit to your Odoo version & edition | Pinned to your 17/18/19 line, Community or Enterprise | Yours to target, but you own version drift | Supports listed versions; upgrades on their schedule | |
| Delivery model | Scoped quote, 2–4 weeks, UAT + rollback + go-live | Open-ended internal or contractor timeline | Instant install, but integration is your problem | |
| Support & ownership | Support window plus full git repo handover | Only whoever wrote it can maintain it | Vendor support tiers; you rarely own the code | |
| Receipts & reporting by unit | QWeb receipts and POS reporting show the sold unit | Extra work to wire into receipts and reports | Sometimes included, often base-unit only | |
| Upgrade friction | Targeted inherit/patch to minimize core conflicts | Quality depends on your engineering discipline | Depends on how invasively it patches core |
No. This is a build-to-order module that ECOSIRE designs, builds, installs, and supports for your specific catalog, pricing rules, and Odoo version. It is a productized service, not an off-the-shelf download.
Typical delivery is 2–4 weeks from confirmed scope. After a scoping call we lock the UoM categories, pricing logic, receipt/reporting needs, and target Odoo version, then build, run UAT on staging, and support go-live. Timeline scales with complexity such as multi-company or custom pricelist rules.
Pricing starts from an indicative $249 for a single-company base scope. We give you a fixed quote only after the scoping call, once the exact UoM rules, pricing model, and integrations are agreed. Drivers like multi-company, per-UoM barcode scanning, or bespoke pricelist logic adjust the quote.
We build for Odoo 17.0, 18.0, and 19.0, pinned to your exact line, and validate against whichever edition you run — Community or Enterprise. The POS front end is built on the current OWL/PosStore architecture rather than the legacy Backbone client.
Before any stock move is created, the sold quantity is converted to the product's base unit of measure using the standard Odoo conversion factor. One physical stock pool is decremented no matter which unit was rung up — no duplicate SKUs and no drift between shop-floor and accounting counts.
You get a post-go-live support window for defect fixes and configuration questions, plus a git repository handover with full history so the addon is yours. Compatibility work for a future Odoo major-version upgrade is available as a separate scoped engagement.
We implement via targeted inherit/patch of the POS models and OWL components rather than overwriting core, which minimizes conflict with existing customizations and keeps future upgrades cleaner. Any known interactions are identified during scoping and covered in UAT.
A build-to-order Odoo localization that loads Algeria's full wilaya and commune hierarchy with bilingual French and Arabic names, wired into partner addresses and reporting. ECOSIRE builds, installs, and supports it after your quotation.
A build-to-order 2Checkout (Verifone) payment integration for ERPNext, giving global digital-goods sellers card acceptance, 45+ local payment methods, multi-currency checkout, and reconciled invoices. ECOSIRE scopes, builds, installs, and supports it on your ERPNext v15/v16 instance.
A build-to-order 2Checkout / Verifone payment gateway for Magento 2 and Adobe Commerce: localized checkout in 12 languages, iDEAL, Giropay and regional methods, multi-currency global selling, subscription billing and tax/invoicing automation — engineered, installed and supported by ECOSIRE.
A build-to-order Odoo Point of Sale extension that lets your cashiers sell the same product in multiple units of measure — piece, box, pack, kg — with automatic price and inventory conversion at the register. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 environment.