iodoo e-commerceIn this tutorial, we show you how to use free OCA e‑commerce modules to build a smooth and intuitive customer ordering journey on Odoo. First, we explain what these modules offer. Then, we guide you step by step through installation, configuration, and testing. Finally, we provide code examples and links to help you get started right away. Moreover, we keep each sentence in active voice and use transition words to guide you clearly.
What are free OCA e‑commerce modules?
You may ask, “What makes free OCA e‑commerce modules unique?” Simply put, the Odoo Community Association (OCA) maintains a set of open‑source extras that extend Odoo’s website‑sale features. Therefore, you can add advanced checkout controls, price hiding, unit packaging, and legal compliance without paid apps.
Why use free OCA e‑commerce modules?
First, you save on licensing costs because OCA modules remain free under the LGPL license. Next, you access community‑driven updates regularly. Additionally, you gain specialized features for B2B and B2C workflows. Finally, you support a thriving open‑source ecosystem that Odoo funds and many partners back.
How free OCA modules enhance the ordering journey
Moreover, these free OCA modules help you:
- Skip payment steps automatically for specific customers.
- Hide product prices from public users.
- Display secondary unit measures, like packs and bulk sizes.
- Enforce legal terms on checkout pages.
As a result, customers enjoy a clearer path to purchase, and you reduce support questions.
Prerequisites for free OCA e‑commerce modules
Before you install free OCA e‑commerce modules, ensure that you meet the following requirements.
Odoo version compatibility
- Check that you run Odoo 17 (or later).
- Note that some modules already exist on OCA 18 branch.
Server and system setup
- Install Python 3.10+.
- Use Git to clone repositories.
- Ensure you have access to your Odoo server’s configuration file (
odoo.conf).
Outgoing link and resources
You can find all free OCA e‑commerce modules on GitHub under the OCA website-sale organization. Moreover, you can explore module docs on the OCA website.
Install free OCA e‑commerce modules
Next, let’s install the modules on your Odoo server. We use active commands and short steps.
Clone free OCA e‑commerce modules repository
First, connect to your server via SSH. Then run:
cd /opt/odoo/custom-addons
git clone https://github.com/OCA/website-sale.git
This command saves the repo under website-sale. Next, you can pick the branches you need:
cd website-sale
git checkout 17.0
Add addons path in Odoo configuration
Then, open your odoo.conf and add the clone path:
[options]
addons_path = /opt/odoo/addons,/opt/odoo/custom-addons/website-sale
Save the file, and then restart the Odoo service.
Restart Odoo and update apps list
After you edit the config, run:
sudo systemctl restart odoo
Next, log in to your Odoo backend. Then go to Apps > click Update Apps List. Finally, search for your new modules to install.
Configure free OCA e‑commerce modules for intuitive ordering
Now we configure key modules. Each section shows code snippets and UI steps.
Skip payment checkout Odoo with free OCA modules
First, install website_sale_skip_payment:
- In Apps, search for Skip Payment Checkout.
- Click Install.
Next, activate it for specific customers:
- Go to Customers > choose a record.
- Under Sales & Purchases, check Skip Payment.
- Save the changes.
Then, we test:
- When this customer orders, Odoo confirms the sale right after checkout without asking for payment.
- Meanwhile, backend shows a draft sale order (
state: draft).
Code example: Automated confirmation
If you prefer code, you can apply this logic in a custom module:
from odoo import models
class SaleOrder(models.Model):
_inherit = 'sale.order'
def _payment_init(self):
# Skip payment for flagged customers
if self.partner_id.skip_payment:
self.action_confirm()
else:
super()._payment_init()
This snippet runs before payment. It confirms the order if skip_payment is true. Otherwise, it proceeds normally.
Hide product price with free OCA modules
Next, we install website_sale_hide_price:
- In Apps, search Hide Price.
- Click Install.
After that, configure:
- Go to Customers > Public User.
- Under Access Rights, uncheck Portal or set to a group you define.
- Save the user.
Then, public visitors cannot see any price. Meanwhile, B2C or B2B can see once they log in.
Example: Hide price for specific products
To hide price only on select items:
- Edit your product.
- In the Website tab, mark Hide Price.
- Save.
This method requires no code and uses a built‑in checkbox.
Setup secondary unit measure Odoo
Now, install sale_stock_secondary_uom:
- In Apps, search Secondary Unit Measure.
- Click Install.
Then, configure the unit:
- Go to Inventory > Configuration > Units of Measure.
- Create a new UoM called Pack.
- Set factor to 12 (if 12 items per pack).
- Save.
Next, edit a product:
- Open Products > select an item.
- Under Sales, choose Pack as the secondary unit.
- Save.
Finally, test on the website:
- You will see an extra field to choose Pack units.
- The price updates accordingly (e.g., 12× base price).
Enforce legal compliance on checkout
Furthermore, you can require terms acceptance:
- Install website_sale_terms_conditions.
- In Apps, search Legal Terms.
- Click Install.
Then, go to Website > Configuration > Settings:
- Under Checkout, enable Terms and Conditions.
- Paste your legal text or a link.
- Save.
Now, users must tick a checkbox before placing an order. This step helps you meet local regulations.
Test and verify your improvements
After you set up each module, you must test both B2C and B2B flows.
B2C vs. B2B price display
First, log out. Then visit your store as a guest:
- You should see no price if you hid it.
Next, log in as a B2C customer:
- You see base price and discount labels.
Then, switch to a B2B user:
- You see unit pack pricing and tax‑included amounts.
Unit measure packaging test
Moreover, test the secondary unit:
- Choose Pack on the product page.
- Add a pack to the cart.
- Confirm the cart updates the right quantity and price.
Checkout skip payment scenario
Also, test skip payment:
- Log in as a user flagged for skip payment.
- Place an order.
- Observe that Odoo confirms the sale without payment.
Code summary and explanation
# Clone repo
git clone https://github.com/OCA/website-sale.git
# Switch to branch
cd website-sale && git checkout 17.0
# Edit odoo.conf
addons_path = /opt/odoo/addons,/opt/odoo/custom-addons/website-sale
# Restart service
sudo systemctl restart odoo
Next, use Python hooks to customize behavior:
from odoo import models
class SaleOrder(models.Model):
_inherit = 'sale.order'
def _payment_init(self):
if self.partner_id.skip_payment:
self.action_confirm()
else:
return super()._payment_init()
This code sits in your custom module and ensures skip payment works at the right time.
Additional resources
- Get full list of free OCA e‑commerce modules at OCA/website-sale.
- Read official Odoo docs on e‑commerce: https://www.odoo.com/documentation/17.0/
- Join the community on GitHub: Odoo Community Association (OCA).
Conclusion
In summary, free OCA e‑commerce modules give you powerful tools to improve your Odoo store. Moreover, they let you skip payment steps, hide prices, offer pack units, and enforce legal terms—all at no additional cost. Therefore, follow this tutorial, install the modules, and configure them to match your business needs. Finally, test thoroughly, and enjoy a seamless and intuitive customer ordering journey.
Discover more from teguhteja.id
Subscribe to get the latest posts sent to your email.


Pingback: OCA Contribution Guide: 5 Powerful Secrets for Success