TIP: You can type at any time to perform a new search.
Delivery Costs
delivery · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.0
- Category
- Sales/Delivery
- Folder size
- 2.6 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- None
- Last tracking update
- 2026-08-15 22:44:17
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Lucas Perais (lpe), Julien Castiaux, Victor Feyens, Tiffany Chang (tic), Gorash, Valentin Chevalier, Habib (ayh), Maximilien (malb), Victor Piryns (pivi), Pieter Claeys (clpi), Levi Siuzdak (sile), Dylan Kiss (dyki), Valeriya(vchu), Arnaud Sibille, lase@odoo.com, vava-odoo, kcv-odoo, Patricia Daloze (pda), Manushi Shah, Mohammad Abdulmoneim (abdu), Valeriya (vchu), Mahdi Alijani (malj), Krzysztof Magusiak (krma), Florian Malfroid, Akash Pandey, Basioni (basm), Rushil Patel, Yash Pathak, Waleed Elgamal, Eliott Loop (oplo-odoo), Nisarg (nipl), Lionel Piraux (lipi), saurabh, panj-odoo
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- delivery_carrier_info, delivery_carrier_manual_price, delivery_carrier_partner, delivery_multi_destination, delivery_seur_atlas, delivery_state, sale_gelato, sale_loyalty_delivery, sale_order_carrier_auto_assign, sale_shipping_info_helper, shopify_connector, stock_delivery, website_sale
- Description
Allows you to add delivery methods in sale orders. ================================================== You can define your own carrier for prices. The system is able to add and compute the shipping line.
Code Analysis ⓘ
Views touched (14)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
choose_delivery_carrier_view_form |
choose.delivery.carrier.form | choose.delivery.carrier | form | New |
delivery_provider_module_kanban |
Delivery Provider Module Kanban | ir.module.module | kanban | Inherits base.module_view_kanban |
delivery_provider_module_list |
Delivery Provider Module List | ir.module.module | list | Inherits base.module_tree |
delivery_report_saleorder_document |
delivery_report_saleorder_document | ir.ui.view | qweb | Inherits sale.report_saleorder_document |
delivery_submit_button |
delivery_submit_button | ir.ui.view | qweb | Inherits payment.submit_button |
payment_provider_form |
COD Provider Form | payment.provider | form | Inherits payment_custom.payment_provider_form |
res_config_settings_view_form |
res.config.settings.view.form.inherit.delivery | res.config.settings | form | Inherits sale.res_config_settings_view_form |
view_delivery_carrier_form |
delivery.carrier.form | delivery.carrier | form | New |
view_delivery_carrier_search |
delivery.carrier.search | delivery.carrier | search | New |
view_delivery_carrier_tree |
delivery.carrier.list | delivery.carrier | list | New |
view_delivery_price_rule_form |
delivery.price.rule.form | delivery.price.rule | form | New |
view_delivery_price_rule_tree |
delivery.price.rule.list | delivery.price.rule | list | New |
view_order_form_with_carrier |
delivery.sale.order.form.view.with_carrier | sale.order | form | Inherits sale.view_order_form |
view_partner_property_form |
res.partner.carrier.property.form.inherit | res.partner | form | Inherits base.view_partner_form |
HTTP endpoints (2)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/delivery/get_pickup_locations |
LocationSelectorController.delivery_get_pickup_locations |
user | jsonrpc | ALL | |
/delivery/set_pickup_location |
LocationSelectorController.delivery_set_pickup_location |
user | jsonrpc | ALL |
Models touched (12)
New fields (13)
-
available_carrier_idsMany2many → delivery.carriercompute='_compute_available_carrier'string='Available Carriers' args: 'delivery.carrier' -
carrier_idMany2one → delivery.carrierdomain="[('id', 'in', available_carrier_ids)]"required=Truestring='Shipping Method' args: 'delivery.carrier' -
company_idMany2one → res.companyrelated='order_id.company_id' args: 'res.company' -
currency_idMany2one → res.currencyrelated='order_id.currency_id' args: 'res.currency' -
delivery_messageTextreadonly=True -
delivery_priceFloat -
delivery_typeSelectionrelated='carrier_id.delivery_type' -
display_priceFloatreadonly=Truestring='Cost' -
invoicing_messageTextcompute='_compute_invoicing_message' -
order_idMany2one → sale.orderondelete='cascade'required=True args: 'sale.order' -
partner_idMany2one → res.partnerrelated='order_id.partner_id'required=True args: 'res.partner' -
total_weightFloatreadonly=Falserelated='order_id.shipping_weight'string='Total Order Weight' -
weight_uom_nameChardefault=_get_default_weight_uomreadonly=True
-
button_confirm(self) -
update_price(self)
New fields (34)
-
activeBooleandefault=True -
allow_cash_on_deliveryBooleanhelp='Allow customers to choose Cash on Delivery as their payment method.'string='Cash on Delivery' -
amountFloatdefault=1000help='Amount of the order to benefit from a free shipping, expressed in the company currency'string='Amount' -
can_generate_returnBooleancompute='_compute_can_generate_return' -
carrier_descriptionTexthelp='A description of the delivery method that you want to communicate to your customers on the Sales Order and sales confirmation email.E.g. instructions for customers to follow.'translate=True args: 'Carrier Description' -
company_idMany2one → res.companyreadonly=Falserelated='product_id.company_id'store=Truestring='Company' args: 'res.company' -
country_idsMany2many → res.countryargs: 'res.country', 'delivery_carrier_country_rel', 'carrier_id', 'country_id', 'Countries' -
currency_idMany2onerelated='product_id.currency_id' -
debug_loggingBooleanhelp='Log requests in order to ease debugging' args: 'Debug logging' -
delivery_typeSelectiondefault='fixed'required=Truestring='Provider' args: [('base_on_rule', 'Based on Rules'), ('fixed', 'Fixed Price')] -
excluded_tag_idsMany2many → product.tagcomodel_name='product.tag'help='The method is NOT available if at least one product of the order has one of these tags.'relation='product_tag_delivery_carrier_excluded_rel'string='Excluded Tags' -
fixed_marginFloathelp='This fixed amount will be added to the shipping price.' -
fixed_priceFloatcompute='_compute_fixed_price'inverse='_set_product_fixed_price'store=Truestring='Fixed Price' -
free_overBooleandefault=Falsehelp='If the order total amount (shipping excluded) is above or equal to this value, the customer benefits from a free shipping' args: 'Free if order amount is above' -
get_return_label_from_portalBooleanhelp='The return label can be downloaded by the customer from the customer portal.'string='Return Label Accessible from Customer Portal' -
integration_levelSelectiondefault='rate_and_ship'help='Action while validating Delivery Orders'string='Integration Level' args: [('rate', 'Get Rate'), ('rate_and_ship', 'Get Rate and Create Shipment')] -
invoice_policySelectiondefault='estimated'help='Estimated Cost: the customer will be invoiced the estimated cost of the shipping.'required=Trueselection=[('estimated', 'Estimated cost')]string='Invoicing Policy' -
marginFloathelp='This percentage will be added to the shipping price.' -
max_volumeFloathelp="If the total volume of the order is over this volume, the method won't be available." args: 'Max Volume' -
max_weightFloathelp="If the total weight of the order is over this weight, the method won't be available." args: 'Max Weight' -
must_have_tag_idsMany2many → product.tagcomodel_name='product.tag'help='The method is available only if at least one product of the order has one of these tags.'relation='product_tag_delivery_carrier_must_have_rel'string='Must Have Tags' -
nameCharrequired=Truetranslate=True args: 'Delivery Method' -
price_rule_idsOne2many → delivery.price.rulecopy=True args: 'delivery.price.rule', 'carrier_id', 'Pricing Rules' -
prod_environmentBooleanhelp='Set to True if your credentials are certified for production.' args: 'Environment' -
product_idMany2one → product.productondelete='restrict'required=Truestring='Delivery Product' args: 'product.product' -
return_label_on_deliveryBooleanhelp='The return label is automatically generated at the delivery.'string='Generate Return Label' -
sequenceIntegerdefault=10help='Determine the display order' -
shipping_insuranceIntegerdefault=0help='Shipping insurance is a service which may reimburse senders whose parcels are lost, stolen, and/or damaged in transit.' args: 'Insurance Percentage' -
state_idsMany2many → res.country.stateargs: 'res.country.state', 'delivery_carrier_state_rel', 'carrier_id', 'state_id', 'States' -
supports_shipping_insuranceBooleancompute='_compute_supports_shipping_insurance' -
tracking_urlCharhelp='This option adds a link for the customer in the portal to track their package easily. Use <shipmenttrackingnumber> as a placeholder in your URL.'string='Tracking Link' -
volume_uom_nameCharcompute='_compute_volume_uom_name'string='Volume unit of measure label' -
weight_uom_nameCharcompute='_compute_weight_uom_name'string='Weight unit of measure label' -
zip_prefix_idsMany2many → delivery.zip.prefixhelp="Prefixes of zip codes that this carrier applies to. Note that regular expressions can be used to support countries with varying zip code lengths, i.e. '$' can be added to end of prefix to match the exact zip (e.g. '100$' will only match '100' and not '1000')" args: 'delivery.zip.prefix', 'delivery_zip_prefix_rel', 'carrier_id', 'zip_prefix_id', 'Zip Prefixes'
-
available_carriers(self, partner, source) -
base_on_rule_rate_shipment(self, order) -
copy_data(self, default=None) -
fixed_rate_shipment(self, order) -
install_more_provider(self) -
log_xml(self, xml_string, func) -
rate_shipment(self, order)Compute the price of the order shipment :param order: record of sale.order :returns: a dict with structure :: {'success': boolean, 'price': a float, 'error_message': a string containing an error message, 'warning_message': a string containing a warning message} :rtype: dict -
toggle_debug(self) -
toggle_prod_environment(self)
New fields (10)
-
carrier_idMany2one → delivery.carrierindex=Trueondelete='cascade'required=True args: 'delivery.carrier', 'Carrier' -
currency_idMany2onerelated='carrier_id.currency_id' -
list_base_priceFloatdefault=0.0min_display_digits='Product Price'required=Truestring='Sale Base Price' -
list_priceFloatdefault=0.0min_display_digits='Product Price'required=True args: 'Sale Price' -
max_valueFloatrequired=True args: 'Maximum Value' -
nameCharcompute='_compute_name' -
operatorSelectiondefault='<='required=True args: [('==', '='), ('<=', '<='), ('<', '<'), ('>=', '>='), ('>', '>')] -
sequenceIntegerdefault=10required=True -
variableSelectiondefault='quantity'required=Trueselection=VARIABLE_SELECTION -
variable_factorSelectiondefault='weight'required=Trueselection=VARIABLE_SELECTIONstring='Variable Factor'
No public methods.
New fields (1)
-
nameCharrequired=True args: 'Prefix'
-
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (1)-
action_view_delivery_methods(self)
New fields (1)
-
custom_modeSelectionselection_add=[('cash_on_delivery', 'Cash On Delivery')]
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
is_pickup_locationBoolean -
property_delivery_carrier_idMany2one → delivery.carriercompany_dependent=Truehelp='Used in sales orders.'string='Delivery Method' args: 'delivery.carrier'
No public methods.
New fields (7)
-
carrier_idMany2one → delivery.carriercheck_company=Truehelp='Fill this field if you plan to invoice the shipping based on picking.'string='Delivery Method' args: 'delivery.carrier' -
delivery_messageCharcopy=Falsereadonly=True -
delivery_setBooleancompute='_compute_delivery_state' -
is_all_serviceBooleancompute='_compute_is_service_products' args: 'Service Product' -
pickup_location_dataJson -
recompute_delivery_priceBooleanargs: 'Delivery cost should be recomputed' -
shipping_weightFloatcompute='_compute_shipping_weight'readonly=Falsestore=True args: 'Shipping Weight'
-
action_open_delivery_wizard(self) -
onchange_order_line(self)@api.onchange('order_line', 'partner_id', 'partner_shipping_id') -
set_delivery_line(self, carrier, amount)
New fields (3)
-
is_deliveryBooleandefault=Falsestring='Is a Delivery' -
product_qtyFloatcompute='_compute_product_qty'digits='Product Unit'string='Product Qty' -
recompute_delivery_priceBooleanrelated='order_id.recompute_delivery_price'
-
unlink(self)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…