HADOOPT
TECHNOLOGIES
Schedule a Tech Consultation
Home
Services
Odoo ERP implementation Rollout, custom modules, migration and support. Web application development SaaS products, portals and internal platforms. Mobile application development Offline-first field apps and customer apps. AI development & automation LLM assistants, document processing, forecasting. Odoo version upgrades ↗ Move to a newer release, scoped and priced on its own site.
Products
OrgExp ↗ Budget, CAPEX and OPEX management.
Blog About Contact Schedule a Tech Consultation
Blog / Odoo 19: Complete Guide for Businesses
Odoo 19 6 min read

Setting up an online shop with Odoo 19 eCommerce

Odoo 19 eCommerce setup: publishing the catalogue, checkout steps, payment providers such as Razorpay, delivery methods, and B2B vs B2C tax display.

· ERP practice 22 Sep 2026

Odoo 19 eCommerce (the website_sale module, Community) turns your product catalogue into a shop on the Odoo Website. Orders land in Sales as ordinary sales orders, so stock, invoicing and accounting work exactly as they do for quotes. Most of the setup work is in four places: which products are published, the checkout steps, payment providers, and delivery methods. For B2C, the one setting to change on day one is the tax display: Odoo shows prices tax-excluded by default.

This is part 10 of our Odoo 19 guide. It builds on the products and pricelists in part 8; the website pages themselves are covered in part 32.

Publishing the product catalogue

A product appears in the shop only when it is published and can be sold. Beyond that, the eCommerce-specific fields on the product are the eCommerce categories (separate from internal product categories, so the shop menu can follow how customers browse rather than how accounts are posted), extra images, a ribbon such as "New" or "Sale", and optional and accessory products for cross-selling in the cart.

Variants appear as selectors on the product page, using the attribute display types you chose in the product setup. Combo products appear as configurable bundles. The eCommerce settings also offer Product Reference Price (a price per unit such as ₹/kg), Comparison Price (a struck-through reference price) and a Google Merchant Center feed.

With Inventory installed, Product Availability lets you show stock levels and decide per product whether to Sell when Out-of-Stock. It is on by default. Turn it off for anything you cannot restock quickly, or you will be refunding orders.

Website › Configuration › Settings                     shop settings
Website › eCommerce › Products › Products              publish, categories, ribbons
Website › eCommerce › Products › Pricelists
Website › Configuration › eCommerce › Payment Providers
Website › Configuration › eCommerce › Delivery Methods
Where the eCommerce setup lives in the Website app.

The Odoo 19 checkout: steps and customer accounts

Out of the box the checkout has three steps: Order (the cart), Address (with delivery method) and Payment. A fourth, Extra Info, exists but is off by default. Switch it on in the website editor if you need a PO number, a delivery note or a GSTIN confirmation from the buyer.

Key settings on the shop's settings page:

  • Customer Accounts at checkout: Optional (the default), Disabled (buy as guest) or Mandatory (no guest checkout).
  • Add to Cart: stay on the product page, or go straight to the cart.
  • Abandoned carts: a recovery email sent after a delay you set (10 hours by default).
  • Prevent Sale of Zero Priced Product, which replaces the buy button with a contact button for price-on-request items.
  • Orders Assignment: the salesperson and sales team that own web orders.

Payment providers for an Odoo shop

Payment providers are shared by eCommerce, online quotations and invoices. Each is a Community module you activate and configure with your merchant credentials. In India the usual choice is Razorpay, which supports UPI alongside cards. Stripe, PayPal, Adyen, Mollie and others cover international sales. Some providers support express checkout, where the customer pays with a wallet straight from the cart.

Two special providers are worth knowing about. Wire Transfer shows your bank details and leaves the order to be confirmed when the money arrives. Cash On Delivery is offered only on delivery methods where you have allowed it. Test every provider in its test mode with a real order, a failed payment and a refund before going live.

Payment fees and settlement timing are set by the provider, not by Odoo. Record provider payouts through the provider's journal so bank reconciliation stays sane (see part 21).

