Website Sale Multi Delivery Address
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 198.17
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Sales (sale_management) • eCommerce (website_sale) • Discuss (mail) • Invoicing (account) • Website (website) |
| Lines of code | 713 |
| Technical Name |
website_sale_multi_delivery_address |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Sales (sale_management) • eCommerce (website_sale) • Discuss (mail) • Invoicing (account) • Website (website) |
| Lines of code | 713 |
| Technical Name |
website_sale_multi_delivery_address |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
Website Sale Multi Delivery Address
Assign different delivery addresses to different product lines within the same sales order. Perfect for B2B orders where items need to ship to multiple warehouses, retail locations, or customer sites - all in one order.
Standard Odoo sales orders allow only one delivery address for the entire order - all products ship to the same location.
This creates significant problems for many businesses:
- B2B orders with multiple store locations - each item goes to a different retail outlet
- Construction companies - materials need to ship to different job sites
- Wholesale distributors - each product line goes to a different customer location
- Warehouse transfers - items need split delivery across multiple warehouses
- No way to split pickings by address automatically
This module adds a Delivery Address field at the sale order line level. Each product line can have its own shipping address. When the order is confirmed, the system automatically splits pickings - one picking per unique delivery address. Perfect for B2B, construction, wholesale, and multi-location retail orders.
- Website Sale Per-Line Delivery Address: Assign different shipping addresses to individual product lines within the same sales order
- Automatic Picking Split: When confirmed, pickings are automatically split by unique delivery address
- Customer Portal Display: Shows assigned delivery addresses per line in customer portal
- Website Cart Integration: Customers can change delivery address per line during checkout
- PDF Report Enhancement: Sale order PDF shows delivery address per line
- Address Validation: Only delivery-type addresses (type='delivery' or 'other') available for selection
- Add New Address: Customers can add new delivery addresses directly from the cart modal
- Stock Picking Display: Shows delivery address label on each transfer
1. Configure Customer Delivery Addresses
Create multiple delivery addresses for your customer (type = Delivery Address or Other Address).
2. Sales Order - Per-Line Delivery Addresses
Each product line has its own Delivery Address column. Assign different addresses to different lines.
3. Automatic Picking Split on Confirmation
When confirmed, pickings are automatically split - one picking per unique delivery address.
5. PDF Report - Delivery Address Per Line
Printed sales orders show delivery address for each product line.
6. Customer Portal - Delivery Address Visible
Customers see assigned delivery addresses per line in their order portal.
Installation & Configuration
- Install the Module: Install through Odoo Apps or manually copy to addons path
- Dependencies: Requires
sale,stock, andwebsite_salemodules - Restart Server & Update: Restart Odoo and update the app list
- Configure Customer Addresses: Go to Contacts -> Open Customer -> Add delivery-type addresses (type = Delivery Address or Other Address)
- No Additional Configuration: Module works out of the box after installation
- Test: Create sales order with multiple lines -> assign different delivery addresses -> confirm -> pickings split automatically
Step 1: Configure Customer Delivery Addresses
Go to Contacts. Open the customer record. Under the "Contacts & Addresses" tab, add address(es) with Type = "Delivery Address" or "Other Address".
Important: Only addresses with type = 'delivery' or 'other' will appear in the delivery address selection dropdown. Type = 'contact' addresses (individual people) are automatically excluded.
Step 2: Create Sales Order with Per-Line Delivery Addresses
Navigate to Sales -> Orders -> Quotations. Create a new sales order and add product lines. In the order lines table, you will see a new "Delivery Address" column.
- Select a different delivery address for each product line as needed
- Lines without a specific address will use the order's main shipping address
- Lines with type='service' products are excluded from delivery address assignment
Step 3: Confirm Order - Automatic Picking Split
When you click "Confirm" on the sales order, the system automatically:
- Detects all unique delivery addresses across all order lines
- Creates one Delivery Order (Picking) per unique address
- Assigns the correct lines to each picking
- Sets the partner on each picking to the corresponding delivery address
Step 4: Website Checkout - Customers Choose Per-Line
Logged-in customers on your e-commerce website will see a "Change" button next to each product line in the cart. Clicking this button opens a modal where they can:
- Select from saved delivery addresses
- Add a new delivery address on the spot
- See which address is currently selected for each line
After selection, the cart updates and the order will reflect the per-line addresses when placed.
Step 5: Process Pickings in Warehouse
Go to Inventory -> Operations -> Transfers. You will see separate pickings for each delivery address. Warehouse staff can:
- Process each picking independently
- Print delivery slips with the correct destination address on each
- Assign different carriers or shipping methods per address
Pro Tip - Smart Address Fallback Logic
The module uses intelligent fallback for delivery addresses: Line explicit address -> Order shipping address (if valid delivery type) -> Commercial partner (company root). This prevents regular contact addresses (like "John Smith") from appearing as delivery destinations. Always create dedicated delivery-type addresses for shipping locations.
Warehouse Best Practice
When orders have multiple pickings to different addresses, consider using the "Backorder" feature to process some addresses immediately while holding others. This is especially useful when one address is local (fast shipping) and another is international (longer lead time).
B2B Retail Distribution
Wholesaler sells to retail chain with 50 stores - each store receives specific products in one order.
Construction Supply
General contractor orders materials for multiple job sites - each site gets its own delivery.
Franchise Operations
Franchise headquarters orders supplies for multiple locations - each store receives its goods directly.
Event Management
Event company orders equipment for multiple venues - each venue gets separate shipment.
E-Commerce Gift Orders
Customer buys gifts for multiple friends/family - each item ships directly to different recipient.
Multi-Warehouse Fulfillment
Products shipped from different warehouses to different customer locations in same order.
Reduced Order Fragmentation
Customers place ONE order instead of multiple separate orders - less admin for both sides.
Improved Shipping Accuracy
Each line shows its destination on the picking slip - reduce shipping errors.
Better Customer Experience
Customers see exactly where each item is shipping - transparency builds trust.
Operational Efficiency
Automatic picking split eliminates manual order splitting - save warehouse staff time.
Do You Need Assistance or Have a Feature Request?
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