Skip to Content

Click-and-Collect / BOPIS

80.85 80.85

Instant digital delivery after payment confirmation.
License: OPL-1, every download is watermarked.
Terms and Conditions
Compatible with Odoo 18.0 · 19.0
OPL-1 license · Odoo 18.0 & 19.0
Click-and-Collect / BOPIS for Odoo — preview banner

Click-and-Collect / BOPIS

Reserve online, pick in store, collection-ready notify and ID check for BOPIS

Click-and-collect is now table stakes for UK retail, but Odoo has no purpose-built BOPIS process — so teams bolt it onto generic deliveries and end up with no slot control, no collection-ready notification and no audit trail. This module turns any sale order into a trackable click-and-collect order with a proper lifecycle: customers reserve online, store staff move the order through picking and ready, the customer is emailed the moment it is collection-ready, and an optional ID check is enforced before handover. Per-store collection points enforce daily capacity and opening hours, booked time slots smooth counter traffic, and no-show plus auto-expiry handling releases staged stock without manual chasing. Lead-time and no-show reporting round it out. Omnichannel retailers running Odoo eCommerce alongside physical stores get a reliable, audited BOPIS workflow their customers and store staff can trust.

Key Features

Per-Store Collection Points

cc.collection.point models each store with a source warehouse, opening and closing times, a daily_capacity and a ready_expiry_days. remaining_capacity counts active orders for a date so a point is never overbooked, and a unique-code constraint keeps points clean per company.

Full Collection Lifecycle

cc.collection.order walks reserved, picking, ready, collected, no-show and cancelled states via action_start_picking, action_mark_ready, action_collect and more — every transition tracked on chatter, with an auto-generated reference and a short collection_code the customer quotes at the counter.

Collection-Ready Notification

action_mark_ready stamps ready_date, sets an expiry_date from the point's expiry days, and _send_ready_notification fires the cc_ready mail template to the customer's email — so shoppers know exactly when to come in and notify_sent records it.

Enforced ID Check at Handover

When a point has requires_id_check set, the order inherits it and action_collect refuses to complete unless id_verified is true. action_verify_id captures the document type, reference and verifier, enforcing proof of identity before goods leave the counter.

Time-Slot Booking with Capacity Guard

cc.collection.slot defines dated time windows with a capacity; _compute_booked derives booked_count, available and is_full, the order's slot domain hides full slots, and book() refuses an overbooked slot — preventing counter queues and overcrowding.

No-Show and Auto-Expiry

action_no_show marks uncollected orders, and the cron_expire_ready_orders scheduled job auto-flags ready orders past their expiry_date as no-show with a chatter note — freeing staged stock and slot capacity without manual chasing.

Sale Order Integration

sale.order gains a Click & Collect flag and a collection point; action_create_collection_order copies the order lines into a new collection order (blocking duplicate active ones), so any quotation becomes a trackable in-store pickup in one click.

Lead-Time & No-Show Dashboard

A built-in Collection Analysis report (Reports menu) provides a bar-chart graph view and pivot table aggregating average lead_time_hours and no-show counts per collection point and time period — so managers can benchmark fulfilment speed and identify high no-show branches at a glance. The cc.collection.wizard drives counter handover — capturing ID details and collector name in a single guided step.

Use Cases

A UK omnichannel retailer letting shoppers reserve online and pick up in store with a clean ready-to-collect flow.
A store manager capping daily collection volume per branch so the back office is never overwhelmed.
A shop selling age- or value-restricted goods that must verify customer ID before handover.
An eCommerce operator offering booked collection time slots to smooth counter traffic at peak.
A retail ops team auto-releasing stock from no-show collections instead of letting it sit reserved.
A regional manager tracking collection lead time and no-show rates across multiple collection points.

Screenshots

Click-and-Collect / BOPIS — Complete Collection in Odoo

Complete Collection

Click-and-Collect / BOPIS — Collection Orders in Odoo

Collection Orders

Click-and-Collect / BOPIS — Collection Points in Odoo

Collection Points

Why Choose This Module

A complete in-store collection workflow that turns any sale order into a trackable click-and-collect order. Customers reserve online, store staff pick and stage the goods, the customer is notified the order is collection-ready, and an optional ID / proof check is enforced before handover — with a full audit trail at every step.

Specifications

  • Compatible: Odoo 18.0 / 19.0
  • License: OPL-1
  • Languages: English
  • Author: Pokutsoft
  • Dependencies: sale_management, stock
  • Support: support@pokutsoft.com

Update date: 2026-07-02