TIP: You can type at any time to perform a new search.

Security findings

Repository
odoo/odoo · module folder
Module version
0.1.0
Category
Sales/Delivery
Folder size
2.93 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
None
Last tracking update
2026-10-05 00:19:49
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Christophe Matthieu, Arnold Moyaux, Romeo Fragomeli, Victor Feyens, svs-odoo, Tiffany Chang (tic), Romain Estievenart, Antoine Vandevenne (anv), luvi, Victor Piryns (pivi), amdi-odoo, Andrew Gavgavian, Dylan Kiss (dyki), Chong Wang (cwg), Arnaud Sibille, vava-odoo, Harsh Shah, Patricia Daloze (pda), Mohammad Abdulmoneim (abdu), Anton Romanova (roan), Michaël Mattiello, Valeriya (vchu), Carmine, Mahdi Alijani (malj), anko-odoo, Krzysztof Magusiak (krma), Florian Malfroid, Akash Pandey, Julien Launois (jula), Waleed Elgamal, Eliott Loop (oplo-odoo), Leila Kerroum Balaguer, Lionel Piraux (lipi), livaios, Ravij Parikh, Mazen, srap-odoo, Zachary (zavan), Youssef (abyo), Khaj-odoo, Karim Gamaleldin, Julien Piron, Lucas Gvasalia, Jean Schoenlaub, Corentin Deruyck, pusu-odoo, Cezar Bulancea (cebul)
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
sale_gelato, sale_loyalty_delivery, 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 info_outline

Views touched (19)
XML IDNameModelTypeStatus
choose_delivery_carrier_view_form choose.delivery.carrier.form choose.delivery.carrier form New
delivery.state_header delivery.state_header ir.ui.view qweb Inherits payment.state_header
delivery_note_form_view delivery.note.wizard.form delivery.note.wizard form New
delivery_note_list_view delivery.note.wizard.line.list delivery.note.wizard.line list 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
report_delivery_note report_delivery_note ir.ui.view qweb New
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_so_list delivery.carrier.so.list delivery.carrier list 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 sale.res_partner_view_form_property_inherit
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (16)

New fields (17)
  • available_carrier_ids Many2many → delivery.carrier
    comodel_name='delivery.carrier' compute='_compute_available_carrier' string='Available Carriers'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain="[('id', 'in', available_carrier_ids)]" required=True string='Delivery Method'
  • carrier_prices Json
  • carrier_prices_dumped Char
  • company_id Many2one → res.company
    comodel_name='res.company' related='order_id.company_id'
  • currency_id Many2one → res.currency
    comodel_name='res.currency' related='order_id.currency_id'
  • delivery_message Text
    readonly=True
  • delivery_price Float
  • delivery_type Selection
    related='carrier_id.delivery_type'
  • display_price Float
    readonly=True string='Cost'
  • invoicing_message Text
    compute='_compute_invoicing_message'
  • is_loading_prices Boolean
    default=False
  • order_id Many2one → sale.order
    comodel_name='sale.order' ondelete='cascade' required=True
  • partner_id Many2one → res.partner
    comodel_name='res.partner' related='order_id.partner_id' required=True
  • show_delivery_rates_button Integer
    compute='_compute_show_delivery_rates_button' args: 'Number of carriers'
  • total_weight Float
    readonly=False related='order_id.shipping_weight' string='Total Order Weight'
  • weight_uom_name Char
    default=_get_default_weight_uom readonly=True
Public methods (3)
  • button_confirm(self)
  • get_wizard_carrier_rate(self, carrier_id)
    Compute delivery prices for a single carier
  • update_price(self)

