Hello community,
We are evaluating Odoo’s eCommerce and have a slightly different requirement from the standard direct sales flow.
Due to our commercial policy and the specific sectors we work with, we don’t have fixed prices, and our sales conditions vary depending on the customer, product, minimum quantities, etc.
Therefore, we cannot allow direct online purchases. Instead, we need users (whether registered or not) to request a quotation, which should be automatically recorded in the backend as a quotation or draft sales order pending commercial review.
I have been exploring some possible alternatives, but none of them fully fit our needs:
- If we set website prices to 0 € and enable the “Prevent sales of zero-priced products” option, the “Add to Cart” button is replaced with “Contact Us”, but this only redirects to a generic contact form and does not create a quotation in the backend.
-
If we follow the standard eCommerce flow and simply don’t define a payment method, Odoo automatically generates a quotation instead of a confirmed order, which is close to what we want. However:
- It would require displaying public prices (possibly 0 €), which is not acceptable for us commercially.
- Also, all the eCommerce texts and buttons (“Add to cart”, “Proceed to checkout”, etc.) still refer to a purchase, not a quotation request, which can be confusing for users.
In summary, what we would like to achieve is:
- The website should function as a catalog, where customers can select products and quantities.
- When submitting their selection, a quotation is created in the backend (Sales > Quotations).
- Ideally, the labels and texts throughout the process could be customized (e.g. “Request a quote” instead of “Buy”).
My questions:
- Is there any native way or official module in Odoo to achieve this kind of flow?
- Or would it require a custom development, e.g. modifying the cart/checkout behavior to generate quotations instead of sales orders?
Any guidance or experience with similar setups would be greatly appreciated
Thank you in advance!
Thank you very much for your reply,
From what I understand, the proposed solution is based on replacing the "Add to Cart" flow entirely with a custom form that triggers a server action to create the quotation.
Just to confirm, in this approach, the quotation request would work for a single product per form submission, correct? Not multiple-products.
I assume the product is not typed manually by the user. Do you envisage passing product_id from the product page to the form (e.g., via URL parameters and hidden fields) so the server action can create the correct quotation line automatically? Also, would the quantity be captured as a form field?
Thanks again for your guidance — I just want to be sure I fully understand the limitations before choosing the best direction.
Thank you very much for your detailed answer @Droniou Eloi
Regarding my progress: I still haven’t found the ideal solution, although I have been speaking with the developer of a module that might help cover part of the functionality. I’m still evaluating whether it fully meets our needs.
About the alternatives you proposed:
I also tested the option of hiding prices through CSS/SCSS. In my case, the main issue was that it hides the prices everywhere, including the customer portal. Since the portal is part of the same website, when a customer wants to review their past orders or access order information, prices are not displayed there either, which becomes a problem.
By any chance, does the CSS you shared hide prices only on the shop pages, or does it also affect the portal in your setup? I wasn’t able to scope it only to the storefront without impacting the portal.
Duplicating the Wire Transfer payment method and renaming it to “Request Quotation” is another option I considered. However, as mentioned, I still need to ensure that prices are not shown at any point in the process, and that part is still unresolved on my side. Also, having to rely heavily on CSS modifications and many UI-level workarounds makes me hesitate, as it complicates maintenance and updates.
It would honestly be great if Odoo provided a more native alternative for this type of flow. Especially for B2B scenarios — which is exactly where an ERP like Odoo shines — it’s common to require a commercial validation step before confirming any sale. A proper “Request a Quote” eCommerce mode (independent from the abandoned cart feature or standard checkout) would cover a real use case for many companies.
Thanks again for sharing your approach. I’ll keep an eye on this thread in case someone has a solution to share and also share any progress I make.
Regards.
Thank you very much for your feedback @mksd
We've checked on our website, and the CSS that we shared hide the prices on the shop pages (whether the customer is or isn't logged in their portal account), but prices are still shown on the portal, when a customer wants to review their past orders or access order information.
As for the Wire Transfer method, we've managed to hide prices at any point of the process on our website, as well as rewording most texts and labels referring to a payment. Our main blocking points on our website right now are as follows :
- We cannot edit the text of the "Pay now" button
- We cannot edit the "Payment Status" page because it only appears for a very, tiny, brief moment
- We cannot edit the URLs
We also struggle with the automated email that is sent after the user has confirmed their order. While we can edit the body's text and remove the PDF quote, we cannot remove the section above. It's problematic for us (and maybe for you ?) because this section is a link to the online version of the full quote with prices, and the total amount is also displayed right next to this link. So far, we haven't found a solution for this issue we have.
Lastly, you were talking about a module, offered by a developer, that might help cover part of the functionality. Is it compatible with Odoo Online ? Would you mind sharing some more information about the module ?
Regards,
Eloi.