Delivery methods and shipping connectors

A delivery method is either a Fixed Price or Based on Rules (weight, volume, quantity or price bands), optionally free above an order amount. Methods can be limited by country, state or ZIP prefix, so "Tamil Nadu next-day" and "rest of India" can be separate lines with separate prices.

Carrier connectors calculate live rates and print labels. Shiprocket, relevant for Indian sellers, is an Enterprise module, as are most carrier connectors. Click & Collect (Community) lets customers pick up from a store or warehouse.

If your shipping is complicated, start with a few rule-based methods by zone and weight, and add a connector once you know your volumes. A wrong live-rate integration is harder to debug than a simple table.

B2B vs B2C: prices, taxes and access

The same shop can serve consumers and trade customers, but you have to decide how prices appear.

DecisionB2CB2B
Display Product PricesTax Included, so the price shown is the price paid, as Indian consumers expectTax Excluded, since buyers compare net prices and claim input credit
Shop accessAll usersOften Logged in users only
Sign upFree sign upOn invitation, via Portal Access Management
PricesPublic pricelist, promotionsA pricelist assigned per customer on the contact form

Display Product Prices is set per website and defaults to Tax Excluded. If you genuinely need both behaviours, the clean option is two websites on one database (for example a retail shop and a trade portal), each with its own tax display, access rule and pricelists.

Pricelists can be tied to a website, restricted by country group, made selectable by the visitor, or applied with an E-commerce Promotional Code. A logged-in customer with their own pricelist sees their prices automatically.

Decide who the shop is for before you design it. The tax display, the login rule and the pricelists all follow from that one answer.

What to configure first

  1. Clean product data: names, images, eCommerce categories, HSN codes and taxes.
  2. Set tax display, customer accounts and shop access for your audience.
  3. Activate one payment provider in test mode, then live.
  4. Create two or three delivery methods by zone.
  5. Place test orders through to invoice and delivery, including a return.
  6. Later: abandoned-cart emails, product comparison, wishlists, merchant feeds, carrier connectors.

If your shop sells plans rather than one-off products, the next post covers subscriptions and recurring revenue in Odoo 19. For an end-to-end shop launch, including payments and GST, see our Odoo implementation service.

Questions we get asked

Is Odoo eCommerce free in the Community edition?

Yes. The Odoo 19 eCommerce module, website_sale, is LGPL and included in Community with the Website app. It covers the product catalogue, cart, checkout, customer accounts, pricelists, payment providers such as Razorpay and Stripe, and rule-based delivery methods. Some extras, including most carrier connectors such as Shiprocket and the website sales dashboard, require Enterprise.

How do I show prices including GST on an Odoo 19 website?

Open the Website settings and set Display Product Prices to Tax Included. The setting is per website and defaults to Tax Excluded. Your product taxes stay as they are; only the displayed price changes, so shoppers see the GST-inclusive amount they will pay. Check that every published product has the correct GST tax before switching.

Which payment gateways work with Odoo 19 in India?

Odoo 19 includes a Razorpay payment provider, a Community module that supports UPI and cards, which is the usual choice for Indian shops. Stripe, PayPal and other international providers are also available. You can add Wire Transfer and Cash On Delivery, the latter enabled per delivery method. Each provider needs your own merchant account and credentials.

Can one Odoo shop serve both B2B and B2C customers?

Partly. Pricelists assigned per customer give trade buyers their own prices on the same shop. However, tax display, shop access and sign-up rules are set per website, so B2B buyers wanting tax-excluded prices and consumers wanting tax-included prices cannot both be satisfied by one website. Running two websites on one Odoo database solves that.

← Previous Odoo 19 Point of Sale for retail and restaurants Next → Odoo 19 Subscriptions: recurring plans, renewals and MRR
Keep reading
Odoo 19 Getting started with Odoo 19: what changed and where to begin 6 min read Odoo 19 Installing Odoo 19 from source, Docker or packages 7 min read Odoo 19 Odoo 19 hosting: Odoo Online vs Odoo.sh vs on-premise 6 min read