New fields (37)
  • active Boolean
    default=True
  • allow_cash_on_delivery Boolean
    help='Allow customers to choose Cash on Delivery as their payment method.' string='Cash on Delivery'
  • amount Float
    default=1000 help='Amount of the order to benefit from a free shipping, expressed in the company currency.'
  • can_generate_return Boolean
    compute='_compute_can_generate_return'
  • carrier_description Text
    help='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.' string='Description' translate=True
  • company_id Many2one → res.company
    comodel_name='res.company' readonly=False related='product_id.company_id' store=True
  • country_ids Many2many → res.country
    column1='carrier_id' column2='country_id' comodel_name='res.country' relation='delivery_carrier_country_rel' string='Countries'
  • currency_id Many2one
    related='product_id.currency_id'
  • debug_logging Boolean
    help='Log requests in order to ease debugging' string='Debug logging'
  • delivery_cost Monetary
    compute='_compute_delivery_cost' currency_field='delivery_currency_id' readonly=True string='Cost'
  • delivery_currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_delivery_currency_id'
  • delivery_type Selection
    default='fixed' required=True selection=[('base_on_rule', 'Based on Rules'), ('fixed', 'Fixed Price')] string='Provider'
  • excluded_tag_ids Many2many → product.tag
    comodel_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_margin Float
    help='This fixed amount will be added to the shipping price.'
  • fixed_price Float
    compute='_compute_fixed_price' inverse='_set_product_fixed_price' store=True string='Fixed Price'
  • free_over Boolean
    help='If the order total amount (shipping excluded) is above or equal to this value, the customer benefits from a free shipping.' string='Free if order amount is above'
  • get_return_label_from_portal Boolean
    help='The return label can be downloaded by the customer from the customer portal.' string='Return Label Accessible from Customer Portal'
  • integration_level Selection
    default='rate_and_ship' help='Action while validating Delivery Orders.' selection=[('rate', 'Get Rate'), ('rate_and_ship', 'Get Rate and Create Shipment')]
  • invoice_policy Selection
    default='estimated' help='Estimated Cost: the customer will be invoiced the estimated cost of the shipping.' required=True selection=[('estimated', 'Estimated cost')] string='Invoicing Policy'
  • margin Float
    help='This percentage will be added to the shipping price.'
  • max_volume Float
    help="If the total volume of the order is over this volume, the method won't be available."
  • max_weight Float
    help="If the total weight of the order is over this weight, the method won't be available."
  • must_have_tag_ids Many2many → product.tag
    comodel_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'
  • name Char
    required=True string='Delivery Method' translate=True
  • price_rule_ids One2many → delivery.price.rule
    comodel_name='delivery.price.rule' copy=True inverse_name='carrier_id' string='Pricing Rules'
  • prod_environment Boolean
    help='Set to True if your credentials are certified for production.' string='Environment'
  • product_id Many2one → product.product
    comodel_name='product.product' ondelete='restrict' required=True string='Delivery Product'
  • return_label_on_delivery Boolean
    help='The return label is automatically generated at the delivery.' string='Generate Return Label'
  • sequence Integer
    default=10 help='Determine the display order'
  • shipping_insurance Integer
    default=0 help='Shipping insurance is a service which may reimburse senders whose parcels are lost, stolen, and/or damaged in transit.' string='Insurance Percentage'
  • state_ids Many2many → res.country.state
    column1='carrier_id' column2='state_id' comodel_name='res.country.state' relation='delivery_carrier_state_rel' string='States'
  • supports_cash_on_delivery Boolean
    compute='_compute_supports_cash_on_delivery'
  • supports_shipping_insurance Boolean
    compute='_compute_supports_shipping_insurance'
  • tracking_url Char
    help='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_name Char
    compute='_compute_volume_uom_name' string='Volume unit of measure label'
  • weight_uom_name Char
    compute='_compute_weight_uom_name' string='Weight unit of measure label'
  • zip_prefix_ids Many2many → delivery.zip.prefix
    column1='carrier_id' column2='zip_prefix_id' comodel_name='delivery.zip.prefix' help="Prefixes of zip codes that this delivery method 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')" relation='delivery_zip_prefix_rel' string='Zip Prefixes'
Public methods (9)
  • available_carriers(self, partner, source)
  • base_on_rule_rate_shipment(self, order)
  • 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)
  • write(self, vals)

