Base module for carrier labels

base_delivery_carrier_label
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/17.0/base_delivery_carrier_label
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSAlexandre Fayolle, Weblate, OCA-git-bot, oca-ci, Maksym Yankin, sygel
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_carrier_info
odoo/odoo:
    - stock_delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - delivery
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds some function and generic stuff to help for carrier
label generation. For example it adds the concept of option on carriers
that can differ depending on the picking or class to store carrier
accounts This module doesn't do anything by itself, it serves as a base
module for other carrier-specific modules.

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option form New
delivery_carrier_option_view_tree delivery_base.delivery_carrier_option.view_tree delivery.carrier.option tree New
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option form New
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option tree New
manifest_wizard_form manifest.wizard.form manifest.wizard form New
quant_package_search_view stock.quant.package field Inherits stock.quant_package_search_view
res_config_settings_view_form_inherit_delivery_carrier_label res.config.settings.view.form.inherit.delivery.carrier.label res.config.settings xpath Inherits stock.res_config_settings_view_form
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_withcarrier_out_form stock.picking xpath Inherits stock_delivery.view_picking_withcarrier_out_form
view_quant_package_form stock.quant.package field Inherits stock.view_quant_package_form
view_quant_package_tree stock.quant.package field Inherits stock.view_quant_package_tree
vpicktree stock.picking field Inherits stock_delivery.vpicktree_view_tree
Models touched (10)

New fields (1)
  • available_option_ids One2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' context={'active_test': False} inverse_name='carrier_id' string='Option'
Public methods (3)
  • alternative_send_shipping(self, pickings)
  • default_options(self)
    Returns default and available options for a carrier
  • send_shipping(self, pickings)
    Handle labels and if we have them. Expected format is {'labels': [{}, ...]} The dicts are input for stock.picking#attach_label

New fields (7)
  • active Boolean
    default=True
  • by_default Boolean
    help='By check, user can choose to apply this option to each Delivery Order\n using this delivery method' string='Applied by Default'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' string='Carrier'
  • color Integer
    compute='_compute_color' help='Orange if the option is mandatory, otherwise no color'
  • mandatory Boolean
    help='If checked, this option is necessarily applied to the delivery order. Mandatory options show up in orange in the option widget on the picking.'
  • readonly_flag Boolean
    help='When True, help to prevent the user to modify some fields option (if attribute is defined in the view)'
  • tmpl_option_id Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' ondelete='cascade' required=True string='Option'
Public methods (0)

No public methods.

New fields (4)
  • code Char
  • description Char
    help='Allow to define a more complete description than in the name field.'
  • name Char
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner Carrier'
Public methods (0)

No public methods.

New fields (7)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' required=True string='Carrier'
  • file_out Binary
    args: 'Manifest'
  • filename Char
    args: 'File Name'
  • from_date Datetime
    required=True
  • notes Text
    args: 'Result'
  • state Selection
    default='init' args: [('init', 'Init'), ('file', 'File'), ('end', 'END')]
  • to_date Datetime
Public methods (1)
  • get_manifest_file(self)

New fields (1)
  • delivery_set_default_package Boolean
    default=True string='Default Packages'
Public methods (0)

No public methods.

New fields (1)
  • delivery_set_default_package Boolean
    readonly=False related='company_id.delivery_set_default_package'
Public methods (0)

No public methods.

New fields (3)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachement'
  • file_type Char
    default='pdf' string='File type'
  • package_id Many2one → stock.quant.package
    comodel_name='stock.quant.package' string='Pack'
Public methods (0)

No public methods.

New fields (1)
  • weight Float
    digits='Stock Weight' help='Weight of the pack_operation'
Public methods (1)
  • get_weight(self)
    Calc and save weight of pack.operations. Warning: Type conversion not implemented it will return False if at least one uom or uos not in kg return: the sum of the weight of [self]

New fields (3)
  • carrier_code Char
    readonly=True related='carrier_id.code'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' string='Carrier'
  • option_ids Many2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' string='Options'
Public methods (7)
  • attach_shipping_label(self, label)
    Attach a label returned by generate_shipping_labels to a picking
  • create(self, vals_list)
    @api.model_create_multi
    Trigger onchange_carrier_id on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • get_shipping_label_values(self, label)
  • onchange_carrier_id(self)
    @api.onchange('carrier_id')
    Inherit this method in your module
  • onchange_option_ids(self)
    @api.onchange('option_ids')
  • send_to_shipper(self)
  • write(self, vals)
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.

New fields (2)
  • parcel_tracking Char
  • parcel_tracking_uri Char
    help="Link to the carrier's tracking page for this package."
Public methods (1)
  • open_website_url(self)
    Implement you own action in your module
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/16.0/base_delivery_carrier_label
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSStéphane Bidoul, Florian da Costa, Weblate, OCA-git-bot, hparfr, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:53
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_carrier_info
odoo/odoo:
    - delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option form New
delivery_carrier_option_view_tree delivery_base.delivery_carrier_option.view_tree delivery.carrier.option tree New
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option form New
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option tree New
manifest_wizard_form manifest.wizard.form manifest.wizard form New
quant_package_search_view stock.quant.package field Inherits stock.quant_package_search_view
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_withcarrier_out_form stock.picking xpath Inherits delivery.view_picking_withcarrier_out_form
view_quant_package_form stock.quant.package field Inherits stock.view_quant_package_form
view_quant_package_tree stock.quant.package field Inherits stock.view_quant_package_tree
vpicktree stock.picking field Inherits delivery.vpicktree_view_tree
Models touched (8)

New fields (1)
  • available_option_ids One2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' context={'active_test': False} inverse_name='carrier_id' string='Option'
Public methods (3)
  • alternative_send_shipping(self, pickings)
  • default_options(self)
    Returns default and available options for a carrier
  • send_shipping(self, pickings)
    Handle labels and if we have them. Expected format is {'labels': [{}, ...]} The dicts are input for stock.picking#attach_label

New fields (7)
  • active Boolean
    default=True
  • by_default Boolean
    help='By check, user can choose to apply this option to each Delivery Order\n using this delivery method' string='Applied by Default'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' string='Carrier'
  • color Integer
    compute='_compute_color' help='Orange if the option is mandatory, otherwise no color'
  • mandatory Boolean
    help='If checked, this option is necessarily applied to the delivery order. Mandatory options show up in orange in the option widget on the picking.'
  • readonly_flag Boolean
    help='When True, help to prevent the user to modify some fields option (if attribute is defined in the view)'
  • tmpl_option_id Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' ondelete='cascade' required=True string='Option'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    readonly=True
  • description Char
    help='Allow to define a more complete description than in the name field.' readonly=True
  • name Char
    readonly=True
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner Carrier'
Public methods (0)

No public methods.

New fields (7)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' required=True states={'done': [('readonly', True)]} string='Carrier'
  • file_out Binary
    readonly=True args: 'Manifest'
  • filename Char
    readonly=True args: 'File Name'
  • from_date Datetime
    required=True
  • notes Text
    readonly=True args: 'Result'
  • state Selection
    default='init' readonly=True args: [('init', 'Init'), ('file', 'File'), ('end', 'END')]
  • to_date Datetime
