How to Enable In-Store Picking and Payment in Odoo 18 eCommerce
By Braincuber Team
Published on February 24, 2026
UrbanThread Boutique runs a fashion-forward clothing store in downtown Portland with a loyal local following. When they launched their Odoo 18 eCommerce site last spring, online orders climbed fast, but so did a problem nobody anticipated: nearly 40% of their online customers lived within a 15-minute drive of the store. These customers were paying $8 to $14 for shipping on items they could have picked up in person. Some even placed orders, paid for shipping, and then walked into the shop an hour later asking if the package was ready yet.
The store manager, Ava, realized the situation was costing them in two ways. First, unnecessary shipping expenses ate into their margins on smaller orders. Second, customers who preferred to browse in person before committing to a purchase had no way to reserve items online and pay at the counter. After enabling Odoo 18's On-Site Picking and Payment feature, UrbanThread gave shoppers a "Pick Up in Store" option at checkout. Within the first month, 28% of online orders switched to in-store pickup, shipping costs dropped by $2,100, and foot traffic from online-originated orders introduced customers to accessories and seasonal items they would never have found on the website alone.
What You Will Learn: How to enable Click & Collect in your Odoo 18 eCommerce store, configure the "Pick Up in Store" delivery method with warehouse and store details, set up in-store payment options, walk through the complete customer checkout flow, and verify orders in the Sales module after pickup.
Why Offer In-Store Pickup?
Before jumping into the setup, it helps to understand why this feature matters for businesses that operate both an online store and a physical location. The benefits go beyond just saving on shipping.
Eliminate Shipping Costs
Customers who live nearby avoid paying for delivery. For UrbanThread, the average local order was $45, and shipping was $11. Removing that cost increased conversion rates among local shoppers by 22%.
Increase In-Store Upsells
When customers walk in to collect an online order, they browse. UrbanThread tracked that 35% of pickup customers added at least one additional item at the register during collection.
Pay at Pickup
Some customers prefer to see and try products before paying. The on-site payment option lets them reserve online and pay with cash, card, or QR code when they collect. This builds trust, especially for higher-value items.
Faster Fulfillment
No waiting for couriers, no tracking numbers, no delivery window anxiety. The customer places the order, gets a confirmation, and picks it up on their schedule. UrbanThread's average pickup time is same-day for in-stock items.
The Customer Experience at a Glance
Before we get into the technical setup, here is what the completed pickup flow looks like from the customer's perspective on UrbanThread's store:
Browse & Add to Cart
→Choose "Pick Up in Store"
→Select Store Location
→Pay Online or In Store
→Collect Your Order
Step 1: Enable Click & Collect in Website Settings
The first thing you need to do is turn on the delivery methods and the Click & Collect feature in your Website module settings. Without this, the pickup option will not appear during checkout.
- Open the Website module
- Go to Configuration > Settings
- Scroll to the Shipping section
- Enable Delivery Methods (this makes delivery options visible at checkout)
- Enable the Click & Collect option underneath it
- Click Save
Result: You have unlocked the ability for customers to choose in-store pickup during checkout. Now you need to configure the actual "Pick Up in Store" delivery method.
Step 2: Configure the Pick Up in Store Delivery Method
Open the delivery methods list to find and configure the pickup option. Odoo 18 includes a pre-built "Pick Up in Store" delivery method, but you need to customize it with your store details.
You will see all configured delivery methods listed here. Find "Pick Up in Store" and click to open it. Here is what each field controls:
| Field | Purpose | UrbanThread's Setting |
|---|---|---|
| Website | Restrict this delivery method to a specific website if you run multiple. Leave blank to make it available on all websites. | Left blank (single website) |
| Provider | The delivery logic type. Options include Fixed Price, Based on Rules, and Pick Up in Store. Select "Pick Up in Store" here. | Pick Up in Store |
| Company | The company this delivery method belongs to (relevant for multi-company setups). | UrbanThread Boutique LLC |
| Route | Controls the stock movement logic when this delivery method is selected. Determines which warehouse operations are triggered. | Default warehouse route |
| Margin on Rate | Percentage markup added to the shipping rate. For pickup orders, this is typically 0% since there is no shipping. | 0% |
| Additional Margin | Fixed amount added to the shipping cost. Also typically $0 for in-store pickup. | $0.00 |
| Free if Order Amount Above | Enable this to waive any pickup fee for orders above a certain amount. UrbanThread does not charge for pickup, so this is irrelevant. | Disabled |
| Delivery Product | The service product that represents this delivery method on the sales order and invoice. Odoo typically creates one called "Pick Up in Store." | Pick Up in Store (auto-created) |
Step 3: Set Up Your Store Location
Inside the "Pick Up in Store" delivery method, you will find a section to configure your physical store locations. This is where you tell Odoo where customers can collect their orders.
Warehouse & Store Details
For each pickup location, you configure these details:
Select the Warehouse
Choose the warehouse that stocks the products your customers will pick up. If you operate a single store, this is your main warehouse. For businesses with multiple locations, each pickup location links to its own warehouse so that stock availability is accurate.
UrbanThread selected their "Downtown Portland Store" warehouse, which is the same location where customers walk in.
Set the Store Address
Enter the full street address for the pickup location. This address is displayed to customers during checkout so they know exactly where to go. UrbanThread entered: 742 NW Everett Street, Portland, OR 97209.
Configure Open Hours
Set the hours during which customers can collect their orders. This is shown on the checkout page so customers can plan their visit. UrbanThread configured: Monday through Saturday, 10:00 AM to 7:00 PM. They left Sunday blank since the store is closed.
Stock Location
This determines which stock location within the warehouse is used for pickup orders. It controls where the system checks for available inventory when a customer selects this pickup point. In most single-location setups, the default stock location is fine.
Publish the Delivery Method
After filling in all the details, click the Publish button at the top of the delivery method form. This makes the "Pick Up in Store" option visible on your website's checkout page. An unpublished delivery method exists in Odoo but is invisible to customers.
Do Not Forget to Publish: This is the most common mistake. Everything can be perfectly configured, but if you forget to click Publish, the pickup option simply does not appear at checkout. UrbanThread's initial launch was delayed two days because of this. Always verify by visiting the front-end checkout yourself.
Step 4: The Customer Checkout Experience
Now that everything is configured, here is what happens when a customer shops on UrbanThread's website and chooses in-store pickup:
Browsing and Adding to Cart
A customer named Rachel is browsing urbanthread.com. She finds a linen blazer she likes and adds it to her cart along with a pair of earrings. The cart shows both items with their prices. She clicks Checkout.
Selecting the Delivery Method
On the checkout page, Rachel sees the available delivery options. Because UrbanThread enabled Click & Collect and published the pickup delivery method, the options look like this:
| Delivery Option | Price | Details |
|---|---|---|
| Standard Shipping | $8.50 | Delivered in 3-5 business days |
| Express Shipping | $14.00 | Delivered in 1-2 business days |
| Pick Up in Store | Free | Downtown Portland Store — 742 NW Everett St |
Rachel selects Pick Up in Store. The system shows her the store address and open hours so she knows when she can visit.
Payment Options
At the payment step, Rachel sees all available payment methods configured on the website. If the store offers on-site payment, she can choose to pay when she arrives. Otherwise, she can pay online using a credit card, PayPal, or any other payment provider configured in Odoo. UrbanThread offers both options:
Pay Online
The customer pays immediately using a credit card, debit card, or digital wallet. The order is confirmed and prepared for pickup. Reduces no-shows because the customer has already paid.
Pay in Store
The customer reserves the items but pays when they arrive. They can use cash, card, or QR code at the counter. This option builds trust with customers who want to inspect items before paying.
Rachel chooses to pay in store because she wants to try on the blazer first. She confirms the order, receives a confirmation email with the store address and pickup instructions, and heads to the store the next day.
Step 5: Verifying the Order in Odoo
After the customer places the order, it shows up in the Sales module. Here is how UrbanThread's staff handles it on the backend:
- Open the Sales module and navigate to Orders > Sales Orders
- Find Rachel's new order in the list (it shows the order number, customer name, and date)
- Open the order. The Delivery Method field shows "Pick Up in Store"
- The Delivery smart tab at the top of the order is activated, meaning Odoo has created a delivery/picking order for this sale
- Click the Delivery smart tab to see the picking order. The warehouse team can use this to prepare the items for Rachel's pickup
- When Rachel arrives and collects her order, the staff validates the delivery and processes the payment
Complete Flow: The order cycle is now closed. The customer browsed online, chose in-store pickup, reserved items, visited the store, inspected her blazer, paid at the counter, and walked out with her purchase. No shipping labels, no courier tracking, no delivery window coordination.
Multi-Location Pickup for Growing Businesses
If your business has more than one physical location, Odoo 18 lets you set up multiple pickup points within the same delivery method. Each pickup point links to its own warehouse, so stock availability is checked per location.
UrbanThread is planning to open a second store in the Pearl District next year. When they do, the setup will look like this:
| Pickup Location | Warehouse | Address | Hours |
|---|---|---|---|
| Downtown Store | Portland Downtown WH | 742 NW Everett St, Portland | Mon–Sat, 10 AM – 7 PM |
| Pearl District Store | Pearl District WH | 1155 NW Flanders St, Portland | Mon–Sun, 11 AM – 8 PM |
During checkout, the customer sees both locations and selects whichever is more convenient. Odoo checks the inventory at each linked warehouse, so if the Pearl District store is out of stock on a particular item, the customer is informed before completing the order.
Best Practices from UrbanThread's Implementation
Test the Full Checkout Flow Before Going Live
After enabling Click & Collect, Ava placed three test orders herself: one paying online, one paying in store, and one with a product that was out of stock. This caught a stock location misconfiguration that would have shown incorrect availability to real customers. Always run through the entire customer journey at least once before announcing the feature.
Keep Open Hours Accurate
If your store hours change for holidays, seasons, or renovations, update the open hours in the delivery method immediately. A customer who shows up outside listed hours for a pickup order will be frustrated. UrbanThread updates their hours ahead of every holiday closure and adjusts for summer extended hours.
Train Staff on the Picking Workflow
Store associates at UrbanThread check the Delivery smart tab in the Sales module every morning to see which orders need to be prepared for pickup that day. They pull items from the shelves, package them if needed, and place them behind the counter with the order number visible. When the customer arrives and gives their name, the associate validates the delivery in Odoo and processes payment.
Promote the Option on Your Homepage
Simply enabling in-store pickup is not enough if customers do not know about it. UrbanThread added a banner on their homepage and a note on every product page saying "Free in-store pickup available." After adding this messaging, the percentage of orders using pickup jumped from 18% to 28% within two weeks.
Summary
Key Takeaways: Odoo 18's Click & Collect feature bridges online shopping with physical retail by letting customers order online, skip shipping, and pick up in store. The setup involves enabling delivery methods and Click & Collect in Website settings, configuring the "Pick Up in Store" delivery method with warehouse details, store address, and open hours, then publishing it for customer visibility. Customers choose between paying online or paying at the counter during pickup. Orders appear in the Sales module with the delivery method clearly marked, and staff use the Delivery smart tab to prepare orders. For multi-location businesses, each store links to its own warehouse for accurate stock availability per location.