New fields (10)
  • company_id Many2one
    related='so_id.company_id'
  • dm_id Many2one → delivery.carrier
    check_company=True comodel_name='delivery.carrier' string='Delivery method'
  • name Char
    default='/' string='Note Reference'
  • note_line_ids One2many → delivery.note.wizard.line
    comodel_name='delivery.note.wizard.line' inverse_name='note_id' string='Operations'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' related='so_id.partner_id'
  • shipping_date Date
    default=fields.Date.today string='Shipping Date'
  • so_id Many2one → sale.order
    comodel_name='sale.order' string='Sales Order'
  • so_reference Char
    related='so_id.name' string='Order reference'
  • tracking_ref Char
    string='Tracking Reference'
  • tracking_url Char
    compute='_compute_tracking_url' string='Tracking URL'
Public methods (1)
  • action_confirm(self)

New fields (7)
  • note_id Many2one → delivery.note.wizard
    comodel_name='delivery.note.wizard' string='Delivery Note Reference'
  • product_id Many2one → product.product
    comodel_name='product.product' related='sol_id.product_id'
  • product_image Image
    related='product_id.image_128'
  • product_uom_id Many2one → uom.uom
    comodel_name='uom.uom' related='sol_id.product_uom_id'
  • product_uom_qty Float
    compute='_compute_product_uom_qty' readonly=False store=True string='Quantity'
  • remaining_qty_to_ship Float
    compute='_compute_remaining_qty_to_ship'
  • sol_id Many2one → sale.order.line
    comodel_name='sale.order.line' string='Source Sale Order Line'
Public methods (0)

No public methods.

New fields (11)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' index=True ondelete='cascade' required=True
  • currency_id Many2one
    related='carrier_id.currency_id'
  • list_base_price Float
    default=0.0 min_display_digits='Product Price' required=True string='Sale Base Price'
  • list_price Float
    default=0.0 min_display_digits='Product Price' required=True string='Sale Price'
  • max_value Float
    required=True string='Maximum Value'
  • name Char
    compute='_compute_name'
  • operator Selection
    default='<=' required=True selection=[('==', '='), ('<=', '<='), ('<', '<'), ('>=', '>='), ('>', '>')]
  • sequence Integer
    default=10 required=True
  • variable Selection
    default='quantity' required=True selection=VARIABLE_SELECTION
  • variable_factor Selection
    default='weight' required=True selection=VARIABLE_SELECTION
  • variable_unit Char
    compute='_compute_variable_unit'
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True string='Prefix'
Public methods (2)
  • 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 (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • custom_mode Selection
    selection_add=[('cash_on_delivery', 'Cash On Delivery')]
Public methods (1)
  • copy_data(self, default=None)

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 (0)

No new fields.

Public methods (1)
  • action_install_more_provider(self)

New fields (1)
  • property_delivery_carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' company_dependent=True help='Used in sales orders.' string='Delivery Method'
Public methods (0)

No public methods.

New fields (6)
  • carrier_id Many2one → delivery.carrier
    check_company=True comodel_name='delivery.carrier' help='Fill this field if you plan to invoice the shipping based on picking.' index='btree_not_null' string='Delivery Method'
  • delivery_message Char
    copy=False readonly=True
  • delivery_set Boolean
    compute='_compute_delivery_state'
  • is_all_service Boolean
    compute='_compute_is_service_products' string='Service Product'
  • recompute_delivery_price Boolean
    string='Delivery cost should be recomputed'
  • shipping_weight Float
    compute='_compute_shipping_weight' readonly=False store=True
Public methods (4)
  • action_open_delivery_note_wizard(self)
  • 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_delivery Boolean
    default=False string='Is a Delivery'
  • product_qty Float
    compute='_compute_product_qty' digits='Product Unit' string='Product Qty'
  • recompute_delivery_price Boolean
    related='order_id.recompute_delivery_price'
Public methods (1)
  • unlink(self)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…