Vendors / Open source & self-hostable
Odoo POS + pos_restaurant
Odoo POS + pos_restaurant (Odoo S.A.)
dossier live legacy rubric
- Claims in scope
- 278
- Scored
- 278
- Assessed
- 236
- Unknown
- 42
- Not applicable
- 36
- Cells challenged
- 37
Identity
- Owner
- Odoo S.A. (Belgium), independent. Not a subsidiary of a POS or payments company.
- Parent
- Odoo S.A.
- Founded
- Odoo S.A. founded 2005 in Belgium (as TinyERP, then OpenERP, renamed Odoo 2014). pos_restaurant ships in the core odoo/odoo repository.
- Scale
- unknown — Odoo publishes no audited restaurant-location count, POS ARR, or restaurant market share. Company-wide user counts appear only in marketing copy and were not treated as evidence.
- Who it is for
- SMBs and mid-market already standardizing on Odoo ERP; single-site to small-group independent restaurants, bars and fast-food; strong in EU, LATAM, MENA, India. Not a US enterprise chain buyer. Restaurant-specific store-count share is unknown.
- Site
- https://www.odoo.com/app/point-of-sale-restaurant
Pricing
transparency: published · unit: per-employee · processor lock-in: no
- Software
- Published on odoo.com/pricing: One App Free = $0, one app, unlimited users, Odoo Online only. Standard = $24.90/user/month promotional, $31.10/user/month regular annual; all apps, Odoo Online only. Custom = $49.00/user/month promotional, $61.00/user/month regular annual; all apps plus Odoo Studio, multi-company, and external API access; Odoo Online, Odoo.sh or On-Premise. Discount 'valid for 12 months, for initial users ordered.' Critical structural note: POS Restaurant alone qualifies for One App Free ('Free, forever, with unlimited users' on the product page), but the free and Standard tiers exclude external API access, and the UrbanPiper food-delivery connector requires an active Odoo Enterprise subscription (Community not supported). Community Edition is LGPL-3 and free to self-host with no user fee at all.
- Card processing
- n/a — Odoo is not a payment acquirer and publishes no card rates. Rates come from whichever of the 13 supported terminal providers the merchant contracts with.
- Contract
- Enterprise Subscription Agreement §1: 'The duration of this Agreement (the "Term") shall be specified in writing on conclusion of this Agreement... automatically renewed for an equal Term, unless either party provides a written notice of termination minimum 30 days before the end of the Term.' Monthly and annual pricing are both published; annual is the discounted default.
- Early termination
- unknown — no ETF or liquidated-damages figure found in the published ESA. The ESA does specify a penalty for continuing to use Enterprise Edition after termination: 'an extra fee equal to 300% of the applicable list price for the actual number of Users.' That is a post-termination license-breach penalty, not a cancellation fee.
API posture
public API: paid
- Cost to integrate
- Documentation states verbatim: 'Access to data via the external API is only available on Custom Odoo pricing plans. Access to the external API is not available on One App Free or Standard plans.' That means ~$49–61/user/month to use the API on Odoo Online. Self-hosted Community/Enterprise installs are not subject to this gate. No partner fee, rev share, or certification cost was found published; the app marketplace (apps.odoo.com) is open self-publish.
- Webhooks
- Outbound only via Studio automation rules: a 'Send Webhook Notification' action POSTs selected fields to a URL on any model trigger, and an 'External' trigger category accepts inbound webhooks. This is generic ORM plumbing, not a documented order-lifecycle event stream. No HMAC signing, retry/backoff policy, or replayable event log is documented. Studio requires the Custom plan.
- Data export on exit
- Strong. Odoo's SLA page states 'Users can download manual backups of their live data at any time' — a full Postgres database dump including orders, customers, loyalty and payments metadata. Every list view exports to CSV/XLSX. Community Edition is LGPL-3, so the operator can restore that dump onto their own server and keep running the identical software. This is the single best exit posture of any vendor in this category.
- Notes
- The API is the Odoo ORM exposed over /json/2 with bearer API-key auth — full read/write symmetry across every model (pos.order, product.template, res.partner, hr.employee, stock.quant). There is no OAuth 2.0 scoped-consent model for third-party apps and no published numeric rate limits. Self-serve docs are readable with no NDA or sales call.
Capabilities
Every claim is binary and checkable. Grades: A primary documentation · B product documentation · C pricing or feature page · D marketing claim · E third-party reporting · F inference with no source. A yes on a differentiator claim requires A or B.
Order capture & FOH workflow
order-capture-floor-plan-editor
Multi-floor editor in backend and POS frontend: table number, seats, square/round shape, size, color, background image, clone. No server-section assignment. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
order-capture-seat-level
Split flow selects products, not seats. Presets capture a guest count only. No seat tagging on order lines documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
order-capture-coursing-hold-fire
Course button splits the order; Order fires course 1; retrieve from floor plan and click Fire Course 2. Transfer course between courses. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
order-capture-split-merge
Split by product into a sub-order, transfer products to another table, merge by transferring onto an occupied table. No even N-way or arbitrary-amount split. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
order-capture-bar-tab-preauth differentiator
Set Tab records only an open order name. No card pre-authorization, incremental re-auth, or stale-tab auto-close documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
order-capture-transfer-audit
Transfer/Merge documented; session report attributes each order to an Employee. No transfer-specific audit entry naming both employees. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
order-capture-native-handheld
POS is a browser app running on any tablet or phone, plus iMin Android devices. Odoo ships no first-party purpose-built handheld. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01
order-capture-offline-order-entry
Docs claim it is 'built to maintain functionality even during temporary network outages'. No published list of what works offline. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01
order-capture-qr-same-check differentiator
Per-table QR codes; guest orders assign a table and land in POS orders and the prep display. Merging onto an open server check is not stated. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01
order-capture-kiosk-first-party differentiator
First-party kiosk on the same product records. No ADA/WCAG conformance documented; kiosk payment limited to Adyen and Stripe terminals. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01
order-capture-drive-thru
No drive-thru order flow documented in the POS docs.
order-capture-drive-thru-timers
No drive-thru speed-of-service timers documented.
order-capture-voice-ai differentiator
No first-party voice ordering agent or documented voice-AI partner program found.
order-capture-throttling differentiator
Presets support time slots plus a Preparation capacity limit per time frame. No automatic quote-time extension on kitchen load. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01
order-capture-scheduled-orders
Manage orders by time lets staff or guests pick a future slot. Auto-injection into the make queue at a computed fire time is not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01
order-capture-catering
No catering-specific flow with quotes, deposits or balance-due tracking documented in POS.
order-capture-order-ready-signal differentiator
UrbanPiper handles marketplace order lifecycle; no documented KDS-bump order-ready push back to DoorDash.
order-capture-void-comp-controls
Three fixed rights tiers gate discounts, price changes, refunds and cancels. No reason codes and no dedicated exception report. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01
Menu, modifiers & pricing engine
menu-pricing-nested-modifiers
Docs enumerate the alternative: product attributes/variants plus one-level Combo Choices with Maximum items. No nested groups with per-level min/max. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
menu-pricing-modifier-price-by-parent-size
Extra price is set per attribute value or per product inside a combo choice. No parent-item x size price matrix. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
menu-pricing-fractional-placement differentiator
Held to the highest bar as instructed. The products page documents only attributes/variants and combo choices as the composition model — the alternative is affirmatively enumerated, so 'no' is defensible rather than mere silence. The dependent cells (half-and-half rule, kitchen-pizza-fractional-display, modifier-price-by-parent-size, nested modifiers) fall the same way. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01 adversarially verified
menu-pricing-half-and-half-rule differentiator
No half-and-half pricing rule of any kind documented, since fractional placement does not exist. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
menu-pricing-topping-quantity-tiers
The numpad Qty modifier multiplies line quantity. No light/regular/extra tiers with price multipliers documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
menu-pricing-size-style-matrix differentiator
Two attributes (e.g. size x crust) generate a variant grid; extra price is per attribute value, with variant prices adjustable via pricelists. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
menu-pricing-included-allowance differentiator
Combo Choice has Includes items and Maximum items, with a Combo Price charged for each extra selection. Combo-scoped only, not item-modifier scoped. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
menu-pricing-combos
Combo product type with swappable choices and Extra Price deltas. No automatic detection or conversion of a-la-carte cart items into the combo. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
menu-pricing-upsell-prompts differentiator
POS Optional Products suggests add-ons per product in the register. No per-channel configuration and no attach-rate reporting. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
menu-pricing-86-propagation
Availability is driven by stock tracking and static per-channel flags (Available in Self Order, Available on Food Delivery). No 86 action, no latency stated. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
menu-pricing-countdown-auto-86 differentiator
POS shows Free To Use units for tracked products and depletes on sale. Automatic 86 at zero with scheduled restore is not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
menu-pricing-dayparting
Presets carry a Schedule tab and working hours; POS categories carry Service Hours for delivery platforms; pricelists have date validity. Not per-item timezone scheduling. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01
menu-pricing-channel-price-books
Pricelists attach per POS, per preset (Dine In/Takeout/Delivery) and per customer, with percentage and formula rules over a base price. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
menu-pricing-dual-pricing differentiator
Pricing docs cover discounts, pricelists, cash rounding and fiscal positions. No dual-pricing or cash-discount mode. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
menu-pricing-allergen-nutrition
Products carry tags, descriptions and images for self-order. No structured allergen flags or nutrition fields documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
menu-pricing-recipe-linkage differentiator
Odoo Manufacturing BoMs plus POS stock moves can deplete components; POS shows margins and costs. No documented POS-to-recipe theoretical costing path. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
menu-pricing-3p-menu-push
Sync Menu pushes to UrbanPiper Atlas with a Last Sync timestamp — middleware, not direct. Combos unsupported; no per-item rejection surface. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01
menu-pricing-dynamic-pricing
Pricelist rules key off date, quantity, customer and channel. No demand-driven pricing with floor/ceiling guardrails. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
Payments & money movement
payments-processor-choice differentiator
All thirteen names verified on the terminals page exactly as listed. Processor neutrality is real and is the dossier's most defensible differentiator. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01 adversarially verified
payments-published-rates differentiator
Odoo takes no payment margin and publishes no card rates; pricing comes from the merchant's chosen terminal provider. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01
payments-dual-pricing differentiator
No dual-pricing or cash-discount mode in the payment or pricing documentation. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
payments-surcharge-guardrails differentiator
No surcharging engine, no BIN/debit exclusion, no network cap enforcement documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods.html · retrieved 2026-08-01
payments-emv-nfc
EMV and NFC come from the third-party terminal (Adyen, Stripe, Worldline etc.). Odoo ships no first-party terminal, so acceptance depends on provider. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01
payments-softpos-tap-to-pay differentiator
No Tap to Pay on iPhone or Android tap-to-pay support documented in the POS payment docs.
payments-pay-at-table
Odoo ships no handheld. The POS runs in a browser on any device, but no documented tableside handheld-plus-reader product exists. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01
payments-qr-guest-pay differentiator
QR menu + Ordering lets guests order and pay from their phone; a separate QR code payments method exists. Not documented as scan-to-pay on a printed check. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01
payments-tip-adjust
On-device tip via Adyen terminal; Add tip after payment is US-only with Stripe or Adyen, offering 15/20/25%, No Tip or custom. No unadjusted-tips manager screen. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
payments-tip-pooling differentiator
Tips post as a single [TIPS] product line. No pooling or distribution rules documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
payments-offline-store-and-forward differentiator
Terminal docs state a connection issue between Odoo and the terminal automatically cancels the transaction. The marketing 'offline payments' claim conflicts with this. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01
payments-offline-decline-liability differentiator
No offline card capture, therefore no published decline-liability position or post-reconnect failure report. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01
payments-gift-cards
Promotions, Coupons, Gift Card & Loyalty Program setting; codes entered or scanned at the register and shared with eCommerce in the same database. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
payments-house-accounts
Customer account payment method lets guests pay on account. Per-account credit limits and periodic statements are not documented in POS. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/customer_credit.html · retrieved 2026-08-01
payments-split-tender
Multiple tenders per order are documented (order and tip on different methods) and splits create sub-orders. No even-N or arbitrary-amount split. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
payments-refund-void-controls
Refunds, discounts and cancels gated by the basic/advanced rights tiers; orders carry the Employee. No immutable approver audit log documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01
payments-chargeback-tooling differentiator
Odoo is not the acquirer; no dispute dashboard or evidence-submission tooling documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods.html · retrieved 2026-08-01
payments-card-on-file differentiator
Odoo payment providers tokenize cards for eCommerce and Subscriptions, but POS card-on-file reuse is not documented.
payments-payout-timing differentiator
Odoo holds no merchant funds and publishes no deposit schedule; funding timing belongs to the chosen processor. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01
payments-p2pe-pci4
No Odoo-published P2PE listing or PCI DSS 4.x AoC covering the POS was found.
Kitchen & production
kitchen-station-routing
Verified verbatim, including 'Leave the field empty to allow all categories.' Carry the same Enterprise-edition caveat as hardware-kds. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01 adversarially verified
kitchen-expo-consolidation
Multiple displays plus a top bar tracking all orders across stages. No documented expo screen that completes only when every station has bumped. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01
kitchen-course-firing differentiator
Courses fire on demand from the register or by retrieving the order from the floor plan or Orders overview (Fire Course 2). https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
kitchen-prep-time-pacing differentiator
Stages carry an alert timer only. No per-item cook times and no staggered start so items finish together. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01
kitchen-order-throttling differentiator
Throttling is at order intake via preset Preparation capacity per time slot, not driven by live kitchen ticket times. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01
kitchen-channel-pause-propagation differentiator
Store Timings control platform availability windows through UrbanPiper. No documented ad-hoc pause or item-level 86 push to marketplaces. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01
kitchen-order-ready-callback differentiator
No documented order-ready event from the preparation display back to a marketplace.
kitchen-bump-bar-hardware
Prep display runs in a browser on a mobile device or a USB/HDMI touchscreen, and 'IoT boxes are not supported'. No bump-bar models documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01
kitchen-all-day-counts
The top bar shows order counts per stage, not aggregated outstanding quantities per item or modifier. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01
kitchen-sla-alerts
Per-stage 'Alert timer (min)' highlights orders exceeding the target, with color-coded stage status and visible waiting times. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01
kitchen-printer-fallback differentiator
Printer setup binds categories to a printer with no documented backup printer or screen failover. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
kitchen-offline-operation differentiator
The preparation display is a server-served web app; no statement about behaviour when the cloud backend is unreachable.
kitchen-item-build-screens differentiator
Order cards show order detail including variant/attribute selections and notes. No recipe steps or portioning build screens. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01
kitchen-pizza-fractional-display differentiator
No fractional placement exists in the menu model, so nothing sectioned can be rendered on the make line. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
kitchen-recall-refire
A Recall button undoes the most recent stage move, and the POS reprints a duplicate of the last kitchen order. No per-item refire documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01
kitchen-order-modification-alerts differentiator
pos_restaurant ships an order-change receipt template and prints a cancellation ticket, implying change tracking. On-screen flagging is not documented. https://github.com/odoo/odoo/blob/master/addons/pos_restaurant/__manifest__.py · retrieved 2026-08-01
kitchen-guest-ready-notification differentiator
Presets support an Email Confirmation template and kiosk tracker numbers. No SMS-on-ready, app push, or status board documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01
kitchen-waste-logging
Waste is handled by Inventory scrap in the back office, not logged with reason codes at the kitchen screen. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01
kitchen-speed-of-service-reporting
Prep display shows live waiting times, but POS reporting covers orders and sessions only — no per-station time percentiles by daypart. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
kitchen-prep-forecasting
No kitchen prep list or forecast-driven prep quantities documented for POS.
Delivery, dispatch & third-party channels
delivery-driver-roster
Restaurant docs cover floors, orders, printing, bills and tips. No in-house driver entity, clock state or run history exists. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
delivery-dispatch-board
No dispatch or expo screen for delivery orders, driver availability, or multi-order run batching. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
delivery-route-map differentiator
No dispatch map or route sequencing; no delivery dispatch module exists to host one. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
delivery-driver-tracking differentiator
No driver-facing mobile app and no GPS surfacing documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
delivery-zones-polygon differentiator
No delivery-zone geometry of any kind — polygon, isochrone, radius or ZIP list — documented for POS. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
delivery-zone-pricing
Delivery is a preset (pricelist plus fiscal position), not a zone with its own fee, minimum and promise time. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01
delivery-address-validation
Preset Identification can require a customer address, but no geocoding, validation or out-of-zone rejection is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01
delivery-driver-comp differentiator
No mileage, per-delivery reimbursement, or driver-tip tracking exists because there is no driver module. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
delivery-cash-reconcile
POS cash control reconciles the register session, not a per-driver bank with orders assigned and tips owed. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
delivery-daas-dispatch
No native handoff to DoorDash Drive, Uber Direct, Nash or Relay from the POS is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
delivery-daas-fallback differentiator
No hybrid dispatch rules, since neither in-house drivers nor DaaS dispatch exist. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
delivery-3p-direct-integration differentiator
Marketplace access is exclusively via UrbanPiper middleware, which requires its own valid subscription plus Odoo Enterprise 18.0+. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01
delivery-3p-injection
This is the exact shape of cell the brief says to hold to the highest bar, and it is not native. Verified from the Odoo doc: 'an active Odoo Enterprise subscription is required. Odoo Community does not support' it; Enterprise 18.0+; a valid UrbanPiper subscription; plus registered reseller accounts with each platform. Three separate paid relationships and a middleware hop is a partner integration, not a yes. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01 adversarially verified
delivery-menu-push
Sync Menu publishes products; pricelist and fiscal position auto-attach per store. Combos are unsupported (workaround: attributes and variants). https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01
delivery-86-sync
Product availability is a static 'Available on Food Delivery' flag; no documented real-time item or option 86 push.
delivery-store-pause
Store Timings set weekly availability windows per POS. No ad-hoc pause with timed auto-reactivation from inside the POS. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01
delivery-3p-reconciliation differentiator
No marketplace payout-to-POS reconciliation report documented.
delivery-injection-error-visibility differentiator
Successful sync triggers a notification and a Last Sync on timestamp updates. No per-channel connection status or failure alerting documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01
delivery-tracking-page
Sourced to restaurant.html, a page that never discusses delivery tracking at all. This is silence, not an affirmative absence and not an enumerated alternative. Per the ground rules that is 'unknown', not 'no'. Same defect applies to delivery-offline-behavior, which cites the same page. adversarially verified
delivery-promise-time differentiator
Preset time slots and capacity are static configuration; no dynamic promise time from kitchen load or drive time. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01
delivery-offline-behavior
No delivery offline behaviour is documented because no delivery dispatch module exists. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
Digital ordering & guest-facing channels
digital-first-party-web
QR menu + Ordering is first-party and commission-free, writing straight into POS; Odoo Website/eCommerce covers a branded domain in the same database. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01
digital-menu-single-source
Self-order renders the same product records; a per-product 'Available in Self Order' flag controls exposure. No separate digital menu build. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
digital-native-app differentiator
Self-ordering is a mobile web interface reached by QR code or a kiosk. No branded native iOS/Android ordering app documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01
digital-account-saved-payment
Odoo portal/eCommerce accounts hold addresses and tokenized methods, but self-order and kiosk flows only collect name, phone or email per order. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01
digital-upsell-engine differentiator
POS Optional Products provides rules-based add-on suggestions. No personalization from order history and no attach-rate reporting. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
digital-scheduled-pacing
Preset 'Manage orders by time' defines slots from a working schedule plus a Preparation capacity limit per time frame; guests pick a slot. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01
digital-fulfillment-modes
Presets cover Dine In, Takeout and Delivery with per-mode pricelist and fiscal position; service at Table or Pickup zone. No curbside arrival check-in. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01
digital-qr-table
Verified verbatim on the restaurant page: 'To order free physical QR codes adapted to the floor plan, activate the QR menu setting, then click Get QR Codes in the Floor plan view. This offer is available worldwide and for all subscription types.' Rare case of a marketing-sounding claim that is actually in the product docs. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01 adversarially verified
digital-kiosk differentiator
First-party kiosk on the same menu, optionally on an IoT Box touchscreen. Unattended payment limited to Adyen/Stripe; no accessibility conformance published. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01
digital-group-ordering
No shareable multi-participant group order link with per-person caps documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01
digital-catering-portal differentiator
No catering-specific ordering flow with minimums, lead-time rules, proposals, deposits or invoice terms documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01
digital-voice-ai-phone differentiator
No AI voice phone ordering, native or named certified partner, documented for POS.
digital-drivethru-ai
No drive-thru support at all, so no drive-thru voice AI. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01
digital-sms-ordering
Odoo ships SMS Marketing, but no conversational text-to-order path into the POS is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01
digital-google-order differentiator
No Order with Google provisioning documented for Odoo self-ordering.
digital-apple-business-connect
No Apple Business Connect 'Order Food' action documented.
digital-loyalty-attach
Loyalty programs are configured under Point of Sale and share res.partner with eCommerce; explicit loyalty accrual inside the self-order flow is not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
digital-subscriptions
Odoo Subscriptions is a separate app; a guest membership tier redeemable in POS is not documented.
digital-promo-parity
Discount and loyalty programs are defined once and shared across POS and eCommerce in one database. Per-channel eligibility controls not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
digital-guest-data-ownership differentiator
'With Odoo, the values can be exported from any field in any record' - select records in list view, Action > Export, CSV or XLS, no fee or ticket. Odoo's GDPR page puts ownership beyond doubt: on Odoo Cloud 'you are the controller for that database and Odoo SA is only a data processor'. The Cloud SLA adds 'Users can download manual backups of their live data at any time'. Self-hosting removes all gates. https://www.odoo.com/documentation/19.0/applications/essentials/export_import_data.html · retrieved 2026-08-08
digital-checkout-pci-sca
Checkout runs through Stripe/Adyen and similar providers, but Odoo publishes no PCI DSS 4.0 statement or script-integrity position I could verify.
digital-surcharge-transparency differentiator
No surcharge, service-fee or dual-pricing engine exists in POS, so nothing to mirror into digital channels. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
Guest data, loyalty & marketing
guest-loyalty-unified-profile
One res.partner record serves POS, self-order and eCommerce in the same database. Dedup is a separate Data Cleaning app; no documented merge behaviour for POS. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
guest-loyalty-thirdparty-identity-attach differentiator
UrbanPiper docs do not state whether marketplace orders create or attach to a native customer record.
guest-loyalty-accrual-models
Loyalty cards with real-time points, plus promotions, coupons, next-order coupons, discount codes and Buy X get Y — all configuration, no bolt-on vendor. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
guest-loyalty-tiers differentiator
Loyalty documentation covers points, promotions and coupons. No status tiers with automatic promotion or demotion. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
guest-loyalty-offline-behavior differentiator
Loyalty requires selecting a customer and shows points updated in real time; no offline behaviour is documented anywhere. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
guest-loyalty-offer-stacking-rules differentiator
Programs trigger when conditions are met, but explicit exclusivity and precedence configuration was not verified.
guest-loyalty-targeted-offers differentiator
Odoo Marketing Automation and Email Marketing can target audiences via domain filters over customer and order data; not a POS-native offer audience builder. https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html · retrieved 2026-08-01
guest-loyalty-rfm-segmentation differentiator
No automatic recency/frequency/monetary lifecycle segments; the operator must build pivot filters. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
guest-loyalty-lifecycle-automation
Studio automation rules support date-field, after-creation and after-last-update triggers with email actions — generic, not shipped restaurant lifecycle campaigns. https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html · retrieved 2026-08-01
guest-loyalty-native-email-sms differentiator
First-party apps for both channels in the same database, documented in Odoo's manual. Email Marketing: create a mailing with New, set Recipients from in-database models (Mailing List, Contact, Event Registration, Lead/Opportunity, Mailing Contact, Sales Order) with customisable filter equations, then Send, Schedule or Test. SMS Marketing: same Recipients mechanism, message body with live character and SMS-segment count, and Send / Schedule / Test; sending is metered - "Credits must be purchased from Odoo in order to take advantage of the SMS Marketing app; SMS messages will not be sent without credits." Contacts captured in POS are res.partner records in the same database, so no export to a third-party ESP is involved; the per-app cost above the One App Free tier and the SMS IAP credits are commercial, not architectural, limits. https://www.odoo.com/documentation/18.0/applications/marketing/sms_marketing/create_sms.html · retrieved 2026-08-06
guest-loyalty-consent-management
Odoo mailing uses blacklist/opt-out per email and phone. Per-channel consent timestamp and source of consent are not documented for POS-captured guests. https://www.odoo.com/pricing · retrieved 2026-08-01
guest-loyalty-10dlc-registration
No A2P 10DLC brand or campaign registration handling documented for Odoo SMS.
guest-loyalty-campaign-attribution differentiator
Coupon and loyalty redemptions are order lines and can be pivoted against check totals; no packaged campaign-attribution report. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
guest-loyalty-data-export-portability differentiator
Select records in any list view, Action > Export, choose fields, export CSV or XLS - 'the values can be exported from any field in any record', with reusable export presets. Applies to contacts, POS orders and order lines alike. The Cloud SLA adds a full live-database backup 'at any time'. No fee and no support ticket; the docs' only caveat is to batch very large exports to avoid a timeout. https://www.odoo.com/documentation/19.0/applications/essentials/export_import_data.html · retrieved 2026-08-08
guest-loyalty-review-capture-routing differentiator
Odoo Surveys exists as a separate app, but score-based routing to service recovery versus public review sites is not documented.
guest-loyalty-referral-program
Loyalty offers next-order coupons but no two-sided guest referral mechanic with per-guest codes and first-order attribution. (Odoo Referrals is a recruiting app.) https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
guest-loyalty-wallet-pass differentiator
No Apple Wallet or Google Wallet loyalty pass documented; loyalty is looked up by selecting a customer at the register. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
guest-loyalty-privacy-rights-tooling
Odoo's GDPR page walks each right by hand: access/portability via the customer portal or Action > Export, rectification via the portal, opt-out by ticking a field, erasure by attempting to delete the contact - which the system blocks where business documents still reference it, leaving anonymisation as the fallback. No packaged DSAR workflow and no deletion propagation into loyalty or mailing-list records. https://www.odoo.com/gdpr · retrieved 2026-08-08
guest-loyalty-redemption-fraud-controls
No redemption velocity limits, manual-adjustment approval, or employee self-redemption flagging documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
guest-loyalty-ai-offer-recommendation differentiator
Odoo 19 lists an Artificial Intelligence app, but no shipped AI offer-content, audience or send-time recommendation was verified.
guest-loyalty-stored-value-gift
Native gift cards under the Promotions, Coupons, Gift Card & Loyalty Program feature, tied to customer records and shared across POS configs in one database. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
Labor & workforce
labor-clock-in-at-pos
Employees log in to the register by badge scan, name selection or PIN, with no extra hardware. True clock-in/out lives in the separate Attendances app. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01
labor-photo-punch-verification differentiator
No photo-at-punch or facial verification documented for POS login or attendance.
labor-offline-time-punch differentiator
No documented offline punch capture or reconnect reconciliation behaviour.
labor-granular-rbac
POS rights are three fixed tiers — Minimal, Basic, Advanced — with a fixed action list per tier, not per-action grants per role and location. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01
labor-manager-override-audit
Session reports show who opened the register and the Employee on each order. No immutable, queryable override-approval trail documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
labor-native-scheduling differentiator
True that Planning is first-party, but it is a separate app: unavailable on the $0 One App Free tier the dossier leans on, and it reaches the operator only via the all-apps Standard/Custom per-user subscription. It is also not a restaurant labor scheduler — no demand forecast from POS sales, no break/minor/fair-workweek rules (the dossier correctly scores all three 'no'), which makes an unqualified yes here inconsistent with its own neighbors. https://www.odoo.com/pricing · retrieved 2026-08-01 adversarially verified
labor-demand-labor-forecast differentiator
Payroll consumes Planning, Attendances and Timesheets; no staffing recommendation generated from POS sales history is documented. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01
labor-realtime-labor-percent differentiator
POS reporting covers orders and sessions only; no live labor-cost-to-sales view on a manager screen. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
labor-overtime-prevention differentiator
Odoo Attendances tracks extra hours, but a clock-in-time overtime warning or block was not verified.
labor-break-compliance-by-state differentiator
Working schedules and country localizations drive payroll rules; no US state-level meal/rest break prompts or missed-break premium flags documented. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01
labor-minor-labor-rules
No age-based hour caps, prohibited windows or school-day limits enforced at scheduling or clock-in. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01
labor-tip-pooling-rules
Tips post as a single [TIPS] product line per order. No pooling or tip-out computation documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
labor-tip-distribution-audit-trail
Tip lines are attached to orders, and orders carry the Employee, so tips received are traceable. No pool contribution or distribution record exists. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
labor-qualified-tips-w2-reporting differentiator
No evidence found on Treasury tipped-occupation codes or W-2 Box 12 TP / Box 14b handling for tax year 2026.
labor-native-payroll differentiator
Odoo Payroll computes payslips from contracts and work entries and pays by wire, SEPA or check. No evidence Odoo files payroll taxes as a service. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01
labor-payroll-export-formats
Odoo positions Payroll as the system of record rather than an exporter; no named Gusto, ADP, Paychex or QuickBooks payroll connector documented. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01
labor-shift-swap-workflow differentiator
Odoo Planning supports open shifts employees can take, but a manager-approved swap workflow enforcing overtime and role eligibility is not documented. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01
labor-server-performance-metrics differentiator
Orders carry the Employee and are analysable in graph/pivot views, so average check is derivable. No packaged void, comp or attachment-rate scorecard. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
Inventory, purchasing & cost control
inventory-recipe-bom-costing
Odoo Manufacturing provides multi-level BoMs with sub-assemblies and cost rollup natively, but POS docs never connect recipes to plate cost. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-unit-conversion-yields
Units of Measure & Packagings with conversion factors are native and surfaced in POS. No raw-to-usable yield or waste percentage documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-theoretical-vs-actual differentiator
Physical inventory adjustments produce counted-versus-system variance, but no theoretical usage from sales times recipe versus actual report is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-realtime-depletion differentiator
POS shows Free To Use units and sales move stock for tracked Goods and Combo products. Modifier-driven ingredient depletion needs BoM/kit setup not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-86-auto-sync differentiator
No automatic 86 of menu items to POS, online ordering or delivery channels when a component hits zero or a threshold. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-count-modes
Odoo Inventory supports full physical inventory, partial adjustments and scheduled cycle counting with dated history — documented in Inventory, not POS. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-mobile-count-offline
Odoo Barcode provides mobile scanning for counts; offline tolerance and reconnect sync are not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-vendor-catalogs-edi differentiator
Odoo supports vendor pricelist import and RFQ/PO email, but no pre-built Sysco, US Foods or PFG EDI catalog integration is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-invoice-ocr differentiator
Odoo Accounting/Documents offers AI invoice digitization via IAP credits; line-item extraction directly into the inventory ledger was not verified. https://www.odoo.com/pricing · retrieved 2026-08-01
inventory-price-change-alerts differentiator
Vendor pricelists store prices, but no received-price-versus-prior alerting with a configurable threshold is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-par-auto-suggest differentiator
Odoo reordering rules (min/max) generate suggested purchase orders; a forecast-driven par mode from sales history is not documented for restaurants. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-waste-logging
Odoo Inventory Scrap records losses against a scrap location and debits stock; reason codes and a waste-cost report separate from usage variance are not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-shelf-life-expiry
I could not re-verify that sentence on the cited POS products page; the rendered page's stock section is a stub linking out to Inventory. Expiry tracking is a real Odoo Inventory feature, but its POS surfacing — the thing the cell is scoring — is not confirmed on the cited source. Same caution applies to inventory-lot-traceability's stronger sub-claim that lots are 'imported automatically onto POS cart lines,' which I also could not verify. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01 adversarially verified
inventory-bar-partial-bottle
POS supports To Weigh With Scale for by-weight sales, but no partial-bottle liquid counting by weight or bottle fraction is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-cogs-gl-export
Odoo Accounting is the GL, so COGS and AP post natively rather than exporting; no QuickBooks/Intacct/NetSuite import-format connector is shipped. https://www.odoo.com/pricing · retrieved 2026-08-01
inventory-native-not-partner differentiator
Inventory installs automatically with POS and Manufacturing/Purchase/Accounting are all Odoo-built — no MarginEdge or MarketMan contract needed. Beyond one app, plan cost applies. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
inventory-menu-margin-linkage differentiator
'Show margins & costs' surfaces price, cost and margin per product in POS, and order pivots give sales mix. No automatic below-threshold margin flagging. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
Reporting, BI & data access
reporting-realtime-dashboard
POS dashboard plus Reporting > Orders in graph or pivot view, filterable and groupable; available in a browser and the Odoo mobile app. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
reporting-eod-closeout
Closing the register produces a comprehensive session report covering all session activity, who opened it, and every order placed during it. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
reporting-pmix-modifier-level
Order statistics pivot by product and variant. Modifiers are attribute values or combo lines, so true modifier-level PMIX is not a first-class report. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
reporting-comps-voids-audit
Orders list shows status, employee and totals, and discounts are order lines. No dedicated comps/voids audit report with reason codes and approver. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
reporting-cash-over-short
POS cash control with cash-in/cash-out and register close computes a session difference; per-employee over/short reporting is not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01
reporting-labor-productivity
POS reporting is limited to order and session statistics; sales per labor hour and labor percent by hour are not produced. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
reporting-server-scorecards differentiator
Orders are groupable by Employee in pivot/graph, giving average check and volume. No packaged attachment-rate or tips-percent scorecard. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
reporting-channel-profitability differentiator
Orders can be grouped by preset (Dine In/Takeout/Delivery) and by point of sale. No revenue net of marketplace commission by channel. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01
reporting-scheduled-delivery
Studio automation rules with timing triggers can email records on a cadence; no built-in 'schedule this report to recipients' control in POS reporting. https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html · retrieved 2026-08-01
reporting-public-api differentiator
External JSON-2 API at /json/2/<model>/<method> with bearer API-key auth and a per-database /doc page listing available models, fields and methods. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01
reporting-webhooks differentiator
'Send Webhook Notification' POSTs selected fields to a URL from any automation rule. No documented retry behaviour and no payload signature. https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html · retrieved 2026-08-01
reporting-api-not-upcharged differentiator
'Access to data via the external API is only available on Custom Odoo pricing plans... not available on One App Free or Standard plans.' Self-hosting is exempt. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01
reporting-tier-paywall differentiator
POS reporting, pivot analysis and session reports ship with the app itself, including on the $0 One App Free plan. The paywall is on the API, not reporting. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
reporting-history-retention differentiator
Closed sessions and their orders stay in the reporting views ('access the comprehensive report to review all session activities'), filterable and groupable in graph or pivot; data sits in the operator's own database, which is downloadable as a ZIP at any time. No archiving, purge or archive-retrieval fee appears anywhere in the POS or database-management docs, but Odoo publishes no retention-window commitment at all, so a 24-month floor is not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-08
reporting-anomaly-alerts differentiator
Automation rules can fire emails when records match a domain condition. No statistical deviation-from-pattern alerting. https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html · retrieved 2026-08-01
reporting-nl-query
Odoo 19 lists an Artificial Intelligence app; a natural-language query over the operator's own sales and labor data was not verified.
reporting-guest-cohorts differentiator
Orders carry the Customer and are pivotable, so frequency and lifetime spend are derivable. No packaged new-versus-returning or cohort report. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
reporting-sales-forecast differentiator
POS reporting is historical only; no forward hourly or daypart sales forecast is exposed. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
reporting-tip-tax-compliance
Charged tips are captured as order lines attributable to an employee. No declared-versus-charged split, pool detail, or jurisdiction tax liability summary. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
Multi-location, franchise & enterprise governance
multi-location-org-hierarchy
Multi-company (parent/child) plus many POS configs per company gives a hierarchy that reporting and record rules scope to, but multi-company requires the Custom plan. https://www.odoo.com/pricing · retrieved 2026-08-01
multi-location-central-menu-publish
Product records are shared across POS configs and can be shared across companies, so one edit reaches all. No publish action, target-set selection or version history. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01
multi-location-price-zones
Pricelists give one product different prices per POS, per preset/channel, per customer and per date window without duplicating the product record. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
multi-location-consolidated-reporting
Order statistics aggregate across POS configs via pivot grouping. No store-versus-store ranking or variance flagging, and labor is not in POS reporting. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01
multi-location-cross-location-giftcard
Gift cards are database records usable at any POS in the company. No outstanding-liability report or inter-store redemption settlement documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
multi-location-cross-location-loyalty
One res.partner and one loyalty card serve every POS in the database; cross-company sharing depends on multi-company record-rule configuration. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
multi-location-multi-brand differentiator
Multiple POS configs with distinct product categories, pricelists and receipts can run on one device, but only one session at a time per register. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
multi-location-multi-tax-jurisdiction
Fiscal positions map taxes and accounts per POS, per customer and per preset, with country localization packages preconfigured and inclusive/exclusive handling. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
multi-location-central-labor-policy
POS rights tiers are per point of sale but labor rules (overtime, breaks, predictive scheduling) are not enforced at the terminal. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01
Hardware & physical footprint
hardware-commodity-devices differentiator
Browser-based POS running on any device; peripherals are commodity Epson/ESC-POS printers and third-party iMin Android units bought from iMin partners. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01
hardware-os-platforms
Docs name Chromium 142+ browsers (Chrome, Brave, Edge, Vivaldi, Opera) for LNA and iMin Android devices, but publish no full OS/device minimum-spec matrix. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/pos_lna.html · retrieved 2026-08-01
hardware-handheld-purpose-built
Odoo sells no handheld. Hardware guidance is commodity browser devices, Epson printers and iMin Android POS units from third-party partners. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01
hardware-handheld-battery-swap differentiator
No first-party handheld exists, so no battery rating or hot-swap claim is published. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01
hardware-handheld-lte
No handheld product and no documented cellular failover for POS devices.
hardware-offline-mode
Marketing and docs claim reliable online-and-offline operation, but no explicit list of which functions degrade is published. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01
hardware-kds
It is genuinely first-party and the routing/stages/alert-timer/Recall features are all verbatim in the docs — but it is Enterprise-edition-only (module absent from the public odoo/odoo tree; docs treat it as an Enterprise app), so it is not available to the Community self-host the dossier's whole 'best at' thesis rests on. Also verified: 'IoT boxes are not supported.' https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01 adversarially verified
hardware-kiosk differentiator
First-party kiosk software on the same menu, optionally on an IoT Box touchscreen. No countertop/freestanding SKUs and no ADA documentation. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01
hardware-drive-thru
Hardware docs cover printers, scales, customer displays, electronic labels and IoT. No menu boards, confirmation displays or headset integration. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01
hardware-printer-compatibility
'Epson printers are strongly recommended.' Network ePOS direct (Epson), any ESC/POS via an IoT system, LAN/Ethernet supported; Bluetooth explicitly not compatible. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01
hardware-peripherals
Documented pages for scales, customer displays, electronic shelf labels, barcode scanning and cash machines (Cashdro, Cashmatic, Glory). Multi-drawer per terminal not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01
hardware-p2pe-terminal
Card entry happens on the third-party provider's PTS terminal, keeping Odoo out of the card path, but Odoo does not state the merchant's SAQ type. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01
hardware-tap-to-phone differentiator
No Tap to Pay on iPhone or Android tap-to-phone acceptance documented.
hardware-pricing-transparency differentiator
Odoo publishes no POS hardware SKU prices; devices are sourced from third parties such as iMin business partners. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01
hardware-ownership-vs-lease differentiator
Scored yes on pure inference with a source (the receipt-printers hardware page) that says nothing about ownership, lease, or rental. Under the no-URL-no-yes rule this cannot stand. Odoo publishes no affirmative statement about hardware commercial models because it does not sell hardware. adversarially verified
hardware-usable-after-churn differentiator
Hardware is commodity third-party equipment Odoo never sold or provisioned, so it cannot be software-locked — but Odoo publishes no statement to that effect. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01
hardware-rma-sla differentiator
Odoo sells no restaurant hardware and publishes no warranty term or advance-exchange SLA. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01
hardware-byod
The POS runs in a browser on any phone, with employee badge, name or PIN login gating access. No documented BYOD security or device-management model. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01
hardware-remote-device-management differentiator
The IoT app lists connected devices and the POS exposes an LNA Permission status popup. No fleet console with remote reboot or staged rollout. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/pos_lna.html · retrieved 2026-08-01
hardware-selfpour-scales
Weighing scales are supported for by-weight products, but no self-pour tap wall, flow meter or pour-spout integration is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/scale.html · retrieved 2026-08-01
hardware-callerid-integration
Odoo ships a VoIP app that surfaces the contact record on calls, but no documented POS caller-ID popup with order history. https://www.odoo.com/pricing · retrieved 2026-08-01
Integrations, API & extensibility
extensibility-public-api-docs
External JSON-2 API reference is fully public with no NDA or sales call, plus a per-database /doc page enumerating models, fields and methods. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01
extensibility-api-access-cost differentiator
Verified verbatim, and it appears consistently across the 15.0 through 19.0 and master docs — this is longstanding policy, not a 19.0 quirk. Note two refinements the dossier missed: /json/2 is flagged 'New in version 19.0', so anyone on 18.0 or earlier has only XML-RPC/JSON-RPC; and a forum thread claims read access works in practice on lower plans, which is not authoritative and should not be scored. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01 adversarially verified
extensibility-free-sandbox differentiator
Odoo offers a free trial, a public demo database and runbot builds, and Community Edition self-hosts free — but no purpose-built seeded developer sandbox is documented. https://www.odoo.com/pricing · retrieved 2026-08-01
extensibility-oauth-partner-apps
External API auth is 'bearer followed by an API key' — a static per-user key, not OAuth 2.0 with scoped, individually revocable operator consent. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01
extensibility-webhooks-push
Automation rules push a 'Send Webhook Notification' POST on model triggers, usable for pos.order lifecycle, but there is no packaged order-event webhook product. https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html · retrieved 2026-08-01
extensibility-webhook-reliability differentiator
No HMAC signature, retry/backoff policy, or replayable delivery log is documented for outbound webhooks.
extensibility-order-injection-api
pos.order is writable through the ORM API, but Odoo does not document externally created orders firing to KDS and printers as first-class tickets. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01
extensibility-menu-write-api differentiator
product.template, attributes, combo choices and pricelists are ordinary models fully writable over /json/2, subject to access rights. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01
extensibility-doordash-preferred differentiator
The score is right — Odoo reaches DoorDash only through UrbanPiper. But the ten-name DPIP roster is cited to an Odoo documentation page that cannot possibly contain it. That is an uncited assertion wearing a citation, and it should either get a real DoorDash-side source or be struck from the note. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01 adversarially verified
extensibility-first-party-delivery-integrations differentiator
'A valid UrbanPiper subscription is mandatory' and Odoo Community does not support the integration — marketplace access is middleware-mediated and paid. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01
extensibility-middleware-compatibility
UrbanPiper is a documented first-class connector covering 25+ marketplaces. Support by Deliverect, Chowly, Otter or Checkmate was not verified. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01
extensibility-accounting-connectors
Odoo Accounting is the native GL with mapped journal entries from POS sessions, so no connector is needed — but no QuickBooks Online or Xero connector ships. https://www.odoo.com/pricing · retrieved 2026-08-01
extensibility-payroll-export
Odoo Payroll is positioned as the system of record; no native export or direct integration with two named third-party payroll providers is documented. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01
extensibility-app-marketplace
apps.odoo.com is a public, browsable third-party module marketplace with self-install, referenced directly from Odoo's own support forum and docs. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01
extensibility-headless-embedded
pos.order is API-writable in principle, but no documented headless mode letting a third-party UI drive the POS transaction engine.
extensibility-data-portability-exit differentiator
'Download a ZIP file containing a database backup by clicking Download Backup', self-service from the database manager, and the docs advise downloading one before deleting a database. The dump restores into the same LGPL-3 code the operator may self-host, and per-model CSV/XLS export covers subsets. Caveat: 'If the Download Backup option is disabled, it means the database is too large to be downloaded using the database manager. Contact Odoo Support to request an alternative download solution.' https://www.odoo.com/documentation/19.0/administration/odoo_online.html · retrieved 2026-08-08
Reliability, offline & operations
reliability-offline-order-entry
Vendor claims the POS is 'built to maintain functionality even during temporary network outages'. No documented guarantee for ticket routing or check printing. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01
reliability-offline-card-auth differentiator
Verified verbatim on the terminals page, along with the Force done / Cancel manual overrides. No store-and-forward. payments-offline-store-and-forward and payments-offline-decline-liability are upheld on the same evidence. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01 adversarially verified
reliability-offline-decline-liability differentiator
No store-and-forward exists, so no decline-liability position or offline cap is published. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01
reliability-lan-degraded-multi-terminal differentiator
Local Network Access is documented purely as browser-to-printer/IoT device access. No LAN-only shared check state across terminals is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/pos_lna.html · retrieved 2026-08-01
reliability-local-transaction-engine differentiator
Odoo Online is pure cloud with no edge server, but On-Premise deployment (Custom plan or free Community) puts the whole transaction engine on the operator's LAN. https://www.odoo.com/pricing · retrieved 2026-08-01
reliability-offline-kds-printing
LNA lets the browser talk directly to an ePOS printer on the LAN, so kitchen printing may survive an internet outage. The preparation display is server-served. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/pos_lna.html · retrieved 2026-08-01
reliability-printer-fallback
Printer configuration binds categories to a single printer with no backup printer or KDS failover and no staff alert on unreachable printers. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01
reliability-sync-conflict-handling
No documented conflict-resolution behaviour for concurrent edits on two devices during a network partition.
reliability-offline-feature-matrix
No published list of features unavailable offline. A long-standing community question about how offline mode works remains the operator's only reference. https://www.odoo.com/forum/help-1/how-is-the-point-of-sale-offline-mode-working-218314 · retrieved 2026-08-01
reliability-public-status-page
status.odoo.com exists with per-component sections and a 90-day uptime figure, but the fetched page contained unrendered template tags and Lorem Ipsum incidents. https://status.odoo.com/ · retrieved 2026-08-01
reliability-247-live-support
Verified verbatim: 'unlimited access to our support by email ... 24/5, in English, French, Spanish or Dutch.' Monday to Friday only. https://www.odoo.com/pricing · retrieved 2026-08-01 adversarially verified
reliability-onsite-install differentiator
Implementation runs through Success Packs or Odoo Partners; the ESA contemplates working with an Odoo Partner. First-party on-site go-live is not offered as a product. https://www.odoo.com/pricing · retrieved 2026-08-01
reliability-menu-build-service differentiator
Implementation is a separately purchased Success Pack or partner engagement; no standard included menu build is documented. https://www.odoo.com/pricing · retrieved 2026-08-01
reliability-hardware-replacement-sla
Odoo supplies no restaurant hardware, so there is no replacement or advance-exchange program. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01
reliability-pci-dss-4-attestation
No PCI DSS v4.0/4.0.1 AoC or validated P2PE listing published by Odoo was found.
reliability-mfa-role-based-access
Backend uses Odoo user accounts with granular access groups and available two-factor auth; POS itself is limited to PIN/badge across three fixed rights tiers. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01
reliability-self-serve-training
Free public documentation and video tutorials (including POS-specific ones referenced throughout the docs). No POS terminal training/practice mode documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01
reliability-failover-terminal-role differentiator
Terminals are browser clients of a central server; no master/primary terminal role exists to fail over. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/pos_lna.html · retrieved 2026-08-01
reliability-cellular-backup
Network guidance covers Wi-Fi and Ethernet for printers and devices; no cellular/LTE failover is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01
Commercial, compliance & data ownership
commercial-month-to-month-contract differentiator
Score stays partial, but the note is factually wrong and must be corrected before it is quoted anywhere. $31.10 and $61.00 are the REGULAR ANNUAL rates. The published monthly rates are $48.90 (Standard) and $95.25 (Custom) regular, $38.90 and $76.20 promotional. The ESA term-and-30-day-notice reading is verified. https://www.odoo.com/pricing · retrieved 2026-08-01 adversarially verified
commercial-no-early-termination-fee differentiator
No ETF or liquidated-damages clause was located in the published ESA; the 300% figure applies to using Enterprise Edition after termination, not to cancelling.
commercial-autorenew-terms-published
ESA §1: auto-renews for an equal Term unless either party gives written notice of termination at least 30 days before the end of the Term. Publicly readable. https://www.odoo.com/documentation/19.0/legal/terms/enterprise.html · retrieved 2026-08-01
commercial-processing-not-bundled differentiator
Odoo is not an acquirer and documents 13 independent terminal providers; the merchant contracts payments entirely outside Odoo. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01
commercial-interchange-plus-published differentiator
Odoo publishes no processing rates of any structure because it does not provide processing. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01
commercial-rate-increase-clause differentiator
Verified, as are the 30-day auto-renewal notice (commercial-autorenew-terms-published, yes) and the 300%-of-list-price post-termination breach fee. The dossier is right that 300% is a breach penalty and not an ETF, and right to leave the ETF cell unknown. https://www.odoo.com/documentation/19.0/legal/terms/enterprise.html · retrieved 2026-08-01 adversarially verified
commercial-pricing-published
Exact dollars are published, but the unit is per user per month, not per location or per terminal — terminal count is not a pricing dimension in Odoo. https://www.odoo.com/pricing · retrieved 2026-08-01
commercial-module-unbundling differentiator
One App Free is a single app at $0; Standard and Custom are all-apps flat per user. No à la carte purchase or cancellation of individual modules. https://www.odoo.com/pricing · retrieved 2026-08-01
commercial-hardware-purchase-outright
All hardware is third-party and bought outright with no Odoo lease, but Odoo publishes no prices for terminals, KDS screens or printers. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01
commercial-hardware-not-locked differentiator
Documented non-proprietary options: any Chromium browser device, Epson ePOS network printers, any ESC/POS printer via IoT, and third-party iMin Android units. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01
commercial-data-export-self-serve
Any list view - POS orders, order lines, payments, employees, attendances - exports via Action > Export to CSV or XLS, with field selection and saved presets; 'the values can be exported from any field in any record'. No ticket, no fee. The Cloud SLA adds a full database backup 'at any time', and the JSON-2 external API is documented for programmatic pulls. https://www.odoo.com/documentation/19.0/applications/essentials/export_import_data.html · retrieved 2026-08-08
commercial-export-customer-and-loyalty differentiator
'Generated gift cards can be accessed through the Gift Cards smart button' (and eWallets likewise), each issued card a record with Expiration Date, Partner and Balance. Loyalty cards appear the same way from the program form and via a Loyalty Cards smart button on the contact. Being ordinary models, they fall under Action > Export to CSV/XLS - 'the values can be exported from any field in any record' - and under the full database backup. https://www.odoo.com/documentation/19.0/applications/sales/sales/products_prices/ewallets_giftcards.html · retrieved 2026-08-08
commercial-post-termination-export-window differentiator
No defined post-termination data-retrieval window was located in the published ESA or SLA.
commercial-data-ownership-clause differentiator
Odoo publishes a Privacy Policy, GDPR page and DPA-adjacent material, but an explicit merchant-owns-data and no-resale clause in the ESA was not verified.
commercial-pci-p2pe-tokenization
Card entry occurs on third-party PTS terminals, but Odoo names no validated P2PE solution and states no applicable merchant SAQ type.
commercial-pci-dss-4-controls
Two-factor auth and granular access groups exist, but Odoo publishes no PCI DSS v4.0.1 control statement covering CDE MFA or payment-page script integrity.
commercial-privacy-dsar-tooling
A guest record can be located, exported (portal or Action > Export) and deleted by hand, and the subscription agreement includes 'Data Protection Clauses (often referred to as a Data Processing Agreement), as required by the GDPR' with no signature step - customers 'automatically benefit'. But there is no in-app DSAR queue or one-click subject package, and erasure is refused where business documents reference the contact, leaving anonymisation and no deletion propagation. https://www.odoo.com/gdpr · retrieved 2026-08-08
commercial-wcag-kiosk-accessibility differentiator
No VPAT/ACR or WCAG 2.1 AA claim for the self-order kiosk or web ordering surfaces was found.
commercial-dual-pricing-compliant differentiator
Pricing features cover discounts, pricelists, cash rounding and fiscal positions only. No cash-discount, surcharge, or debit-exclusion engine exists. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01
Adversarial verification
An independent pass was instructed to refute this record, defaulting to downgrade when uncertain. It challenged 37 values — 30 upheld, 7 downgraded, 0 upgraded. This is published in full because a reader who can see which values were contested, on what evidence, and which way they moved has something no affiliate-funded comparison offers.
Pricing and identity
| Field | Verdict | What the verifier found |
|---|---|---|
| pricing.software | downgrade-to-partial | Two defects. (1) The four figures quoted are the ANNUAL-billing prices only. The pricing page also publishes monthly-billing rates the dossier never mentions: Standard $38.90 promo / $48.90 regular, Custom $76.20 promo / $95.25 regular. A month-to-month restaurant on Custom pays $95.25/user/mo, not $61.00 — a ~56% understatement of the no-commitment price. (2) The 'restaurant POS is free forever' economics is claim-level, sourced to a product marketing page, and is actively undercut by product documentation: the preparation-display page states 'The Kitchen Display app is automatically installed whenever a restaurant point of sale is created.' Kitchen Display is a distinct Odoo app; One App Free covers one app. I could not find any Odoo statement confirming a restaurant POS with its auto-installed Kitchen Display still qualifies for the $0 tier, so the headline free-tier claim is unverified, not established. source |
Capability claims
| Claim | As first scored | Verdict | What the verifier found |
|---|---|---|---|
| commercial-month-to-month-contract | partial — 'Monthly rates are published ($31.10 and $61.00/user/month) alongside discounted annual' | upheld | Score stays partial, but the note is factually wrong and must be corrected before it is quoted anywhere. $31.10 and $61.00 are the REGULAR ANNUAL rates. The published monthly rates are $48.90 (Standard) and $95.25 (Custom) regular, $38.90 and $76.20 promotional. The ESA term-and-30-day-notice reading is verified. source |
| hardware-kds | yes — first-party preparation display / Kitchen Display app | downgrade-to-partial | It is genuinely first-party and the routing/stages/alert-timer/Recall features are all verbatim in the docs — but it is Enterprise-edition-only (module absent from the public odoo/odoo tree; docs treat it as an Enterprise app), so it is not available to the Community self-host the dossier's whole 'best at' thesis rests on. Also verified: 'IoT boxes are not supported.' source |
| kitchen-station-routing | yes — 'Specify the POS product categories to be sent to this display' | upheld | Verified verbatim, including 'Leave the field empty to allow all categories.' Carry the same Enterprise-edition caveat as hardware-kds. source |
| delivery-3p-injection | yes — UrbanPiper consolidates orders from all connected platforms into the POS | downgrade-to-partial | This is the exact shape of cell the brief says to hold to the highest bar, and it is not native. Verified from the Odoo doc: 'an active Odoo Enterprise subscription is required. Odoo Community does not support' it; Enterprise 18.0+; a valid UrbanPiper subscription; plus registered reseller accounts with each platform. Three separate paid relationships and a middleware hop is a partner integration, not a yes. source |
| hardware-ownership-vs-lease | yes (confidence: inferred) — 'Odoo offers no hardware lease, so ownership is the only model' | downgrade-to-unknown | Scored yes on pure inference with a source (the receipt-printers hardware page) that says nothing about ownership, lease, or rental. Under the no-URL-no-yes rule this cannot stand. Odoo publishes no affirmative statement about hardware commercial models because it does not sell hardware. source |
| inventory-shelf-life-expiry | yes — 'Expiration dates can also be configured for products tracked by lot or serial number' | downgrade-to-partial | I could not re-verify that sentence on the cited POS products page; the rendered page's stock section is a stub linking out to Inventory. Expiry tracking is a real Odoo Inventory feature, but its POS surfacing — the thing the cell is scoring — is not confirmed on the cited source. Same caution applies to inventory-lot-traceability's stronger sub-claim that lots are 'imported automatically onto POS cart lines,' which I also could not verify. source |
| labor-native-scheduling | yes — Odoo Planning is a first-party app in the same database | downgrade-to-partial | True that Planning is first-party, but it is a separate app: unavailable on the $0 One App Free tier the dossier leans on, and it reaches the operator only via the all-apps Standard/Custom per-user subscription. It is also not a restaurant labor scheduler — no demand forecast from POS sales, no break/minor/fair-workweek rules (the dossier correctly scores all three 'no'), which makes an unqualified yes here inconsistent with its own neighbors. source |
| delivery-tracking-page | no — 'No branded order-status or driver-tracking page documented' | downgrade-to-unknown | Sourced to restaurant.html, a page that never discusses delivery tracking at all. This is silence, not an affirmative absence and not an enumerated alternative. Per the ground rules that is 'unknown', not 'no'. Same defect applies to delivery-offline-behavior, which cites the same page. source |
| extensibility-doordash-preferred | no — note lists the 2026 DoorDash Preferred Integration Partner cohort as Checkmate, Chowly, Deliverect, Otter, PAR, Qu, Square, Stream, Toast, UrbanPiper | upheld | The score is right — Odoo reaches DoorDash only through UrbanPiper. But the ten-name DPIP roster is cited to an Odoo documentation page that cannot possibly contain it. That is an uncited assertion wearing a citation, and it should either get a real DoorDash-side source or be struck from the note. source |
| reliability-offline-card-auth | no — 'If a connection issue occurs between Odoo and the payment terminal, the transaction is automatically canceled' | upheld | Verified verbatim on the terminals page, along with the Force done / Cancel manual overrides. No store-and-forward. payments-offline-store-and-forward and payments-offline-decline-liability are upheld on the same evidence. source |
| payments-processor-choice | yes — thirteen documented terminal providers, Odoo is not the acquirer | upheld | All thirteen names verified on the terminals page exactly as listed. Processor neutrality is real and is the dossier's most defensible differentiator. source |
| extensibility-api-access-cost | no — 'Access to data via the external API is only available on Custom Odoo pricing plans' | upheld | Verified verbatim, and it appears consistently across the 15.0 through 19.0 and master docs — this is longstanding policy, not a 19.0 quirk. Note two refinements the dossier missed: /json/2 is flagged 'New in version 19.0', so anyone on 18.0 or earlier has only XML-RPC/JSON-RPC; and a forum thread claims read access works in practice on lower plans, which is not authoritative and should not be scored. source |
| digital-qr-table | yes — free physical QR codes worldwide, all subscription types | upheld | Verified verbatim on the restaurant page: 'To order free physical QR codes adapted to the floor plan, activate the QR menu setting, then click Get QR Codes in the Floor plan view. This offer is available worldwide and for all subscription types.' Rare case of a marketing-sounding claim that is actually in the product docs. source |
| commercial-rate-increase-clause | partial — ESA §5.2 caps renewal increases at up to 7% per year of the previous Term | upheld | Verified, as are the 30-day auto-renewal notice (commercial-autorenew-terms-published, yes) and the 300%-of-list-price post-termination breach fee. The dossier is right that 300% is a breach penalty and not an ETF, and right to leave the ETF cell unknown. source |
| reliability-247-live-support | no — pricing page states support is 24/5 | upheld | Verified verbatim: 'unlimited access to our support by email ... 24/5, in English, French, Spanish or Dutch.' Monday to Friday only. source |
| menu-pricing-fractional-placement | no — product model is attributes/variants plus one-level combos, no halves or sections | upheld | Held to the highest bar as instructed. The products page documents only attributes/variants and combo choices as the composition model — the alternative is affirmatively enumerated, so 'no' is defensible rather than mere silence. The dependent cells (half-and-half rule, kitchen-pizza-fractional-display, modifier-price-by-parent-size, nested modifiers) fall the same way. source |
| labor-native-scheduling | partial, grade B - True that Planning is first-party, but it is a separate app: | upheld | Grade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source |
| inventory-cogs-gl-export | partial, grade B - Odoo Accounting is the GL, so COGS and AP post natively rath | upheld | Grade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source |
| multi-location-org-hierarchy | partial, grade B - Multi-company (parent/child) plus many POS configs per compa | upheld | Grade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source |
| extensibility-accounting-connectors | partial, grade B - Odoo Accounting is the native GL with mapped journal entries | upheld | Grade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source |
| reliability-local-transaction-engine | partial, grade B - Odoo Online is pure cloud with no edge server, but On-Premis | upheld | Grade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source |
| reliability-247-live-support | no, grade B - Verified verbatim: 'unlimited access to our support by email | upheld | Grade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source |
| reliability-onsite-install | partial, grade B - Implementation runs through Success Packs or Odoo Partners; | upheld | Grade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source |
| reliability-menu-build-service | partial, grade B - Implementation is a separately purchased Success Pack or par | upheld | Grade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source |
| commercial-month-to-month-contract | partial, grade B - Score stays partial, but the note is factually wrong and mus | upheld | Grade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source |
| commercial-pricing-published | partial, grade B - Exact dollars are published, but the unit is per user per mo | upheld | Grade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source |
| commercial-module-unbundling | partial, grade B - One App Free is a single app at $0; Standard and Custom are | upheld | Grade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source |
| guest-loyalty-native-email-sms | yes / B - https://www.odoo.com/pricing - "Odoo ships first-party Email Marketing and SMS Marketing apps in the same database (SMS via IAP c" | upheld | The cited evidence was the pricing page, which is grade C and cannot carry a yes on a differentiator. Retrieved Odoo's documentation host instead: applications/marketing/email_marketing.html and applications/marketing/sms_marketing/create_sms.html both describe the mechanics (composition, Recipients model selection with filter equations, Send/Schedule/Test) rather than restating marketing copy, and create_sms.html states credits must be purchased or SMS will not send. Both channels are first-party apps in the same database, so the yes survives on grade-B documentation. source |
| digital-guest-data-ownership | yes / B - 'Users can download manual backups of their live data at any time'; plus per-model CSV/XLSX ex | upheld | The cited /page/odoo-online-sla 301s to /cloud-sla. I fetched the destination and re-checked the quotation word for word - it is present and unconflated, so the citation moved rather than died. Independently, the export manual documents Action > Export on any list view for any field of any record, and the GDPR page names the customer as controller of a Cloud database. Contact records (res.partner) carry email, phone, opt-out and are ordinary exportable models. Re-pointed to the export documentation. source |
| guest-loyalty-data-export-portability | yes / B - Full live-database backup downloadable at any time, plus list-view CSV/XLSX export on every m | upheld | Checked the moved SLA at its new address (quotation intact) and then went past it to the export manual, which is the stronger evidence: it describes the exact self-serve path (list view -> Action -> Export -> CSV/XLS), states any field of any record can be exported, and mentions no fee, approval or ticket. The only documented limit is a timeout on very large single exports, with batching as the remedy - a performance caveat, not a gate. source |
| guest-loyalty-privacy-rights-tooling | partial / E - Any record can be exported or deleted and Odoo publishes GDPR material, but there is no p | upheld | The cited SLA (now /cloud-sla) covers backups and security only and says nothing about data-subject rights, so the original citation did not support this cell even before it moved. Odoo's GDPR page does: it enumerates per-right handling as manual admin steps and explicitly notes that deleting a contact is refused when documents reference it, with anonymisation as the workaround. That is positive evidence for partial and for the named shortfall. Grade left at E to match this record's convention for docs-backed partials. source |
| reporting-history-retention | partial / E - Data lives in the operator's own Postgres database with no documented truncation or archi | upheld | Withdrew the SLA leg: /cloud-sla documents backup rotation (1/day for 7 days, 1/week for 4 weeks, 1/month for 3+ months), which is a disaster-recovery schedule, not a reporting-history guarantee, and reading it as one would have overstated the cell. Re-read the POS reporting page, which shows session and order history in filterable pivot/graph views and says nothing about retention or truncation, and the Odoo Online page, whose only data-loss language is about deliberate database deletion. Partial survives on the queryable-history half; the missing window is the shortfall. source |
| extensibility-data-portability-exit | yes / B - Complete live-database backup downloadable at any time in a documented restorable format, plu | upheld | Replaced the SLA citation with the database-manager documentation, which names the mechanism, the artifact (a ZIP) and the exit context explicitly. Also found the caveat the first pass missed - very large databases have the button disabled and need a support request - but that is a documented alternative route, not a fee or a refusal, and the CSV/XLS and self-host paths are unaffected. A differentiator yes now rests on grade-B product documentation rather than a legal page. source |
| commercial-data-export-self-serve | yes / B - 'Users can download manual backups of their live data at any time', plus CSV/XLSX export from | upheld | Verified the moved SLA quotation verbatim at /cloud-sla, then confirmed the operative mechanism in the export manual: list view, Action, Export, CSV/XLS, all fields of all records, no fee or support step mentioned. The documented JSON-2 API on the Odoo Online page covers the API half of the claim. Only caveat is batching very large exports against a timeout. source |
| commercial-export-customer-and-loyalty | yes / B - Customers, loyalty cards/point ledgers and gift-card records are ordinary models included in | upheld | The researcher's claim that these are ordinary exportable models was correct but was cited to a hosting SLA that says nothing about loyalty or gift cards. Retrieved the eWallet/gift-card guide, which shows issued cards as records with a Balance field reachable from a smart button, and the loyalty/discount guide, which shows generated cards reachable from the program form and from the contact. Combined with the export manual's any-field-any-record rule, the differentiator yes now rests on grade-B documentation. I did not find a dedicated point-ledger export report; the balance field on the card record is what carries it. source |
| commercial-privacy-dsar-tooling | partial / E - Any guest record can be located, exported and deleted, and Odoo publishes GDPR material, | upheld | The cited SLA covers backups, encryption and recovery objectives only - it never mentioned DSARs or a DPA, so this citation was wrong on the merits before it ever moved. Odoo's GDPR page carries both legs: it describes access, portability, rectification, erasure and opt-out as manual admin actions, states that deletion is blocked when documents still reference the contact, and confirms the agreement embeds GDPR Data Protection Clauses that apply automatically. Partial is correct; the shortfall is the absence of any packaged workflow. source |
Sources
Every URL this record cites. 34 in total.
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/customer_credit.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html
- https://github.com/odoo/odoo/blob/master/addons/pos_restaurant/__manifest__.py
- https://www.odoo.com/page/odoo-online-sla
- https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html
- https://www.odoo.com/pricing
- https://www.odoo.com/documentation/19.0/applications/hr/payroll.html
- https://www.odoo.com/documentation/19.0/developer/reference/external_api.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/pos_lna.html
- https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/scale.html
- https://www.odoo.com/forum/help-1/how-is-the-point-of-sale-offline-mode-working-218314
- https://status.odoo.com/
- https://www.odoo.com/documentation/19.0/legal/terms/enterprise.html
- https://www.odoo.com/documentation/18.0/applications/marketing/sms_marketing/create_sms.html
- https://www.odoo.com/documentation/18.0/applications/marketing/email_marketing.html
- https://www.odoo.com/documentation/18.0/applications/marketing/email_marketing/mailing_lists.html
- https://www.odoo.com/cloud-sla
- https://www.odoo.com/documentation/19.0/applications/essentials/export_import_data.html
- https://www.odoo.com/gdpr
- https://www.odoo.com/documentation/19.0/administration/odoo_online.html
- https://www.odoo.com/documentation/19.0/applications/sales/sales/products_prices/ewallets_giftcards.html
- https://www.odoo.com/documentation/19.0/applications/sales/sales/products_prices/loyalty_discount.html