Public methods (1)
  • get_manifest_file(self)

New fields (3)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachement'
  • file_type Char
    default='pdf' string='File type'
  • package_id Many2one → stock.quant.package
    comodel_name='stock.quant.package' string='Pack'
Public methods (0)

No public methods.

New fields (1)
  • weight Float
    digits='Stock Weight' help='Weight of the pack_operation'
Public methods (1)
  • get_weight(self)
    Calc and save weight of pack.operations. Warning: Type conversion not implemented it will return False if at least one uom or uos not in kg return: the sum of the weight of [self]

New fields (3)
  • carrier_code Char
    readonly=True related='carrier_id.code'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' states={'done': [('readonly', True)]} string='Carrier'
  • option_ids Many2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' string='Options'
Public methods (7)
  • attach_shipping_label(self, label)
    Attach a label returned by generate_shipping_labels to a picking
  • create(self, vals_list)
    @api.model_create_multi
    Trigger onchange_carrier_id on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • get_shipping_label_values(self, label)
  • onchange_carrier_id(self)
    @api.onchange('carrier_id')
    Inherit this method in your module
  • onchange_option_ids(self)
    @api.onchange('option_ids')
  • send_to_shipper(self)
  • write(self, vals)
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.

New fields (2)
  • parcel_tracking Char
  • parcel_tracking_uri Char
    help="Link to the carrier's tracking page for this package."
Public methods (1)
  • open_website_url(self)
    Implement you own action in your module
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/15.0/base_delivery_carrier_label
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, dsolanki
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:38
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_carrier_info
odoo/odoo:
    - delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
    - stock_account
    - stock
    - barcodes
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
carrier_account_view_form carrier.account form New
carrier_account_view_tree carrier.account tree New
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option form New
delivery_carrier_option_view_tree delivery_base.delivery_carrier_option.view_tree delivery.carrier.option tree New
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option form New
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option tree New
manifest_wizard_form manifest.wizard.form manifest.wizard form New
quant_package_search_view stock.quant.package field Inherits stock.quant_package_search_view
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_withcarrier_out_form stock.picking xpath Inherits delivery.view_picking_withcarrier_out_form
view_quant_package_form stock.quant.package field Inherits stock.view_quant_package_form
view_quant_package_tree stock.quant.package field Inherits stock.view_quant_package_tree
vpicktree stock.picking field Inherits stock.vpicktree
Models touched (9)

New fields (8)
  • account Char
    required=True string='Account Number'
  • carrier_ids Many2many → delivery.carrier
    help='This field may be used to link an account to specific delivery methods It may be usefull to find an account with more precision than with only the delivery type' string='Carriers' args: 'delivery.carrier', 'delivery_carrier_account_rel', 'account_id', 'carrier_id'
  • company_id Many2one → res.company
    comodel_name='res.company' string='Company'
  • delivery_type Selection
    help='This field may be used to link an account to a carrier' selection=<expr>
  • file_format Selection
    help="Default format of the carrier's label you want to print" selection='_selection_file_format'
  • name Char
    required=True
  • password Char
    required=True string='Account Password'
  • sequence Integer
Public methods (0)

No public methods.

New fields (1)
  • available_option_ids One2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' context={'active_test': False} inverse_name='carrier_id' string='Option'
Public methods (3)
  • alternative_send_shipping(self, pickings)
  • default_options(self)
    Returns default and available options for a carrier
  • send_shipping(self, pickings)
    Handle labels and if we have them. Expected format is {'labels': [{}, ...]} The dicts are input for stock.picking#attach_label

New fields (7)
  • active Boolean
    default=True
  • by_default Boolean
    help='By check, user can choose to apply this option to each Delivery Order\n using this delivery method' string='Applied by Default'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' string='Carrier'
  • color Integer
    compute='_compute_color' help='Orange if the option is mandatory, otherwise no color'
  • mandatory Boolean
    help='If checked, this option is necessarily applied to the delivery order. Mandatory options show up in orange in the option widget on the picking.'
  • readonly_flag Boolean
    help='When True, help to prevent the user to modify some fields option (if attribute is defined in the view)'
  • tmpl_option_id Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' ondelete='cascade' required=True string='Option'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    readonly=True
  • description Char
    help='Allow to define a more complete description than in the name field.' readonly=True
  • name Char
    readonly=True
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner Carrier'
Public methods (0)

No public methods.

New fields (7)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' required=True states={'done': [('readonly', True)]} string='Carrier'
  • file_out Binary
    readonly=True args: 'Manifest'
  • filename Char
    readonly=True args: 'File Name'
  • from_date Datetime
    required=True
  • notes Text
    readonly=True args: 'Result'
  • state Selection
    default='init' readonly=True args: [('init', 'Init'), ('file', 'File'), ('end', 'END')]
  • to_date Datetime
Public methods (1)
  • get_manifest_file(self)

New fields (3)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachement'
  • file_type Char
    default='pdf'
  • package_id Many2one → stock.quant.package
    comodel_name='stock.quant.package' string='Pack'
Public methods (0)

No public methods.

New fields (1)
  • weight Float
    digits='Stock Weight' help='Weight of the pack_operation'
Public methods (1)
  • get_weight(self)
    Calc and save weight of pack.operations. Warning: Type conversion not implemented it will return False if at least one uom or uos not in kg return: the sum of the weight of [self]

New fields (3)
  • carrier_code Char
    readonly=True related='carrier_id.code'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' states={'done': [('readonly', True)]} string='Carrier'
  • option_ids Many2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' string='Options'
Public methods (7)
  • attach_shipping_label(self, label)
    Attach a label returned by generate_shipping_labels to a picking
  • create(self, vals)
    @api.model
    Trigger onchange_carrier_id on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • get_shipping_label_values(self, label)
  • onchange_carrier_id(self)
    @api.onchange('carrier_id')
    Inherit this method in your module
  • onchange_option_ids(self)
    @api.onchange('option_ids')
  • send_to_shipper(self)
  • write(self, vals)
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.

New fields (2)
  • parcel_tracking Char
  • parcel_tracking_uri Char
    help="Link to the carrier's tracking page for this package."
Public methods (1)
  • open_website_url(self)
    Implement you own action in your module
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/14.0/base_delivery_carrier_label
VERSION
VERSION 1.3.1
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSPedro M. Baeza, Akim Juillerat, OCA Transbot, Sébastien BEAU, Florian da Costa, oca-travis, Weblate, OCA-git-bot, oca-ci, Hai Lang, oca-git-bot, sonhd
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_carrier_info
odoo/odoo:
    - delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
    - stock_account
    - stock
    - barcodes
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
carrier_account_view_form carrier.account form New
carrier_account_view_tree carrier.account tree New
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option form New
delivery_carrier_option_view_tree delivery_base.delivery_carrier_option.view_tree delivery.carrier.option tree New
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option form New
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option tree New
manifest_wizard_form manifest.wizard.form manifest.wizard form New
quant_package_search_view stock.quant.package field Inherits stock.quant_package_search_view
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_withcarrier_out_form stock.picking xpath Inherits delivery.view_picking_withcarrier_out_form
view_quant_package_form stock.quant.package field Inherits stock.view_quant_package_form
view_quant_package_tree stock.quant.package field Inherits stock.view_quant_package_tree
vpicktree stock.picking field Inherits delivery.vpicktree_view_tree
Models touched (9)

