TIP: You can type at any time to perform a new search.
Website Sale One Time Delivery Address
website_sale_one_time_delivery_address · OCA/e-commerce
- Repository
- OCA/e-commerce · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Website
- Folder size
- 0.07 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/e-commerce
- Last tracking update
- 2026-07-29 12:43:00
- Authors
- Odoo Community Association (OCA), Camptocamp
- Maintainers
- Odoo Community Association (OCA), Camptocamp
- Committers
- OCA-git-bot, oca-ci, Ricardoalso
- Odoo dependencies
- Python dependencies
- geoip2
- System dependencies
- None
- Required by
- None
- Description
This module extends the website checkout delivery flow for reseller-driven orders. When the shopper enables the one-time delivery option during checkout, the delivery address entered on the website is stored as a child contact of the reseller with type `one_time_delivery`. This allows downstream processes such as EDI to keep a dedicated recipient contact on the sale order while preserving the reseller as the billing partner. Main behavior: - adds an *Allow Drop-shipping* flag on the customer that gates the whole flow: the one-time delivery option is only shown for customers that allow drop-shipping - adds a one-time delivery toggle to the checkout page - creates checkout delivery contacts with type `one_time_delivery` - keeps the invoice address on the reseller - keeps the shipping address on the temporary end-customer contact - makes one-time delivery contacts available in the checkout delivery address list
Code Analysis ⓘ
Views touched (6)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
address_card_one_time_delivery_badge |
Address Card - One-Time Delivery Badge | ir.ui.view | qweb | Inherits portal.address_card |
address_card_partner_type |
Checkout - Address Card Partner Type | ir.ui.view | qweb | Inherits website_sale.address_card |
checkout_hide_use_delivery_as_billing |
Checkout - Hide Same As Delivery Address | ir.ui.view | qweb | Inherits website_sale.billing_address_list |
checkout_one_time_delivery |
Checkout - One-Time Delivery | ir.ui.view | qweb | Inherits website_sale.checkout |
one_time_delivery_section |
one_time_delivery_section | ir.ui.view | qweb | New |
view_partner_form |
res.partner.form.allow.dropship | res.partner | form | Inherits base.view_partner_form |
HTTP endpoints (3)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/shop/address/submit |
WebsiteSaleOneTimeDeliveryAddress.shop_address_submit |
public | http | POST | website |
/shop/update_address |
WebsiteSaleOneTimeDeliveryAddress.shop_update_address |
public | jsonrpc | ALL | sudo website |
/shop/update_one_time_delivery |
WebsiteSaleOneTimeDeliveryAddress.shop_update_one_time_delivery |
public | jsonrpc | POST | website |
Models touched (2)
New fields (2)
-
allow_dropshipBooleanhelp="When enabled, this customer can use the one-time delivery flow during the website checkout: the delivery address is stored as a temporary 'one_time_delivery' contact while billing stays on the customer. The one-time delivery option is hidden for customers that do not allow drop-shipping."string='Allow Drop-shipping' -
typeSelectionondelete={'one_time_delivery': 'set default'}selection_add=[('one_time_delivery', 'One-Time Delivery Address')]
No public methods.
New fields (2)
-
allow_dropshipBooleanrelated='partner_id.commercial_partner_id.allow_dropship' -
one_time_deliveryBooleanhelp="When enabled, the delivery address created during the website checkout is stored as a temporary contact with type 'one_time_delivery' instead of the standard 'delivery' type. This keeps the recipient out of the customer's regular address book and is useful for reseller orders shipped to an end customer."string='One-Time Delivery Address'
-
action_confirm(self)Archive one-time delivery contacts once the order is confirmed. A one_time_delivery contact is a temporary recipient that is no longer needed for editing once the order is placed. Archiving (not deleting) keeps it out of the address book while remaining readable on the related pickings and order history.