| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
eCommerce (website_sale)
• Invoicing (account) • Discuss (mail) • Inventory (stock) • Website (website) |
| Lines of code | 1687 |
| Technical Name |
esrap_website_sale_withdrawal_button |
| License | OPL-1 |
| Website | https://www.esrap.ee |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
eCommerce (website_sale)
• Invoicing (account) • Discuss (mail) • Inventory (stock) • Website (website) |
| Lines of code | 1687 |
| Technical Name |
esrap_website_sale_withdrawal_button |
| License | OPL-1 |
| Website | https://www.esrap.ee |
eCommerce workflow addon
Website Sale Withdrawal
Let B2C eCommerce customers submit contract withdrawal requests from the Odoo portal or a public website form, then review and process those requests inside Odoo Sales.
The Problem
B2C eCommerce customers may need a clear way to submit a contract withdrawal request, but a standard shop flow does not always give the sales team structured request data, selected order lines, or a traceable review process. Requests can otherwise remain separate emails or manual notes instead of staying next to the order itself.
The Solution
Website Sale Withdrawal adds a portal entry point for eligible website orders and a public Website Builder form for customers who do not start from an order page. Requests are created as Odoo records for Sales review, with the customer reference and selected lines kept in one place.
The Result
Customers receive a confirmation email, employees get a structured request to review, and public submissions can be matched to the correct sale order before the internal handling continues.
Key features
Designed around the real withdrawal workflow
Portal withdrawal button
Eligible B2C website quotations and sales orders can show a clear Withdraw from contract entry point in the customer portal.
Line and quantity selection
Portal customers select withdrawable order lines and validated quantities, with available quantity reduced by existing non-cancelled requests. This helps avoid processing the wrong product, quantity, or full order.
Configurable policies
Withdrawal rules can be configured on product categories and products, including eligible, excluded, conditional, and inherited default behaviour.
Public website form
A Website Builder snippet creates public Pending Matching requests with customer details, order reference, product description, comment, IP address, and user agent.
Sales review states
Sales users manage requests through Pending Matching, Submitted, In Review, Accepted, Rejected, Processed, or Cancelled states.
Customer confirmation
The addon sends a neutral receipt confirmation after submission and can make the request visible in the order communication history.
Workflow
From customer request to Sales review
1Request starts
Customer uses the portal order button or public form.
2Request is recorded
The request is saved in Odoo and the customer receives an email confirmation.
3Sales reviews
Team checks customer data, selected lines, policy status, and state.
4Handling continues
Request moves to accepted, rejected, processed, or cancelled.
Screenshots
Key screens in the withdrawal workflow
Review the main customer and Sales team touchpoints: portal line selection, backend request handling, and the public website form.
Configuration
Set product rules before publishing the flow
The addon uses a 14-day default period. Goods and combo products are eligible by default, services are excluded by default, and category or product rules can override the default. Child categories can inherit withdrawal rules from parent categories.
Product and category setup
Configure Default, Eligible, Excluded, or Conditional policies, exception reasons, and optional custom withdrawal periods.
Order confirmation template
Select the included Sales: Order Confirmation with Withdrawal Link template when you want eligible order emails to include the portal withdrawal link.
Website form snippet
Add the Contract Withdrawal Form snippet to a website page and choose whether successful submissions show a message, redirect, or return without a state.
Sales handling
Agree who handles incoming requests, when they move into review, and when they are accepted, rejected, processed, or cancelled.
Requirements
What to prepare before using the workflow
| Required apps | Install the module together with the standard eCommerce sales and delivery workflow apps declared in the module manifest. |
|---|---|
| External services | No external API or third-party service is required by the addon. |
| Data stored | Website submissions store customer-entered contact details, order or purchase reference, product description, comment, IP address, and user agent on the withdrawal request. |
| Before enabling | Review product exceptions, customer-facing withdrawal or return terms, responsible Sales users, email text, and the real customer portal route from a test order. |
FAQ
Frequently asked questions
Does this addon automatically approve withdrawals?
No. It creates structured withdrawal requests and review states. The confirmation email means the request was received, not that it was automatically accepted.
Does it create refunds, return pickings, or credit notes?
No. The addon manages the online request and Sales review workflow. Refunds, stock returns, credit notes, and legal handling remain separate business processes.
When is the portal button shown?
The button is shown for eligible B2C website quotations or sales orders that have withdrawable product lines and are within the configured withdrawal period.
Can customers submit a request without opening the portal order?
Yes. The public website form creates a Pending Matching request. A Sales user then links it to the correct sale order and selects the actual order lines.
Does the addon send customer data to an external service?
No external API is declared. Submitted data is stored in Odoo on the withdrawal request record, including audit fields for public form submissions.
What should be checked before production use?
Confirm product/category withdrawal rules, website privacy information, email templates, public form page text, and the merchant's internal refund or return process before enabling the flow for real customers.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module