New fields (8)
  • account Char
    required=True string='Account Number'
  • carrier_ids Many2many → delivery.carrier
    help='This field may be used to link an account to specific delivery methods It may be usefull to find an account with more precision than with only the delivery type' string='Carriers' args: 'delivery.carrier', 'delivery_carrier_account_rel', 'account_id', 'carrier_id'
  • company_id Many2one → res.company
    comodel_name='res.company' string='Company'
  • delivery_type Selection
    help='This field may be used to link an account to a carrier' selection=<expr>
  • file_format Selection
    help="Default format of the carrier's label you want to print" selection='_selection_file_format' string='File Format'
  • name Char
    required=True
  • password Char
    required=True string='Account Password'
  • sequence Integer
Public methods (0)

No public methods.

New fields (1)
  • available_option_ids One2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' context={'active_test': False} inverse_name='carrier_id' string='Option'
Public methods (3)
  • alternative_send_shipping(self, pickings)
  • default_options(self)
    Returns default and available options for a carrier
  • send_shipping(self, pickings)
    Handle labels and if we have them. Expected format is {'labels': [{}, ...]} The dicts are input for stock.picking#attach_label

New fields (7)
  • active Boolean
    default=True
  • by_default Boolean
    help='By check, user can choose to apply this option to each Delivery Order\n using this delivery method' string='Applied by Default'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' string='Carrier'
  • color Integer
    compute='_compute_color' help='Orange if the option is mandatory, otherwise no color'
  • mandatory Boolean
    help='If checked, this option is necessarily applied to the delivery order. Mandatory options show up in orange in the option widget on the picking.'
  • readonly_flag Boolean
    help='When True, help to prevent the user to modify some fields option (if attribute is defined in the view)' string='Readonly Flag'
  • tmpl_option_id Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' ondelete='cascade' required=True string='Option'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    readonly=True
  • description Char
    help='Allow to define a more complete description than in the name field.' readonly=True
  • name Char
    readonly=True
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner Carrier'
Public methods (0)

No public methods.

New fields (7)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' required=True states={'done': [('readonly', True)]} string='Carrier'
  • file_out Binary
    readonly=True args: 'Manifest'
  • filename Char
    readonly=True args: 'File Name'
  • from_date Datetime
    required=True args: 'From Date'
  • notes Text
    readonly=True args: 'Result'
  • state Selection
    default='init' readonly=True args: [('init', 'Init'), ('file', 'File'), ('end', 'END')]
  • to_date Datetime
    args: 'To Date'
Public methods (1)
  • get_manifest_file(self)

New fields (3)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachement'
  • file_type Char
    default='pdf' string='File type'
  • package_id Many2one → stock.quant.package
    comodel_name='stock.quant.package' string='Pack'
Public methods (0)

No public methods.

New fields (1)
  • weight Float
    digits='Stock Weight' help='Weight of the pack_operation'
Public methods (1)
  • get_weight(self)
    Calc and save weight of pack.operations. Warning: Type conversion not implemented it will return False if at least one uom or uos not in kg return: the sum of the weight of [self]

New fields (3)
  • carrier_code Char
    readonly=True related='carrier_id.code'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' states={'done': [('readonly', True)]} string='Carrier'
  • option_ids Many2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' string='Options'
Public methods (7)
  • attach_shipping_label(self, label)
    Attach a label returned by generate_shipping_labels to a picking
  • create(self, vals)
    @api.model
    Trigger onchange_carrier_id on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • get_shipping_label_values(self, label)
  • onchange_carrier_id(self)
    @api.onchange('carrier_id')
    Inherit this method in your module
  • onchange_option_ids(self)
    @api.onchange('option_ids')
  • send_to_shipper(self)
  • write(self, vals)
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.

New fields (2)
  • parcel_tracking Char
    string='Parcel Tracking'
  • parcel_tracking_uri Char
    help="Link to the carrier's tracking page for this package."
Public methods (1)
  • open_website_url(self)
    Implement you own action in your module
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/13.0/base_delivery_carrier_label
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSOCA Transbot, João Marques, Sébastien BEAU, oca-travis, Weblate, OCA-git-bot, ps-tubtim
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_carrier_info
odoo/odoo:
    - delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
    - stock_account
    - stock
    - barcodes
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
carrier_account_view_form carrier.account form New
carrier_account_view_tree carrier.account tree New
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option form New
delivery_carrier_option_view_tree delivery_base.delivery_carrier_option.view_tree delivery.carrier.option tree New
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option form New
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option tree New
manifest_wizard_form manifest.wizard.form manifest.wizard form New
quant_package_search_view stock.quant.package field Inherits stock.quant_package_search_view
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_withcarrier_out_form stock.picking field Inherits delivery.view_picking_withcarrier_out_form
view_quant_package_form stock.quant.package field Inherits stock.view_quant_package_form
view_quant_package_tree stock.quant.package field Inherits stock.view_quant_package_tree
vpicktree stock.picking field Inherits stock.vpicktree
Models touched (9)

New fields (7)
  • account Char
    required=True string='Account Number'
  • company_id Many2one → res.company
    comodel_name='res.company' string='Company'
  • delivery_type Selection
    help='This field may be used to link an account to a carrier' selection=<expr>
  • file_format Selection
    help="Default format of the carrier's label you want to print" selection='_selection_file_format' string='File Format'
  • name Char
    required=True
  • password Char
    required=True string='Account Password'
  • sequence Integer
Public methods (0)

No public methods.

New fields (2)
  • available_option_ids One2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' context={'active_test': False} inverse_name='carrier_id' string='Option'
  • delivery_type Selection
Public methods (2)
  • default_options(self)
    Returns default and available options for a carrier
  • send_shipping(self, pickings)
    Handle labels and if we have them. Expected format is {'labels': [{}, ...]} The dicts are input for stock.picking#attach_label

New fields (6)
  • active Boolean
    default=True
  • by_default Boolean
    help='By check, user can choose to apply this option to each Delivery Order\n using this delivery method' string='Applied by Default'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' string='Carrier'
  • mandatory Boolean
    help='If checked, this option is necessarily applied to the delivery order'
  • readonly_flag Boolean
    help='When True, help to prevent the user to modify some fields option (if attribute is defined in the view)' string='Readonly Flag'
  • tmpl_option_id Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' ondelete='cascade' required=True string='Option'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    readonly=True
  • description Char
    help='Allow to define a more complete description than in the name field.' readonly=True
  • name Char
    readonly=True
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner Carrier'
Public methods (0)

No public methods.

New fields (7)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' required=True states={'done': [('readonly', True)]} string='Carrier'
  • file_out Binary
    readonly=True args: 'Manifest'
  • filename Char
    readonly=True args: 'File Name'
  • from_date Datetime
    required=True args: 'From Date'
  • notes Text
    readonly=True args: 'Result'
  • state Selection
    default='init' readonly=True args: [('init', 'Init'), ('file', 'File'), ('end', 'END')]
  • to_date Datetime
    args: 'To Date'
