Click and Collect
Rapid deployment of an online ordering and curbside pickup system for a natural foods grocer at the onset of COVID-19, built under extreme time pressure.
Overview
When COVID-19 hit in early 2020, a natural foods grocer needed a way for customers to order groceries online and pick them up curbside. The store had never offered that before. At Bright Village, I helped stand the system up fast, using Odoo’s built-in eCommerce as the storefront and building product and order syncs between it and the client’s back-office systems. We also deployed the Ventor app to give staff a mobile picking workflow on the shop floor.
Why this was hard
The timeline alone made it difficult. Lockdown restrictions were changing weekly, and the store needed to keep serving customers who could no longer browse in store. But the real complexity was in order picking.
- Grocery orders are not like warehouse orders. A single customer order might span produce, bulk, refrigerated, and frozen sections, each with different pick workflows and substitution rules.
- Inventory accuracy was approximate. A grocery store’s shelf quantities shift constantly. The sync had to be good enough to avoid selling items that were not available, without requiring real-time counts that the store could not maintain.
- Substitutions and communication. When an item was out of stock, pickers needed a way to flag it and offer alternatives before the customer arrived for pickup.
- Pickup coordination. Orders had to be staged, kept at the right temperature, and matched to customers arriving in narrow time slots.
What I built
- Product syncs that pulled catalogue and availability data from the client’s existing systems into the Odoo eCommerce shop, running frequently enough to keep listings roughly current without hammering the source.
- Order syncs that pushed confirmed orders back into the back office so staff could pick, pack, and stage them.
- Deployed and configured the Ventor app so pickers had a guided, mobile-first workflow for assembling multi-section grocery orders.
- Basic status tracking so customers knew when their order was ready for pickup.
Highlights
- Went from zero online ordering capability to live customers in weeks, not months.
- Kept the integration simple on purpose. There was no time to over-engineer, and the store needed something reliable more than something elegant.
- Handled the messy realities of grocery fulfilment (substitutions, partial availability, perishable staging) with pragmatic workarounds rather than perfect automation.
Stack
- Python
- Odoo
- PostgreSQL