OVES Commercial Terminology — Canonical Glossary¶
Status: Authoritative (2026-09-10)
Authority chain: ADR 0014 (Service Entitlements) + ADR 0015 (Offer ↔ Asset Tie) in dirac-odoo/docs/adr/, and the Product-Unit taxonomy in docs/1-product-unit-model/.
Mirrors: dirac-odoo/docs/reference/terminology.md (linked copy — do not edit independently; edit here, propagate).
Scope note: The 9.1 Glossary (docs/9-appendix/1-glossary.md in this repo) covers system/domain terms (PU categories, ABS objects, integration). This page governs the Offer → Entitlement → Service-Plan vocabulary and the composition rule; where the two overlap, this page wins.
1. Catalog & Sale Vocabulary¶
| Term | Definition | Carrier in Odoo |
|---|---|---|
| Offer | The catalog definition of something sold: a service product + its Product Profile + its conditions. It is the intent — what is for sale. | Native Odoo service product (service) + ov.product_profile |
| Entitlement | The durable obligation object conferred on the purchaser when an Offer is bought. The contract; the SO is merely the receipt. | ov.service_entitlement (typed: entitlement / privilege / warranty / assignment) |
| Service-Plan | The ABS-side operational definition (template) and its delivered instance. ABS owns the template and the delivery lifecycle. | ABS object; initialized from the Entitlement |
Naming history: "Coupon" was retired (collides with Odoo loyalty coupons). "Service Contract" (instance concept in earlier emob docs) is superseded by Entitlement.
2. Composition Rule (binding)¶
There is no "bundle order" pattern in Odoo. An Offer is a singular service product. Any compositional elements (physical anchor, included service elements, quotas, asset-class ties) are explicitly defined in the associated Product Profile — never assembled from multiple order lines at sale time.
Consequences: - The former "Bundle SO" pattern (physical product + service lines on one sales order) is not a modeling concept. If a sale combines a physical item and an Offer, they are separate lines with the Profile defining how the Offer binds to the delivered asset. - The ABS Service Bundle (below) is an ABS-internal grouping object; it does not imply a multi-line Odoo sale.
3. Asset & Delivery Vocabulary¶
| Term | Definition | Side |
|---|---|---|
| Service Bundle | ABS object grouping services into a coherent serviceable unit. Legitimate ABS vocabulary. | ABS |
| Product-Unit | Atomic commercial unit of value (Physical / Service / Deposit / Contract). See docs/1-product-unit-model/2-taxonomy.md. |
emob-commercial-models |
| Contract Product-Unit | Deposit- or obligation-bearing Product-Unit (Privilege / Warranty / Rental / Maintenance / Asset-Assignment). Maps to Entitlement types per ADR 0014 D13. | emob-commercial-models + Odoo |
| Product Profile | L2 extension (ov.product_profile) carrying the Semantic Anchor: ABS Service-Plan template reference, conditions (Eligibility vs Delivery), composition. |
Odoo |
4. Odoo 18 Product-Type Vocabulary¶
| Internal value | English UI | Chinese UI | Rule |
|---|---|---|---|
consu |
Goods | 实物 | ✅ Canonical. (= old Odoo 17 "Storable Product") |
service |
Service | 服务 | Non-physical |
combo |
Combo | 组合 | Bundle product type |
Banned usage: "storable" / "Storable Product" / "消耗品" for consu. consu is NOT the old "Consumable". Historical docs may mention "storable" only when explicitly describing Odoo 17 legacy behavior.
5. Boundary Reminders (ADR 0013)¶
- Odoo = commerce + inventory + pricing. Odoo's concern ends at sale.
- ABS = asset reality + service delivery + redemption.
- The Entitlement is the contract; the SO is the receipt.
- ABS never knows prices; Odoo never tracks delivery states.