Public methods (1)
  • get_manifest_file(self)

New fields (3)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachement'
  • file_type Char
    default='pdf' string='File type'
  • package_id Many2one → stock.quant.package
    comodel_name='stock.quant.package' string='Pack'
Public methods (0)

No public methods.

New fields (1)
  • weight Float
    digits='Stock Weight' help='Weight of the pack_operation'
Public methods (1)
  • get_weight(self)
    Calc and save weight of pack.operations. Warning: Type conversion not implemented it will return False if at least one uom or uos not in kg return: the sum of the weight of [self]

New fields (5)
  • carrier_code Char
    readonly=True related='carrier_id.code'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' states={'done': [('readonly', True)]} string='Carrier'
  • delivery_type Selection
    readonly=True related='carrier_id.delivery_type' string='Delivery Type'
  • option_ids Many2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' string='Options'
  • show_label_button Boolean
    compute='_compute_show_label_button'
Public methods (9)
  • action_generate_carrier_label(self)
    Method for the 'Generate Label' button. It will generate the labels for all the packages of the picking. Packages are mandatory in this case
  • attach_shipping_label(self, label)
    Attach a label returned by generate_shipping_labels to a picking
  • create(self, vals)
    @api.model
    Trigger onchange_carrier_id on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • generate_default_label(self)
    Abstract method :return: (file_binary, file_type)
  • generate_shipping_labels(self)
    Generate a shipping label by default This method can be inherited to create specific shipping labels a list of label must be return as we can have multiple stock.quant.package for a single picking representing packs :return: list of dict containing name: name to give to the attachement file: file as base64 file_type: string of file type like 'PDF' (optional) tracking_number: tracking id defined by your carrier
  • get_shipping_label_values(self, label)
  • onchange_carrier_id(self)
    @api.onchange('carrier_id')
    Inherit this method in your module
  • onchange_option_ids(self)
    @api.onchange('option_ids')
  • write(self, vals)
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.

New fields (3)
  • parcel_tracking Char
    string='Parcel Tracking'
  • parcel_tracking_uri Char
    help="Link to the carrier's tracking page for this package."
  • total_weight Float
    digits='Stock Weight' help='Total weight of the package in kg, including the weight of the logistic unit.'
Public methods (1)
  • open_website_url(self)
    Implement you own action in your module
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/12.0/base_delivery_carrier_label
VERSION
VERSION 3.4.0
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSYannick Vaucher, Stefan Rijnhart, Holger Brunn, Andrea, Stéphane Bidoul (ACSONE), OCA Transbot, Sébastien BEAU, Florian da Costa, David Beal, oca-travis, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_carrier_info
odoo/odoo:
    - delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - decimal_precision
    - uom
    - analytic
    - portal
    - http_routing
    - digest
    - stock_account
    - stock
    - barcodes
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
carrier_account_view_form carrier.account form New
carrier_account_view_tree carrier.account tree New
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option form New
delivery_carrier_option_view_tree delivery_base.delivery_carrier_option.view_tree delivery.carrier.option tree New
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option form New
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option tree New
manifest_wizard_form manifest.wizard.form manifest.wizard form New
quant_package_search_view stock.quant.package field Inherits stock.quant_package_search_view
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_withcarrier_out_form stock.picking field Inherits delivery.view_picking_withcarrier_out_form
view_quant_package_form stock.quant.package field Inherits stock.view_quant_package_form
view_quant_package_tree stock.quant.package field Inherits stock.view_quant_package_tree
vpicktree stock.picking field Inherits stock.vpicktree
Models touched (9)

New fields (7)
  • account Char
    required=True string='Account Number'
  • company_id Many2one → res.company
    comodel_name='res.company' string='Company'
  • delivery_type Selection
    help='This field may be used to link an account to a carrier' selection=<expr>
  • file_format Selection
    help="Default format of the carrier's label you want to print" selection='_selection_file_format' string='File Format'
  • name Char
    required=True
  • password Char
    required=True string='Account Password'
  • sequence Integer
Public methods (0)

No public methods.

New fields (2)
  • available_option_ids One2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' context={'active_test': False} inverse_name='carrier_id' string='Option'
  • delivery_type Selection
    oldname='carrier_type'
Public methods (2)
  • default_options(self)
    @api.multi
    Returns default and available options for a carrier
  • send_shipping(self, pickings)
    Handle labels and if we have them. Expected format is {'labels': [{}, ...]} The dicts are input for stock.picking#attach_label

New fields (7)
  • active Boolean
    default=True
  • by_default Boolean
    help='By check, user can choose to apply this option to each Delivery Order\n using this delivery method' string='Applied by Default'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' string='Carrier'
  • color Integer
    compute='_compute_color' help='Orange if the option is mandatory, otherwise no color'
  • mandatory Boolean
    help='If checked, this option is necessarily applied to the delivery order. Mandatory options show up in orange in the option widget on the picking.'
  • readonly_flag Boolean
    help='When True, help to prevent the user to modify some fields option (if attribute is defined in the view)' string='Readonly Flag'
  • tmpl_option_id Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' ondelete='cascade' required=True string='Option'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    readonly=True
  • description Char
    help='Allow to define a more complete description than in the name field.' readonly=True
  • name Char
    readonly=True
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner Carrier'
Public methods (0)

No public methods.

New fields (7)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' required=True states={'done': [('readonly', True)]} string='Carrier'
  • file_out Binary
    readonly=True args: 'Manifest'
  • filename Char
    readonly=True args: 'File Name'
  • from_date Datetime
    required=True args: 'From Date'
  • notes Text
    readonly=True args: 'Result'
  • state Selection
    default='init' readonly=True args: [('init', 'Init'), ('file', 'File'), ('end', 'END')]
  • to_date Datetime
    args: 'To Date'
Public methods (1)
  • get_manifest_file(self)
    @api.one

New fields (3)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachement'
  • file_type Char
    default='pdf' string='File type'
  • package_id Many2one → stock.quant.package
    comodel_name='stock.quant.package' string='Pack'
Public methods (0)

No public methods.

New fields (1)
  • weight Float
    digits=dp.get_precision('Stock Weight') help='Weight of the pack_operation'
Public methods (1)
  • get_weight(self)
    @api.multi
    Calc and save weight of pack.operations. Warning: Type conversion not implemented it will return False if at least one uom or uos not in kg return: the sum of the weight of [self]

New fields (5)
  • carrier_code Char
    readonly=True related='carrier_id.code'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' states={'done': [('readonly', True)]} string='Carrier'
  • delivery_type Selection
    readonly=True related='carrier_id.delivery_type' string='Delivery Type'
  • option_ids Many2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' string='Options'
  • show_label_button Boolean
    compute='_compute_show_label_button'
