Module: `ct_pos_datepicker_filter`
Platform:** Odoo 19 — Point of Sale
Type:Native UI enhancement, zero-configuration install
Overview
Retail and hospitality businesses running Odoo Point of Sale generate hundreds of orders a day. When a manager, cashier, or support agent needs to look back at a specific day’s transactions — to resolve a customer dispute, reconcile a till, or audit a shift — the default POS Orders screen offers no fast way to do it. This case study covers the problem in detail, the solution we built, and the measurable improvement it delivers to daily POS operations.
The Problem
Odoo’s standard Point of Sale Orders screen was designed around text-based search filters: order number, receipt number, customer name, and similar fields. Date filtering was possible only through Odoo’s generic filter/domain system, which is powerful for developers but clumsy for the people who actually run a till during business hours.
In practice, this created three recurring frustrations for POS staff:
1. Only one filter at a time.
The default screen doesn’t let staff combine a date with another filter. A cashier who needed “all of *today’s* orders for *this customer*” had no way to express that in one search — they had to filter by customer, then manually scroll and scan for the right day, or vice versa.
2. Manual date typing, with no room for error.
There was no calendar picker. Staff had to type a date string into a search box by hand. A single typo — a transposed digit, a wrong separator — silently broke the search and returned nothing, with no indication of what went wrong.
3. Accidental future-date searches.
Because dates were free-typed, it was easy to fat-finger a date that hadn’t happened yet. The result was a blank order list with no explanation, which — especially during a busy shift — left staff wondering whether the system was broken, whether the order was missing, or whether they’d simply mistyped something.
Individually, each of these is a small friction. Together, on a busy shift with a line of customers, they add up to lost time, incorrect assumptions (“the order must not have gone through”), and unnecessary escalations to a manager or IT support just to find one order.
The Solution
We built **POS Datepicker Filter**, a lightweight, native extension to the Point of Sale Orders screen that adds a proper calendar-based date filter without touching or replacing any of Odoo’s existing search behavior.
The design goal was strict: solve the date-search problem completely, add nothing else to configure, and make it look like it always belonged in Odoo 19’s UI.
How it works
- A **calendar icon** is added directly beside the existing POS Orders search bar — not in a separate menu or settings screen.
- Clicking it opens a **popup calendar**. Staff select a date visually; there is no typing and therefore no typo risk.
- The date filter is a **filter like any other** in the POS search framework, so it stacks cleanly alongside order number, receipt number, and customer filters. Staff can now ask for “this customer, today” or “receipt #4521, last Tuesday” in a single search.
- **Future dates are disabled in the picker itself.** It’s not a validation message after the fact — the calendar simply doesn’t let you select a day that hasn’t happened, removing the blank-result problem at the source.
- The moment a date is picked, the order list **updates instantly** — no separate “apply” step.
- A **clear control** removes the date filter and instantly returns to the unfiltered (or other-filters-only) list.
Why this approach
Rather than building a separate reporting screen or a new menu item, the module works *inside* the screen staff already use every day. That was a deliberate choice: the biggest source of adoption failure for small operational tools is asking staff to learn a new place to look. By living next to the existing search bar and following Odoo 19’s native visual language exactly, the feature requires no training and no documentation to use — it reads as something Odoo shipped, not as a bolted-on add-on.
| Feature | Description |
| Datepicker beside the search bar | Positioned directly in the POS Orders screen, exactly where staff are already looking. |
| Filter by any exact date | One click loads every order for the selected day. |
| Combine with existing filters | Works alongside order number, receipt number, customer, and any other native filter. |
| Future dates automatically disabled | The picker makes an invalid search impossible, rather than reporting one after the fact. |
| Native Odoo 19 look & feel | Fully integrated with the POS UI — no visual seams. |
| Zero configuration | Install and use immediately. No settings screen, no setup step. |
User Flow
- Open Point of Sale → Orders. Staff navigate to the Orders screen within an active POS session, as they normally would.
- Locate the datepicker. A calendar icon sits directly next to the existing search bar — no new menu to learn.
- Pick a date. Clicking it opens a popup calendar. Any past or present date is selectable; future dates are greyed out automatically.
- See instant results. The order list filters immediately, and can be combined with other active filters for pinpoint accuracy.
- Clear to reset. One click on the clear control removes the date filter and restores the full list.
Impact
While results vary by business size and order volume, the module targets three concrete operational outcomes:
- Faster order lookups. Finding “everything from a specific day” goes from a multi-step manual scan to a single click.
- Fewer failed searches. Removing manual date typing removes the most common cause of a search returning nothing.
- Fewer unnecessary escalations. Because a blank result is no longer ambiguous (it simply can’t happen from a bad date), staff spend less time second-guessing the system or asking a manager to check “if the order is really missing.”
The underlying principle is one we apply across our Odoo work: the best fix for a workflow problem is usually not a new screen — it’s removing the extra step from the screen people already use.
Availability
POS Datepicker Filter is available on the Odoo Apps Store for Odoo 19: https://apps.odoo.com/apps/modules/19.0/ct_pos_datepicker_filter