Website Sale Shipping -Delivery- Method Restriction
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 19.00
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Sales (sale_management)
• eCommerce (website_sale) • Invoicing (account) • Discuss (mail) • Website (website) |
| Lines of code | 194 |
| Technical Name |
delivery_method_restriction |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Sales (sale_management)
• eCommerce (website_sale) • Invoicing (account) • Discuss (mail) • Website (website) |
| Lines of code | 194 |
| Technical Name |
delivery_method_restriction |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
Website Sale Delivery Restriction
Control which customers see which delivery methods during e-commerce checkout with per-carrier and per-customer restrictions
- **Per-Carrier Control:** Mark delivery methods as "Public" or restrict to specific customers
- **Per-Customer Assignment:** Assign allowed delivery methods directly on customer records
- **Commercial Entity Support:** Honors company/parent relationships for B2B scenarios
- **Multi-Website Compatible:** Works with website-specific delivery carriers
- **Seamless Integration:** Adds tabs to both Delivery Carrier and Partner forms
The module adds two layers of delivery method control:
- Carrier-Level Control: Each delivery carrier can be marked as "Public" (visible to everyone) or restricted to specific customers
- Customer-Level Control: On each partner record, you can assign which restricted carriers they can access
- Smart Filtering: During checkout, only carriers that are either public OR explicitly assigned to the customer are displayed
- AJAX Protection: Rate calculation requests are also filtered, preventing unauthorized rate checks
Delivery Carrier Configuration
Set "Is Public" toggle and manage restricted customers



Customer Delivery Methods Tab
Assign allowed carriers directly on customer record



Checkout - Multiple Methods
Customer sees both public and their assigned carriers

B2B Shipping Agreements
Offer negotiated shipping rates only to specific corporate customers while keeping standard rates for everyone else
Example: VIP customer gets discounted FedEx rates
Regional Carrier Restrictions
Some carriers only serve specific regions - restrict them to customers in those areas
Example: Local courier only available to local customers
Premium Shipping Tiers
Reserve expedited/priority shipping options for loyalty program members or premium customers
Example: Free Express shipping for Gold members only
Blacklist Problem Customers
Restrict certain delivery methods for customers with history of issues
Example: COD not available for customers with bounced payments
Product-Specific Carriers
Combine with product restrictions to show carriers only for certain product types
Example: Hazmat shipping only for chemical products
International vs Domestic
Show international carriers only to customers with foreign shipping addresses
Example: DHL International only for non-local addresses
- Copy the module folder to your Odoo addons directory
- Update the apps list (Apps â Update Apps List)
- Search for "Website Sale Delivery Restriction" and install
- Configure delivery carriers as described above
- Assign carriers to customers as needed
- Test with different customer accounts
Q: What happens to guests/not logged in users?
A: Guests only see carriers marked as "Is Public". They cannot see any restricted carriers.
Q: Can a customer be assigned to multiple restricted carriers?
A: Yes, customers can have multiple allowed carriers. They will see all assigned carriers plus all public carriers.
Q: Does this work with B2B company structures?
A: Yes! The module checks both the individual contact AND their commercial partner (company). If the company is assigned a carrier, all contacts under that company inherit access.
Q: Can I restrict carriers based on product weight or dimensions?
A: This module focuses on customer-based restrictions. For product-based restrictions, combine with Odoo's built-in carrier product restrictions.
Q: Does it work with multi-website?
A: Yes, it respects website-specific carriers. The filtering includes the website_id check from the base carrier search.
Q: Can customers see restricted carriers in the backend?
A: No, this only affects the frontend e-commerce checkout. Backend users see all carriers regardless of restrictions.
Need Custom Logic or Have Questions?
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