Public methods (10)
  • action_generate_carrier_label(self)
    Method for the 'Generate Label' button. It will generate the labels for all the packages of the picking. Packages are mandatory in this case
  • attach_shipping_label(self, label)
    Attach a label returned by generate_shipping_labels to a picking
  • create(self, vals)
    @api.model
    Trigger onchange_carrier_id on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • generate_default_label(self)
    Abstract method :return: (file_binary, file_type)
  • generate_labels(self)
    Legacy method. Remove me after 12.0
  • generate_shipping_labels(self)
    Generate a shipping label by default This method can be inherited to create specific shipping labels a list of label must be return as we can have multiple stock.quant.package for a single picking representing packs :return: list of dict containing name: name to give to the attachement file: file as base64 file_type: string of file type like 'PDF' (optional) tracking_number: tracking id defined by your carrier
  • get_shipping_label_values(self, label)
  • onchange_carrier_id(self)
    @api.onchange('carrier_id')
    Inherit this method in your module
  • onchange_option_ids(self)
    @api.onchange('option_ids')
  • write(self, vals)
    @api.multi
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.

New fields (3)
  • parcel_tracking Char
    string='Parcel Tracking'
  • parcel_tracking_uri Char
    help="Link to the carrier's tracking page for this package."
  • total_weight Float
    digits=dp.get_precision('Stock Weight') help='Total weight of the package in kg, including the weight of the logistic unit.'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/11.0/base_delivery_carrier_label
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSGitHub, Akim Juillerat, Alexandre Saunier, OCA Transbot, Hugo Santos, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - delivery
    - sale_stock
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account
    - product
    - decimal_precision
    - analytic
    - web_planner
    - portal
    - http_routing
    - account_invoicing
    - stock_account
    - stock
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option form New
delivery_carrier_option_view_tree delivery_base.delivery_carrier_option.view_tree delivery.carrier.option tree New
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option form New
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option tree New
manifest_wizard_form manifest.wizard.form manifest.wizard form New
quant_package_search_view stock.quant.package field Inherits stock.quant_package_search_view
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_delivery_carrier_tree delivery_carrier_base.tree delivery.carrier field Inherits delivery.view_delivery_carrier_tree
view_picking_withcarrier_out_form stock.picking field Inherits delivery.view_picking_withcarrier_out_form
view_quant_package_form stock.quant.package field Inherits stock.view_quant_package_form
view_quant_package_tree stock.quant.package field Inherits stock.view_quant_package_tree
vpicktree stock.picking field Inherits stock.vpicktree
Models touched (9)

New fields (4)
  • account Char
    required=True string='Account Number'
  • file_format Selection
    help="Default format of the carrier's label you want to print" selection='_selection_file_format' string='File Format'
  • name Char
    required=True
  • password Char
    required=True string='Account Password'
Public methods (0)

No public methods.

New fields (4)
  • available_option_ids One2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' inverse_name='carrier_id' string='Option'
  • code Char
    help='Delivery Method Code (according to carrier)'
  • delivery_type Selection
    oldname='carrier_type'
  • description Text
Public methods (1)
  • default_options(self)
    @api.multi
    Returns default and available options for a carrier

New fields (5)
  • by_default Boolean
    help='By check, user can choose to apply this option to each Delivery Order\n using this delivery method' string='Applied by Default'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' string='Carrier'
  • mandatory Boolean
    help='If checked, this option is necessarily applied to the delivery order'
  • readonly_flag Boolean
    help='When True, help to prevent the user to modify some fields option (if attribute is defined in the view)' string='Readonly Flag'
  • tmpl_option_id Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' ondelete='cascade' required=True string='Option'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    readonly=True
  • description Char
    help='Allow to define a more complete description than in the name field.' readonly=True
  • name Char
    readonly=True
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner Carrier'
Public methods (0)

No public methods.

New fields (7)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' required=True states={'done': [('readonly', True)]} string='Carrier'
  • file_out Binary
    readonly=True args: 'Manifest'
  • filename Char
    readonly=True args: 'File Name'
  • from_date Datetime
    required=True args: 'From Date'
  • notes Text
    readonly=True args: 'Result'
  • state Selection
    default='init' readonly=True args: [('init', 'Init'), ('file', 'File'), ('end', 'END')]
  • to_date Datetime
    args: 'To Date'
Public methods (1)
  • get_manifest_file(self)
    @api.one

New fields (3)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachement'
  • file_type Selection
    default='pdf' selection='_selection_file_type' string='File type'
  • package_id Many2one → stock.quant.package
    comodel_name='stock.quant.package' string='Pack'
Public methods (0)

No public methods.

New fields (1)
  • weight Float
    digits=dp.get_precision('Stock Weight') help='Weight of the pack_operation'
Public methods (1)
  • get_weight(self)
    @api.multi
    Calc and save weight of pack.operations. Warning: Type conversion not implemented it will return False if at least one uom or uos not in kg return: the sum of the weight of [self]

New fields (4)
  • carrier_code Char
    readonly=True related='carrier_id.code'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' states={'done': [('readonly', True)]} string='Carrier'
  • delivery_type Selection
    readonly=True related='carrier_id.delivery_type' string='Delivery Type'
  • option_ids Many2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' string='Options'
Public methods (9)
  • action_generate_carrier_label(self)
    @api.multi
    Method for the 'Generate Label' button. It will generate the labels for all the packages of the picking.
  • create(self, vals)
    @api.model
    Trigger onchange_carrier_id on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • generate_default_label(self, package_ids=None)
    @api.multi
    Abstract method :param package_ids: optional list of ``stock.quant.package`` ids only packs in this list will have their label printed (all are generated when None) :return: (file_binary, file_type)
  • generate_labels(self, package_ids=None)
    @api.multi
    Generate the labels. A list of package ids can be given, in that case it will generate the labels only of these packages.
  • generate_shipping_labels(self, package_ids=None)
    @api.multi
    Generate a shipping label by default This method can be inherited to create specific shipping labels a list of label must be return as we can have multiple stock.quant.package for a single picking representing packs :param package_ids: optional list of ``stock.quant.package`` ids only packs in this list will have their label printed (all are generated when None) :return: list of dict containing name: name to give to the attachement file: file as string file_type: string of file type like 'PDF' (optional) tracking_id: tracking_id if picking lines have tracking_id and if label generator creates shipping label per pack
  • get_shipping_label_values(self, label)
    @api.multi
  • onchange_carrier_id(self)
    @api.onchange('carrier_id')
    Inherit this method in your module
  • onchange_option_ids(self)
    @api.onchange('option_ids')
  • write(self, vals)
    @api.multi
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.

New fields (3)
  • parcel_tracking Char
    string='Parcel Tracking'
  • parcel_tracking_uri Char
    help="Link to the carrier's tracking page for this package."
  • total_weight Float
    digits=dp.get_precision('Stock Weight') help='Total weight of the package in kg, including the weight of the logistic unit.'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/10.0/base_delivery_carrier_label
