AI Summary - 20-sec read - Reviewed by experts
- Click and collect lets a customer buy online and pick the order up at a store or counter instead of waiting for delivery. Odoo 19 (May 2026) added it natively: a checkout store selector and a product-page widget that shows pickup stock separately from delivery stock.
- Turning the feature on is the easy 10 percent. The hard 90 percent is making the per-location stock number true in real time, so you never promise a pickup you cannot hand over.
- It is an inventory and integration problem, not a checkout one: one stock number per location, a reservation that holds the unit the instant the order is placed, and a single source of truth across web, store and marketplaces.
- The common failures are dull and avoidable: overselling a shelf, ghost pickups no staffer ever prepared, and the "we have it but cannot find it" pick.
- Start with one store and one category, prove the flow, then widen. Short on time? Book a free call.
Short on time? Book a free call.
Click and collect lets a customer buy online and pick the order up at a store, counter or locker instead of waiting for a courier. Odoo 19, released in May 2026, added it natively: a store selector at checkout and a product-page widget that shows pickup stock separately from delivery stock. Switching it on takes an afternoon. Making it trustworthy takes a back office that knows exactly how many units sit at each location, holds them the moment an order is placed, and reconciles the pickup against payment and stock afterwards. The feature is a checkout toggle; the promise behind it is an inventory and integration problem.
For most of the last decade, a direct-to-consumer brand only had to answer one fulfilment question: how fast can a courier reach the customer. Click and collect flips that. Now the customer comes to your stock, which means your stock has to be in a known place, counted correctly, and reserved before they leave the house. That is a different muscle, and Odoo 19 making the storefront side effortless is exactly why the back-office side now needs attention. This post is about what has to be true behind the toggle before you let a shopper drive across town for an order.
Why click and collect became a 2026 question for D2C brands
Three things landed at once this year. Fast delivery stopped being a differentiator and became the floor, so a same-day courier no longer wins anyone over and the cost of it keeps climbing. Quick commerce squeezed margins hard enough that brands started asking whether owned pickup points, partner stores and experience counters could recover some of the contribution that platform fees eat. And Odoo 19 shipped native click and collect, so the brands already running their store and inventory in Odoo no longer need a custom build to offer it. When the storefront barrier drops, the operational question moves to the front: not "can we show a pickup option" but "can we keep its promise every time".
Indian D2C brands feel this sharply. A growing number run a handful of brand-owned stores or experience counters in tier-1 cities alongside the website, and click and collect is the obvious bridge between them. It also sidesteps the part of home delivery that quietly bleeds money here, the failed delivery and return-to-origin on cash-on-delivery orders, because the customer has already committed to coming in. The upside is real. So is the way it falls apart when the stock number is a guess.
What Odoo 19 actually added
Stripped of the feature-list language, Odoo 19 does three useful things for pickup. It shows availability for delivery and for in-store pickup as two separate numbers on the product page, so a shopper sees that an item is out for courier but sittable at the Andheri store. It handles the awkward checkout moment when a chosen store does not have everything in the cart, letting the customer save the missing item or drop it instead of hitting a dead end. And it lets cash on delivery work as pay-at-pickup, which matters in markets where a chunk of buyers still want to pay on collection.
All three are genuinely helpful, and all three only work if the number underneath them is honest. The product-page widget is just a window onto your inventory; the store selector is just a query against per-location stock. Odoo built the window. Whether the view through it is true depends entirely on how your inventory, your store operations and your other sales channels are wired together. This is the same pattern we wrote about when Odoo 19 moved cart recovery into the ERP: the feature is real, but the value lives in the data behind it.
Why the checkout is the easy 10 percent
A delivery promise has slack built in. If the warehouse is short a unit, you have hours or a day to source it from another location before the courier is even booked, and the customer never sees the seam. A pickup promise has no slack. The moment a shopper reserves a click-and-collect order, you have told them a specific unit is waiting at a specific store, and they may be on their way in twenty minutes. There is nowhere to hide a counting error. The store either has the item on the shelf or it has an angry customer at the counter and a refund to process.
That is why click and collect is an inventory problem wearing a checkout costume. The toggle is trivial. The thing it commits you to, an accurate, reserved, per-location count that survives the gap between order and collection, is the part most brands have never had to get right, because delivery let them be approximately correct. Pickup does not.
Not sure your per-store stock numbers are accurate enough to promise pickup?
We will take one product across your website, your stores and your marketplace listings and show you where the counts disagree, where a sale fails to reserve stock, and where a pickup could be promised on a unit that is not actually there. No pitch, reply in 2 hrs, no card needed, NDA on request.
Get a free auditThe five things your back office needs before you switch it on
You do not need new software to offer click and collect well if you already run Odoo. You need five things to be reliably true, wired together with discipline. Most brands own the raw material and have simply never had a reason to make the per-location side exact.
- One real stock number for each location, not one global figure. A single company-wide "in stock: 240" is fine for delivery and useless for pickup. The website has to read the count at the specific store the customer picks, and that count has to reflect what is physically on that shelf today. This is the foundation, and it is squarely a real-time inventory management job before it is a website one.
- A reservation that holds the unit the instant the order is placed. The dangerous window is between order and collection. If the reserved unit stays sellable to the next web shopper, walk-in or marketplace order, you will sell it twice. The pickup order must move that unit into a reserved state immediately, so no other channel can claim it.
- One source of truth across web, store and marketplaces. A pickup unit can be sold from the storefront, swiped at the in-store counter, or shipped against a marketplace order, often within the same hour. They all have to draw down the same number. For brands selling on Shopify and fulfilling from Odoo, keeping Shopify and Odoo in sync is what stops the website and the store from disagreeing, and a multi-channel inventory sync does the same across every marketplace you list on.
- A pickup fulfilment flow staff actually follow. An order at a store is only as good as the human steps behind it: pick the unit, stage it in a known spot, mark it ready, notify the customer, verify identity at handover, and close the order. If those steps live in someone's head, pickups get lost. Treat the store like a small fulfilment node with a defined process, the way a warehouse management flow defines picking and staging.
- Reconciliation that ties the pickup, the payment and the stock movement together. When the customer collects, three things must agree: the order is closed, the payment is captured (including pay-at-pickup cash), and the stock has left the building in the books exactly as it left the shelf. Skip this and your inventory drifts a little every day until the numbers behind the next pickup promise are fiction.
Read the five back and the theme is clear: none of them is about the storefront. They are about whether your stock is accurately located, reserved on sale, consistent across channels, physically fulfilled with a process, and reconciled afterwards. Odoo 19 gives you the pickup window for free. These five make the view through it true.
A pickup promise is only as honest as your per-location stock count.
Get the inventory, reservation and reconciliation right first, then switch the toggle on, not the other way around.
Book a free callThe failure modes nobody demos
Three break patterns show up again and again when a brand rushes pickup. The first is the oversell: the website shows two units at a store because the global count says so, both get reserved for pickup within the hour, and one customer drives in to find an empty shelf. The second is the ghost pickup: the order exists in the system, but no staffer ever picked or staged anything, because the store flow was a verbal habit rather than a real task, so the customer waits while someone hunts. The third is the quiet one, "we have it but cannot find it", where the count is technically right but the unit was never put in a known place, so the pickup turns into a fifteen-minute search that erases the convenience the customer came for.
Every one of these is an operations failure, not a software bug. Odoo 19 will faithfully show whatever your stock data claims and faithfully create whatever order the customer places. It cannot invent an accurate shelf count or a fulfilment habit you have not built. That is the work, and it is exactly the kind of unglamorous integration and process work a good Odoo implementation exists to get right.
Start with one store and one category
The wrong way to launch click and collect is to switch it on across every store and every SKU on a Friday and find out over the weekend which counts were wrong. The right way is to pick one store and one well-controlled category, make the per-location count exact for just that slice, run pickup on it for a few weeks, and watch where it strains. You will learn whether your reservation logic actually holds a unit, whether staff follow the pick-and-stage flow under real pressure, and whether reconciliation closes cleanly, all on a small enough surface that a mistake is a learning moment rather than a viral complaint.
Once that one store and one category run boringly well, the next is cheaper, because the plumbing and the habits already exist. This is the same crawl-before-you-run logic that applies whenever you bolt a new fulfilment promise onto the back office, including the quick commerce operations brands wrestle with on the delivery side. Prove the data and the process on one node, then widen.
Takeaways
- Odoo 19 made click and collect a storefront toggle. The promise behind it is an inventory and integration problem, not a checkout one.
- A pickup commits you to a specific unit at a specific store with no slack to hide a counting error, so per-location stock has to be exact and reserved on sale.
- Five things must be true: a real per-location count, an instant reservation, one source of truth across channels, a store fulfilment flow staff follow, and reconciliation that ties pickup, payment and stock together.
- The failures are dull and avoidable: oversell, ghost pickups, and "we have it but cannot find it". Start with one store and one category, prove it, then widen.
How to measure click and collect without fooling yourself
It is easy to call pickup a success because orders came in. Three readings tell you whether it actually works. First, pickup fulfilment rate: of the click-and-collect orders placed, how many were ready and handed over without a refund, a substitution or a wait, because that single number captures whether the promise held. Second, promise accuracy: how often the stock the website showed at a store matched what was physically there when the picker went to find it, which is the count honesty behind every pickup. Third, shrinkage and drift: how far the booked stock at each pickup location wanders from the physical stock over a month, because that gap is the reconciliation tax that turns next week's pickup promise into a guess. Watch those three and you are running pickup as an operation, not hoping it behaves.
Frequently asked questions
Do we need Odoo 19 specifically to offer click and collect?
No, but it removes the custom build. Earlier Odoo versions and other platforms can support pickup with extra configuration or development. What Odoo 19 adds is native handling of separate pickup-versus-delivery stock, the store selector and pay-at-pickup out of the box. The harder requirements, an accurate per-location count and a fulfilment process, are the same on any version.
Is click and collect only for brands with their own stores?
No. Owned stores and experience counters are the obvious case, but pickup can also run through partner stores, brand corners inside larger retailers, or lockers. The operational requirement does not change: wherever the customer collects has to be a location with a real, reserved stock count and a defined hand-over step.
How is this different from quick commerce or same-day delivery?
Quick commerce and same-day delivery bring the product to the customer from a dark store or warehouse, and you carry the last-mile cost and risk. Click and collect brings the customer to the product, which removes the courier and the failed-delivery loss but moves the burden onto accurate in-store stock and a clean pickup flow. Many brands run both, for different orders.
What breaks first when click and collect goes wrong?
Almost always the stock count. A global inventory figure that was good enough for delivery becomes a liability the moment it has to be true at a single named location, in real time, with a unit reserved on sale. Fix the per-location count and reservation first, and most of the customer-facing failures disappear.
Make the stock honest before you promise the pickup.
Talk to a team that has shipped 500+ ecommerce and operations projects. We will get your per-location stock accurate, your reservations holding, and your pickup orders reconciling in Odoo, so click and collect keeps its promise from day one. No pitch, reply in 2 hrs.
Book a free callThe short version: Odoo 19 turned click and collect into a toggle, and that is the easy part. The promise it makes for you, a specific unit waiting at a specific store, is only as good as the inventory, reservation and reconciliation underneath it. Get the per-location count right, hold stock the instant a pickup is placed, keep one source of truth across every channel, and reconcile every collection, and pickup becomes a genuine advantage rather than a counter full of apologies. Build that first, switch the toggle second.
Leads the Odoo practice at Braincuber. Has delivered Odoo ERP implementations, NetSuite/Tally migrations, and Shopify–Odoo integrations for US mid-market and D2C brands. Owns scoping, data migration, and go-live for every Odoo engagement.