VERSION
VERSION 1.3.1
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSPedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, Dave Lasley, oca-travis, Weblate, OCA-git-bot, Tom Blauwendraat, JesusVMayor, Brett Wood, Angel Moya Pardo, gael.torrecillas
WEBSITE
WEBSITEhttp://www.camptocamp.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - web_planner
    - procurement
    - stock_account
    - stock
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option form New
delivery_carrier_option_view_tree delivery_base.delivery_carrier_option.view_tree delivery.carrier.option tree New
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option form New
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option tree New
manifest_wizard_form manifest.wizard.form manifest.wizard form New
quant_package_search_view stock.quant.package field Inherits stock.quant_package_search_view
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_delivery_carrier_tree delivery_carrier_base.tree delivery.carrier field Inherits delivery.view_delivery_carrier_tree
view_picking_withcarrier_out_form stock.picking field Inherits delivery.view_picking_withcarrier_out_form
view_quant_package_form stock.quant.package field Inherits stock.view_quant_package_form
view_quant_package_tree stock.quant.package field Inherits stock.view_quant_package_tree
vpicktree stock.picking field Inherits stock.vpicktree
Models touched (9)

New fields (5)
  • account Char
    required=True string='Account Number'
  • file_format Selection
    help="Default format of the carrier's label you want to print" selection='_get_file_format' string='File Format'
  • name Char
    required=True
  • password Char
    required=True string='Account Password'
  • type Selection
    help='In case of several carriers, help to know which account belong to which carrier' required=True selection='_get_carrier_type'
Public methods (0)

No public methods.

New fields (4)
  • available_option_ids One2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' inverse_name='carrier_id' string='Option'
  • carrier_type Selection
    help='Carrier type (combines several delivery methods)' oldname='type' selection='_get_carrier_type_selection' string='Type'
  • code Char
    help='Delivery Method Code (according to carrier)'
  • description Text
Public methods (1)
  • default_options(self)
    @api.multi
    Returns default and available options for a carrier

New fields (5)
  • by_default Boolean
    help='By check, user can choose to apply this option to each Delivery Order\n using this delivery method' string='Applied by Default'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' string='Carrier'
  • mandatory Boolean
    help='If checked, this option is necessarily applied to the delivery order'
  • readonly_flag Boolean
    help='When True, help to prevent the user to modify some fields option (if attribute is defined in the view)' string='Readonly Flag'
  • tmpl_option_id Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' ondelete='cascade' required=True string='Option'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    readonly=True
  • description Char
    help='Allow to define a more complete description than in the name field.' readonly=True
  • name Char
    readonly=True
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner Carrier'
Public methods (0)

No public methods.

New fields (8)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' required=True states={'done': [('readonly', True)]} string='Carrier'
  • carrier_type Selection
    readonly=True related='carrier_id.carrier_type' selection='_get_carrier_type_selection' string='Carrier Type'
  • file_out Binary
    readonly=True args: 'Manifest'
  • filename Char
    readonly=True args: 'File Name'
  • from_date Datetime
    required=True args: 'From Date'
  • notes Text
    readonly=True args: 'Result'
  • state Selection
    default='init' readonly=True args: [('init', 'Init'), ('file', 'File'), ('end', 'END')]
  • to_date Datetime
    args: 'To Date'
Public methods (1)
  • get_manifest_file(self)

New fields (3)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachement'
  • file_type Selection
    default='pdf' selection=__get_file_type_selection string='File type'
  • package_id Many2one → stock.quant.package
    comodel_name='stock.quant.package' string='Pack'
Public methods (0)

No public methods.

New fields (1)
  • weight Float
    digits=dp.get_precision('Stock Weight') help='Weight of the pack_operation'
Public methods (1)
  • get_weight(self)
    @api.multi
    Calc and save weight of pack.operations. Warning: Type conversion not implemented it will return False if at least one uom or uos not in kg return: the sum of the weight of [self]

New fields (5)
  • carrier_code Char
    readonly=True related='carrier_id.code'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' states={'done': [('readonly', True)]} string='Carrier'
  • carrier_type Selection
    readonly=True related='carrier_id.carrier_type' string='Carrier Type'
  • option_ids Many2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' string='Options'
  • recreate_picking_label Boolean
Public methods (9)
  • action_generate_carrier_label(self)
    @api.multi
    Method for the 'Generate Label' button. It will generate the labels for all the packages of the picking.
  • carrier_id_change(self)
    @api.onchange('carrier_id')
    Inherit this method in your module
  • create(self, vals)
    @api.model@api.returns('self', <expr>)
    Trigger carrier_id_change on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • generate_default_label(self, package_ids=None)
    @api.multi
    Abstract method :param package_ids: optional list of ``stock.quant.package`` ids only packs in this list will have their label printed (all are generated when None) :return: (file_binary, file_type)
  • generate_labels(self, package_ids=None)
    @api.multi
    Generate the labels. A list of package ids can be given, in that case it will generate the labels only of these packages.
  • generate_shipping_labels(self, package_ids=None)
    @api.multi
    Generate a shipping label by default This method can be inherited to create specific shipping labels a list of label must be return as we can have multiple stock.quant.package for a single picking representing packs :param package_ids: optional list of ``stock.quant.package`` ids only packs in this list will have their label printed (all are generated when None) :return: list of dict containing name: name to give to the attachement file: file as string file_type: string of file type like 'PDF' (optional) tracking_id: tracking_id if picking lines have tracking_id and if label generator creates shipping label per pack
  • get_shipping_label_values(self, label)
    @api.multi
  • option_ids_change(self)
    @api.onchange('option_ids')
  • write(self, vals)
    @api.multi
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.

New fields (3)
  • parcel_tracking Char
    string='Parcel Tracking'
  • parcel_tracking_uri Char
    help="Link to the carrier's tracking page for this package."
  • total_weight Float
    digits=dp.get_precision('Stock Weight') help='Total weight of the package in kg, including the weight of the logistic unit.'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/9.0/base_delivery_carrier_label
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSYannick Vaucher, Guewen Baconnier, Pedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), Alex Comba, OCA Transbot, mdietrichc2c, oca-travis, Weblate, OCA-git-bot, Cyril Gaudin
WEBSITE
WEBSITEhttp://www.camptocamp.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - web_tip
    - web_planner
    - procurement
    - stock_account
    - stock
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option form New
delivery_carrier_option_view_tree delivery_base.delivery_carrier_option.view_tree delivery.carrier.option tree New
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option form New
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option tree New
quant_package_search_view stock.quant.package field Inherits stock.quant_package_search_view
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_delivery_carrier_tree delivery_carrier_base.tree delivery.carrier field Inherits delivery.view_delivery_carrier_tree
view_picking_withcarrier_out_form stock.picking field Inherits delivery.view_picking_withcarrier_out_form
view_quant_package_form stock.quant.package field Inherits stock.view_quant_package_form
view_quant_package_tree stock.quant.package field Inherits stock.view_quant_package_tree
vpicktree stock.picking field Inherits stock.vpicktree
Models touched (8)

New fields (5)
  • account Char
    required=True string='Account Number'
  • file_format Selection
    help="Default format of the carrier's label you want to print" selection='_get_file_format' string='File Format'
  • name Char
    required=True
  • password Char
    required=True string='Account Password'
  • type Selection
    help='In case of several carriers, help to know which account belong to which carrier' required=True selection='_get_carrier_type'
Public methods (0)

No public methods.

New fields (4)
  • available_option_ids One2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' inverse_name='carrier_id' string='Option'
  • carrier_type Selection
    help='Carrier type (combines several delivery methods)' oldname='type' selection='_get_carrier_type_selection' string='Type'
  • code Char
    help='Delivery Method Code (according to carrier)'
  • description Text
Public methods (1)
  • default_options(self)
    @api.multi
    Returns default and available options for a carrier

New fields (5)
  • by_default Boolean
    help='By check, user can choose to apply this option to each Delivery Order\n using this delivery method' string='Applied by Default'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' string='Carrier'
  • mandatory Boolean
    help='If checked, this option is necessarily applied to the delivery order'
  • readonly_flag Boolean
    help='When True, help to prevent the user to modify some fields option (if attribute is defined in the view)' string='Readonly Flag'
  • tmpl_option_id Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' ondelete='cascade' required=True string='Option'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    readonly=True
  • description Char
    help='Allow to define a more complete description than in the name field.' readonly=True
  • name Char
    readonly=True
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner Carrier'
Public methods (0)

No public methods.

New fields (3)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachement'
  • file_type Selection
    default='pdf' selection=__get_file_type_selection string='File type'
  • package_id Many2one → stock.quant.package
    comodel_name='stock.quant.package' string='Pack'
Public methods (0)

No public methods.

New fields (1)
  • weight Float
    digits=dp.get_precision('Stock Weight') help='Weight of the pack_operation'
Public methods (1)
  • get_weight(self)
    @api.multi
    Calc and save weight of pack.operations. Warning: Type conversion not implemented it will return False if at least one uom or uos not in kg return: the sum of the weight of [self]

New fields (4)
  • carrier_code Char
    readonly=True related='carrier_id.code'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' states={'done': [('readonly', True)]} string='Carrier'
  • carrier_type Selection
    readonly=True related='carrier_id.carrier_type' string='Carrier Type'
  • option_ids Many2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' string='Options'
Public methods (8)
  • action_generate_carrier_label(self)
    @api.multi
    Method for the 'Generate Label' button. It will generate the labels for all the packages of the picking.
  • carrier_id_change(self)
    @api.onchange('carrier_id')
    Inherit this method in your module
  • create(self, vals)
    @api.model@api.returns('self', <expr>)
    Trigger carrier_id_change on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • generate_default_label(self, package_ids=None)
    @api.multi
    Abstract method :param package_ids: optional list of ``stock.quant.package`` ids only packs in this list will have their label printed (all are generated when None) :return: (file_binary, file_type)
  • generate_labels(self, package_ids=None)
    @api.multi
    Generate the labels. A list of package ids can be given, in that case it will generate the labels only of these packages.
  • generate_shipping_labels(self, package_ids=None)
    @api.multi
    Generate a shipping label by default This method can be inherited to create specific shipping labels a list of label must be return as we can have multiple stock.quant.package for a single picking representing packs :param package_ids: optional list of ``stock.quant.package`` ids only packs in this list will have their label printed (all are generated when None) :return: list of dict containing name: name to give to the attachement file: file as string file_type: string of file type like 'PDF' (optional) package_id: package_id if picking lines have package_id and if label generator creates shipping label per pack
  • option_ids_change(self)
    @api.onchange('option_ids')
  • write(self, vals)
    @api.multi
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.

New fields (2)
  • parcel_tracking Char
    string='Parcel Tracking'
  • total_weight Float
    digits=dp.get_precision('Stock Weight') help='Total weight of the package in kg, including the weight of the logistic unit.'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/8.0/base_delivery_carrier_label
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSStéphane Bidoul, Alexis de Lattre, Yannick Vaucher, Guewen Baconnier, Alexandre Fayolle, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, david.beal@akretion.com, beau sebastien, David Beal, oca-travis, Weblate, OCA-git-bot, hparfr
WEBSITE
WEBSITEhttp://www.camptocamp.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - web_kanban_sparkline
    - account_voucher
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - board
    - edi
    - email_template
    - procurement
    - stock_account
    - stock
    - web_kanban_gauge
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option form New
delivery_carrier_option_view_tree delivery_base.delivery_carrier_option.view_tree delivery.carrier.option tree New
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option form New
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option tree New
quant_package_search_view stock.quant.package field Inherits stock.quant_package_search_view
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier field Inherits delivery.view_delivery_carrier_form
view_delivery_carrier_tree delivery_carrier_base.tree delivery.carrier field Inherits delivery.view_delivery_carrier_tree
view_picking_withcarrier_out_form stock.picking field Inherits delivery.view_picking_withcarrier_out_form
view_quant_package_form stock.quant.package field Inherits stock.view_quant_package_form
view_quant_package_tree stock.quant.package field Inherits stock.view_quant_package_tree
vpicktree stock.picking field Inherits stock.vpicktree
Models touched (8)

New fields (5)
  • account Char
    required=True string='Account Number'
  • file_format Selection
    help="Default format of the carrier's label you want to print" selection='_get_file_format' string='File Format'
  • name Char
    required=True
  • password Char
    required=True string='Account Password'
  • type Selection
    help='In case of several carriers, help to know which account belong to which carrier' required=True selection='_get_carrier_type'
Public methods (0)

No public methods.

New fields (4)
  • available_option_ids One2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' inverse_name='carrier_id' string='Option'
  • code Char
    help='Delivery Method Code (according to carrier)'
  • description Text
  • type Selection
    help='Carrier type (combines several delivery methods)' selection='_get_carrier_type_selection' string='Type'
Public methods (1)
  • default_options(self)
    @api.multi
    Returns default and available options for a carrier

New fields (5)
  • by_default Boolean
    help='By check, user can choose to apply this option to each Delivery Order\n using this delivery method' string='Applied by Default'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' string='Carrier'
  • mandatory Boolean
    help='If checked, this option is necessarily applied to the delivery order'
  • readonly_flag Boolean
    help='When True, help to prevent the user to modify some fields option (if attribute is defined in the view)' string='Readonly Flag'
  • tmpl_option_id Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' ondelete='cascade' required=True string='Option'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    readonly=True
  • description Char
    help='Allow to define a more complete description than in the name field.' readonly=True
  • name Char
    readonly=True
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner Carrier'
Public methods (0)

No public methods.

New fields (3)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachement'
  • file_type Selection
    default='pdf' selection=__get_file_type_selection string='File type'
  • package_id Many2one → stock.quant.package
    comodel_name='stock.quant.package' string='Pack'
Public methods (0)

No public methods.

New fields (1)
  • weight Float
    digits=dp.get_precision('Stock Weight') help='Weight of the pack_operation'
Public methods (1)
  • get_weight(self)
    @api.multi
    Calc and save weight of pack.operations. Warning: Type conversion not implemented it will return False if at least one uom or uos not in kg return: the sum of the weight of [self]

New fields (4)
  • carrier_code Char
    readonly=True related='carrier_id.code'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' states={'done': [('readonly', True)]} string='Carrier'
  • carrier_type Selection
    readonly=True related='carrier_id.type' string='Carrier Type'
  • option_ids Many2many → delivery.carrier.option
    comodel_name='delivery.carrier.option' string='Options'
Public methods (9)
  • action_generate_carrier_label(self)
    @api.multi
    Method for the 'Generate Label' button. It will generate the labels for all the packages of the picking.
  • carrier_id_change(self)
    @api.onchange('carrier_id')
    Inherit this method in your module
  • create(self, vals)
    @api.model@api.returns('self', <expr>)
    Trigger carrier_id_change on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • generate_default_label(self, package_ids=None)
    @api.multi
    Abstract method :param package_ids: optional list of ``stock.quant.package`` ids only packs in this list will have their label printed (all are generated when None) :return: (file_binary, file_type)
  • generate_labels(self, package_ids=None)
    @api.multi
    Generate the labels. A list of package ids can be given, in that case it will generate the labels only of these packages.
  • generate_shipping_labels(self, package_ids=None)
    @api.multi
    Generate a shipping label by default This method can be inherited to create specific shipping labels a list of label must be return as we can have multiple stock.quant.package for a single picking representing packs :param package_ids: optional list of ``stock.quant.package`` ids only packs in this list will have their label printed (all are generated when None) :return: list of dict containing name: name to give to the attachement file: file as string file_type: string of file type like 'PDF' (optional) tracking_id: tracking_id if picking lines have tracking_id and if label generator creates shipping label per pack
  • option_ids_change(self)
    @api.onchange('option_ids')
  • set_pack_weight(self)
    @api.multi
  • write(self, vals)
    @api.multi
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.

New fields (2)
  • parcel_tracking Char
    string='Parcel Tracking'
  • weight Float
    digits=dp.get_precision('Stock Weight') help='Total weight of the package in kg, including the weight of the logistic unit.'
Public methods (1)
  • get_weight(self)
    @api.multi
    Compute the weight of a pack. Get all the children packages and sum the weight of all the product and the weight of the Logistic Units of the packages. So if I put in PACK65: * 1 product A of 2kg * 2 products B of 4kg The box of PACK65 weights 0.5kg And I put in PACK66: * 1 product A of 2kg The box of PACK66 weights 0.5kg Then I put PACK65 and PACK66 in the PACK67 having a box that weights 0.5kg, the weight of PACK67 should be: 13.5kg
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/7.0/base_delivery_carrier_label
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYversion
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSAlexis de Lattre, Yannick Vaucher, Guewen Baconnier, Alexandre Fayolle, Joel Grand-Guillaume, Leonardo Pistone, Sandy Carter, Pedro M. Baeza, GitHub, cubells, florian-dacosta, Launchpad Translations on behalf of stock-logistic-core-editors, Rudolf Schnapka, David Béal, david.beal@akretion.com, moylop260, David Beal
WEBSITE
WEBSITEhttp://www.camptocamp.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - process
    - web
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - account
    - analytic
    - board
    - edi
    - email_template
    - delivery
    - sale
    - account_voucher
    - purchase
    - procurement
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Base module for carrier labels
==============================

This module adds a button on delivery orders to generate a label as an
attachement.

.. tip::
   It doesn't implement a label. To add a default label, you can install
   the module `delivery_carrier_label_default_webkit`

It can be used to print specific labels per carrier.

.. note::
   Inspired by Akretion module delivery_base and delivery_shipping_label

Contributors
------------

* David BEAL <david.beal@akretion.com>
* Sébastien BEAU <sebastien.beau@akretion.com>
* Yannick Vaucher <yannick.vaucher@camptocamp.com>

 

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
carrier_account_form carrier.account.form carrier.account form New
carrier_account_tree carrier.account.tree carrier.account tree New
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option form New
delivery_carrier_option_view_tree delivery_base.delivery_carrier_option.view_tree delivery.carrier.option tree New
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option form New
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option tree New
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier field Inherits delivery.view_delivery_carrier_form
view_delivery_carrier_tree delivery_carrier_base.tree delivery.carrier field Inherits delivery.view_delivery_carrier_tree
view_picking_in_form delivery.stock.picking.in.form stock.picking.in field Inherits delivery.view_picking_withcarrier_in_form
view_picking_out_form delivery.stock.picking.out.form stock.picking.out field Inherits delivery.view_picking_withcarrier_out_form
Models touched (8)

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

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

No new fields.

Public methods (8)
  • action_generate_carrier_label(self, cr, uid, ids, context=None)
    Method for the 'Generate Label' button. It will generate the labels for all the trackings of the picking.
  • carrier_id_change(self, cr, uid, ids, carrier_id, context=None)
    Inherit this method in your module
  • create(self, cr, uid, values, context=None)
    Trigger carrier_id_change on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • generate_default_label(self, cr, uid, ids, tracking_ids=None, context=None)
    Abstract method :param tracking_ids: optional list of ``stock.tracking`` ids only packs in this list will have their label printed (all are generated when None) :return: (file_binary, file_type)
  • generate_labels(self, cr, uid, ids, tracking_ids=None, context=None)
    Generate the labels. A list of tracking ids can be given, in that case it will generate the labels only of these trackings.
  • generate_shipping_labels(self, cr, uid, ids, tracking_ids=None, context=None)
    Generate a shipping label by default This method can be inherited to create specific shipping labels a list of label must be return as we can have multiple stock.tracking for a single picking representing packs :param tracking_ids: optional list of ``stock.tracking`` ids only packs in this list will have their label printed (all are generated when None) :return: list of dict containing name: name to give to the attachement file: file as string file_type: string of file type like 'PDF' (optional) tracking_id: tracking_id if picking lines have tracking_id and if label generator creates shipping label per pack
  • option_ids_change(self, cr, uid, ids, option_ids, carrier_id, context=None)
  • write(self, cr, uid, ids, values, context=None)
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.

New fields (0)

No new fields.

Public methods (6)
  • action_generate_carrier_label(self, cr, uid, ids, context=None)
  • carrier_id_change(self, cr, uid, ids, carrier_id, context=None)
    Call stock.picking carrier_id_change
  • create(self, cr, uid, values, context=None)
    Trigger carrier_id_change on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • generate_labels(self, cr, uid, ids, tracking_ids=None, context=None)
  • option_ids_change(self, cr, uid, ids, option_ids, carrier_id, context=None)
    Call stock.picking option_ids_change
  • write(self, cr, uid, ids, values, context=None)
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.

New fields (0)

No new fields.

Public methods (6)
  • action_generate_carrier_label(self, cr, uid, ids, context=None)
  • carrier_id_change(self, cr, uid, ids, carrier_id, context=None)
    Inherit this method in your module
  • create(self, cr, uid, values, context=None)
    Trigger carrier_id_change on create To ensure options are setted on the basis of carrier_id copied from Sale order or defined by default.
  • generate_labels(self, cr, uid, ids, tracking_ids=None, context=None)
  • option_ids_change(self, cr, uid, ids, option_ids, carrier_id, context=None)
  • write(self, cr, uid, ids, values, context=None)
    Set the default options when the delivery method is changed. So we are sure that the options are always in line with the current delivery method.