PostLogistics Labels WebService

delivery_carrier_label_postlogistics
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/12.0/delivery_carrier_label_postlogistics
VERSION
VERSION 1.0.8
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSYannick Vaucher, Guewen Baconnier, Pedro M. Baeza, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Iryna Vyshnevska, oca-ci, Telmo Santos
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - base_delivery_carrier_label
    - delivery_carrier_info
OCA/server-tools:
    - configuration_helper
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 unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option field Inherits base_delivery_carrier_label.delivery_carrier_option_view_form
postlogistics_license_view_list postlogistics.license.view_list postlogistics.license tree New
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier field Inherits base_delivery_carrier_label.view_delivery_carrier_form
view_picking_withcarrier_out_form delivery.stock.picking.out.form stock.picking field Inherits base_delivery_carrier_label.view_picking_withcarrier_out_form
view_postlogistics_auth_form postlogistics.auth.form postlogistics.auth form New
view_postlogistics_config_settings postlogistics settings res.config.settings xpath Inherits base.res_config_settings_view_form
Models touched (10)

New fields (4)
  • allowed_tmpl_options_ids Many2many → delivery.carrier.template.option
    compute='_compute_allowed_options_ids' store=False args: 'delivery.carrier.template.option'
  • delivery_type Selection
    selection_add=[('postlogistics', 'Post logistics')]
  • postlogistics_basic_service_ids One2many → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' compute='_compute_basic_service_ids' help='Basic Service defines the available additional options for this delivery method' string='PostLogistics Service Group'
  • postlogistics_license_id Many2one → postlogistics.license
    comodel_name='postlogistics.license' string='PostLogistics Franking License'
Public methods (4)
  • postlogistics_cancel_shipment(self, pickings)
    @api.multi
  • postlogistics_get_tracking_link(self, picking)
    @api.multi
  • postlogistics_rate_shipment(self, order)
    @api.multi
  • postlogistics_send_shipping(self, pickings)
    @api.multi

New fields (2)
  • allowed_tmpl_options_ids Many2many → delivery.carrier.template.option
    compute='_compute_allowed_tmpl_options_ids' store=False args: 'delivery.carrier.template.option'
  • name Char
    translate=True
Public methods (0)

No public methods.

New fields (5)
  • name Char
    translate=True
  • postlogistics_additonial_service_ids Many2many → delivery.carrier.template.option
    column1='basic_service_id' column2='service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'additional')] relation='postlogistics_compatibility_service_rel' string='Compatible Additional Services'
  • postlogistics_basic_service_ids Many2many → delivery.carrier.template.option
    column1='service_id' column2='basic_service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'basic')] help='List of basic service for which this service is compatible' relation='postlogistics_compatibility_service_rel' string='Basic Services'
  • postlogistics_delivery_instruction_ids Many2many → delivery.carrier.template.option
    column1='basic_service_id' column2='service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'delivery')] relation='postlogistics_compatibility_service_rel' string='Compatible Delivery Instructions'
  • postlogistics_type Selection
    selection=POSTLOGISTIC_TYPES string='PostLogistics option type'
Public methods (0)

No public methods.

New fields (5)
  • authentication_url Char
    default='https://wedecint.post.ch/WEDECOAuth/token' required=True string='Authentication url'
  • client_id Char
    string='Client ID'
  • client_secret Char
    string='Client Secret'
  • generate_label_url Char
    default='https://wedecint.post.ch/api/barcode/v1/generateAddressLabel' required=True string='Generate label url'
  • state Selection
    default='todo' required=True args: [('todo', 'OAuth Config'), ('done', 'Complete')]
Public methods (3)
  • default_get(self, field_list)
    @api.model
  • generate_access_token(self)
    @api.multi
  • reset_access_token(self)
    @api.multi

New fields (4)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True string='Company'
  • name Char
    required=True string='Description' translate=True
  • number Char
    required=True string='Number'
  • sequence Integer
    help='Gives the sequence on company to define priority on license when multiple licenses are available for the same group of service.' string='Sequence'
Public methods (0)

No public methods.

New fields (11)
  • postlogistics_label_layout Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'label_layout')] string='Default label layout'
  • postlogistics_license_ids One2many → postlogistics.license
    comodel_name='postlogistics.license' inverse_name='company_id' string='PostLogistics Franking License'
  • postlogistics_logo Binary
    help='Optional company logo to show on label.\nIf using an image / logo, please note the following:\n– Image width: 47 mm\n– Image height: 25 mm\n– File size: max. 30 kb\n– File format: GIF or PNG\n– Colour table: indexed colours, max. 200 colours\n– The logo will be printed rotated counter-clockwise by 90°\nWe recommend using a black and white logo for printing in the ZPL2 format.' string='Company Logo on Post labels'
  • postlogistics_office Char
    help='Post office which will receive the shipped goods' string='Domicile Post office'
  • postlogistics_output_format Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'output_format')] string='Default output format'
  • postlogistics_password Char
    args: 'Password'
  • postlogistics_proclima_logo Boolean
    args: 'Print ProClima logo'
  • postlogistics_resolution Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'resolution')] string='Default resolution'
  • postlogistics_tracking_format Selection
    default='postlogistics' string='Tracking number format' args: [('postlogistics', 'Use default postlogistics tracking numbers'), ('picking_num', 'Use picking number with pack counter')]
  • postlogistics_username Char
    args: 'Username'
  • postlogistics_wsdl_url Char
    compute='_compute_wsdl_url' string='WSDL URL'
Public methods (0)

No public methods.

New fields (2)
  • proclima_logo Boolean
    help='The “pro clima” logo indicates an item for which the surcharge for carbon-neutral shipping has been paid and a contract to that effect has been signed. For Letters with barcode (BMB) domestic, the ProClima logo is printed automatically (at no additional charge)' related='company_id.postlogistics_proclima_logo'
  • tracking_format Selection
    help='Allows you to define how the ItemNumber (the last 8 digits) of the tracking number will be generated:\n- Default postlogistics numbers: The webservice generates it for you.\n- Picking number with pack counter: Generate it using the digits of picking name and add the pack number. 2 digits forpack number and 6 digits for picking number. (eg. 07000042 for picking 42 and 7th pack' related='company_id.postlogistics_tracking_format' selection=[('postlogistics', 'Use default postlogistics tracking numbers'), ('picking_num', 'Use picking number with pack counter')] string='Tracking number format' type='selection'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (4)
  • delivery_fixed_date Date
    help='Specific delivery date (ZAW3217)' args: 'Fixed delivery date'
  • delivery_mobile Char
    help='For notify delivery by telephone (ZAW3213)' args: 'Mobile'
  • delivery_phone Char
    help='For notify delivery by telephone (ZAW3213)' args: 'Phone'
  • delivery_place Char
    help='For Deposit item service (ZAW3219)' args: 'Delivery Place'
Public methods (2)
  • generate_shipping_labels(self)
    @api.multi
    Add label generation for Postlogistics
  • postlogistics_cod_amount(self)
    @api.multi
    Return the Postlogistic Cash on Delivery amount of a picking If the picking delivers the whole sales order, we use the total amount of the sales order. Otherwise, we don't know the value of each picking so we raise an error. The user has to create packages with the cash on delivery price on each package.

New fields (1)
  • postlogistics_manual_cod_amount Float
    help='If the cash on delivery amount for this package is different than the total of the sales order, write the amount there.' string='Postlogistics Cash On Delivery Amount'
Public methods (1)
  • postlogistics_cod_amount(self)
    @api.multi
    Return the Postlogistic Cash on Delivery amount of a package If we have only 1 package which delivers the whole sales order we use the total amount of the sales order. Otherwise we don't know the value of each package so we raise an error and the user has to write the prices on the packages. When a price is manually set on a package, it's always used as the cash on delivery amount.
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/11.0/delivery_carrier_label_postlogistics
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSAkim Juillerat, OCA Transbot, 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 OCA/delivery-carrier:
    - base_delivery_carrier_label
OCA/server-tools:
    - configuration_helper
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 suds
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option field Inherits base_delivery_carrier_label.delivery_carrier_option_view_form
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option field Inherits base_delivery_carrier_label.delivery_carrier_template_option_view_form
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option field Inherits base_delivery_carrier_label.delivery_carrier_template_option_view_tree
postlogistics_license_view_list postlogistics.license.view_list postlogistics.license tree New
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier field Inherits base_delivery_carrier_label.view_delivery_carrier_form
view_picking_withcarrier_out_form delivery.stock.picking.out.form stock.picking field Inherits base_delivery_carrier_label.view_picking_withcarrier_out_form
view_postlogistics_config_settings postlogistics settings res.config.settings xpath Inherits base.res_config_settings_view_form
Models touched (10)

New fields (5)
  • allowed_tmpl_options_ids Many2many → delivery.carrier.template.option
    compute='_compute_allowed_options_ids' store=False args: 'delivery.carrier.template.option'
  • delivery_type Selection
    selection_add=[('postlogistics', 'Post logistics')]
  • postlogistics_basic_service_ids One2many → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' compute='_compute_basic_service_ids' help='Basic Service defines the available additional options for this delivery method' string='PostLogistics Service Group'
  • postlogistics_license_id Many2one → postlogistics.license
    comodel_name='postlogistics.license' string='PostLogistics Franking License'
  • postlogistics_service_group_id Many2one → postlogistics.service.group
    comodel_name='postlogistics.service.group' help='Service group defines the available options for this delivery method.' string='PostLogistics Service Group'
Public methods (4)
  • postlogistics_cancel_shipment(self, pickings)
    @api.multi
  • postlogistics_get_tracking_link(self, picking)
    @api.multi
  • postlogistics_rate_shipment(self, order)
    @api.multi
  • postlogistics_send_shipping(self, pickings)
    @api.multi

New fields (2)
  • allowed_tmpl_options_ids Many2many → delivery.carrier.template.option
    compute='_compute_allowed_tmpl_options_ids' store=False args: 'delivery.carrier.template.option'
  • name Char
    translate=True
Public methods (0)

No public methods.

New fields (6)
  • name Char
    translate=True
  • postlogistics_additonial_service_ids Many2many → delivery.carrier.template.option
    column1='basic_service_id' column2='service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'additional')] relation='postlogistics_compatibility_service_rel' string='Compatible Additional Services'
  • postlogistics_basic_service_ids Many2many → delivery.carrier.template.option
    column1='service_id' column2='basic_service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'basic')] help='List of basic service for which this service is compatible' relation='postlogistics_compatibility_service_rel' string='Basic Services'
  • postlogistics_delivery_instruction_ids Many2many → delivery.carrier.template.option
    column1='basic_service_id' column2='service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'delivery')] relation='postlogistics_compatibility_service_rel' string='Compatible Delivery Instructions'
  • postlogistics_service_group_id Many2one → postlogistics.service.group
    comodel_name='postlogistics.service.group' string='PostLogistics Service Group'
  • postlogistics_type Selection
    selection=POSTLOGISTIC_TYPES string='PostLogistics option type'
Public methods (0)

No public methods.

New fields (4)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True string='Company'
  • name Char
    required=True string='Description' translate=True
  • number Char
    required=True string='Number'
  • sequence Integer
    help='Gives the sequence on company to define priority on license when multiple licenses are available for the same group of service.' string='Sequence'
Public methods (0)

No public methods.

New fields (3)
  • group_extid Integer
    required=True string='Group ID'
  • name Char
    required=True string='Description' translate=True
  • postlogistics_license_ids Many2many → postlogistics.license
    column1='license_id' column2='group_id' comodel_name='postlogistics.license' relation='postlogistics_license_service_groups_rel' string='PostLogistics Franking License'
Public methods (0)

No public methods.

New fields (11)
  • postlogistics_default_label_layout Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'label_layout')] string='Default label layout'
  • postlogistics_default_output_format Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'output_format')] string='Default output format'
  • postlogistics_default_resolution Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'resolution')] string='Default resolution'
  • postlogistics_license_ids One2many → postlogistics.license
    comodel_name='postlogistics.license' inverse_name='company_id' string='PostLogistics Franking License'
  • postlogistics_logo Binary
    help='Optional company logo to show on label.\nIf using an image / logo, please note the following:\n– Image width: 47 mm\n– Image height: 25 mm\n– File size: max. 30 kb\n– File format: GIF or PNG\n– Colour table: indexed colours, max. 200 colours\n– The logo will be printed rotated counter-clockwise by 90°\nWe recommend using a black and white logo for printing in the ZPL2 format.' string='Company Logo on Post labels'
  • postlogistics_office Char
    help='Post office which will receive the shipped goods' string='Domicile Post office'
  • postlogistics_password Char
    args: 'Password'
  • postlogistics_proclima_logo Boolean
    args: 'Print ProClima logo'
  • postlogistics_tracking_format Selection
    default='postlogistics' string='Tracking number format' args: [('postlogistics', 'Use default postlogistics tracking numbers'), ('picking_num', 'Use picking number with pack counter')]
  • postlogistics_username Char
    args: 'Username'
  • postlogistics_wsdl_url Char
    compute='_compute_wsdl_url' string='WSDL URL'
Public methods (0)

No public methods.

New fields (2)
  • proclima_logo Boolean
    help='The “pro clima” logo indicates an item for which the surcharge for carbon-neutral shipping has been paid and a contract to that effect has been signed. For Letters with barcode (BMB) domestic, the ProClima logo is printed automatically (at no additional charge)' related='company_id.postlogistics_proclima_logo'
  • tracking_format Selection
    help='Allows you to define how the ItemNumber (the last 8 digits) of the tracking number will be generated:\n- Default postlogistics numbers: The webservice generates it for you.\n- Picking number with pack counter: Generate it using the digits of picking name and add the pack number. 2 digits forpack number and 6 digits for picking number. (eg. 07000042 for picking 42 and 7th pack' related='company_id.postlogistics_tracking_format' selection=[('postlogistics', 'Use default postlogistics tracking numbers'), ('picking_num', 'Use picking number with pack counter')] string='Tracking number format' type='selection'
Public methods (2)
  • assign_licenses_to_service_groups(self)
    @api.multi
    Check all licenses to assign it to PostLogistics service groups
  • update_postlogistics_options(self)
    @api.multi
    This action will update all postlogistics option by importing services from PostLogistics WebService API The object we create are 'delivey.carrier.template.option'

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (4)
  • delivery_fixed_date Date
    help='Specific delivery date (ZAW3217)' args: 'Fixed delivery date'
  • delivery_mobile Char
    help='For notify delivery by telephone (ZAW3213)' args: 'Mobile'
  • delivery_phone Char
    help='For notify delivery by telephone (ZAW3213)' args: 'Phone'
  • delivery_place Char
    help='For Deposit item service (ZAW3219)' args: 'Delivery Place'
Public methods (2)
  • generate_shipping_labels(self, package_ids=None)
    @api.multi
    Add label generation for Postlogistics
  • postlogistics_cod_amount(self)
    @api.multi
    Return the Postlogistic Cash on Delivery amount of a picking If the picking delivers the whole sales order, we use the total amount of the sales order. Otherwise, we don't know the value of each picking so we raise an error. The user has to create packages with the cash on delivery price on each package.

New fields (1)
  • postlogistics_manual_cod_amount Float
    help='If the cash on delivery amount for this package is different than the total of the sales order, write the amount there.' string='Postlogistics Cash On Delivery Amount'
Public methods (1)
  • postlogistics_cod_amount(self)
    @api.multi
    Return the Postlogistic Cash on Delivery amount of a package If we have only 1 package which delivers the whole sales order we use the total amount of the sales order. Otherwise we don't know the value of each package so we raise an error and the user has to write the prices on the packages. When a price is manually set on a package, it's always used as the cash on delivery amount.
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/10.0/delivery_carrier_label_postlogistics
VERSION
VERSION 1.2.1
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSPedro M. Baeza, GitHub, sebalix, Akim Juillerat, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, OCA-git-bot, OCA Git Bot, Anna Janiszewska, gael.torrecillas
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - base_delivery_carrier_label
OCA/server-tools:
    - configuration_helper
OCA/web:
    - web_domain_field
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 suds
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option field Inherits base_delivery_carrier_label.delivery_carrier_option_view_form
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option field Inherits base_delivery_carrier_label.delivery_carrier_template_option_view_form
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option field Inherits base_delivery_carrier_label.delivery_carrier_template_option_view_tree
postlogistics_license_view_list postlogistics.license.view_list postlogistics.license tree New
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier field Inherits base_delivery_carrier_label.view_delivery_carrier_form
view_picking_withcarrier_out_form delivery.stock.picking.out.form stock.picking field Inherits base_delivery_carrier_label.view_picking_withcarrier_out_form
view_postlogistics_config_settings postlogistics settings postlogistics.config.settings form New
view_quant_package_form stock.quant.package.form stock.quant.package field Inherits stock.view_quant_package_form
Models touched (10)

New fields (5)
  • allowed_options_domain Char
    compute='_compute_allowed_options_domain' store=False
  • delivery_type Selection
    selection_add=[('postlogistics', 'Post logistics')]
  • postlogistics_basic_service_ids One2many → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' compute='_compute_basic_service_ids' help='Basic Service defines the available additional options for this delivery method' string='PostLogistics Service Group'
  • postlogistics_license_id Many2one → postlogistics.license
    comodel_name='postlogistics.license' string='PostLogistics Franking License'
  • postlogistics_service_group_id Many2one → postlogistics.service.group
    comodel_name='postlogistics.service.group' help='Service group defines the available options for this delivery method.' string='PostLogistics Service Group'
Public methods (4)
  • postlogistics_cancel_shipment(self, pickings)
    @api.multi
  • postlogistics_get_shipping_price_from_so(self, order)
    @api.multi
  • postlogistics_get_tracking_link(self, pickings)
    @api.multi
  • postlogistics_send_shipping(self, pickings)
    @api.multi

New fields (2)
  • name Char
    translate=True
  • tmpl_option_id_domain Char
    compute='_compute_tmpl_option_id_domain'
Public methods (0)

No public methods.

New fields (6)
  • name Char
    translate=True
  • postlogistics_additonial_service_ids Many2many → delivery.carrier.template.option
    column1='basic_service_id' column2='service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'additional')] relation='postlogistics_compatibility_service_rel' string='Compatible Additional Services'
  • postlogistics_basic_service_ids Many2many → delivery.carrier.template.option
    column1='service_id' column2='basic_service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'basic')] help='List of basic service for which this service is compatible' relation='postlogistics_compatibility_service_rel' string='Basic Services'
  • postlogistics_delivery_instruction_ids Many2many → delivery.carrier.template.option
    column1='basic_service_id' column2='service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'delivery')] relation='postlogistics_compatibility_service_rel' string='Compatible Delivery Instructions'
  • postlogistics_service_group_id Many2one → postlogistics.service.group
    comodel_name='postlogistics.service.group' string='PostLogistics Service Group'
  • postlogistics_type Selection
    selection=POSTLOGISTIC_TYPES string='PostLogistics option type'
Public methods (0)

No public methods.

New fields (4)
  • proclima_logo Boolean
    help='The “pro clima” logo indicates an item for which the surcharge for carbon-neutral shipping has been paid and a contract to that effect has been signed. For Letters with barcode (BMB) domestic, the ProClima logo is printed automatically (at no additional charge)' related='company_id.postlogistics_proclima_logo'
  • test_mode Boolean
    help='Will generate Specimen labels using test end point of webservice.' related='company_id.postlogistics_test_mode'
  • tracking_format Selection
    help='Allows you to define how the ItemNumber (the last 8 digits) of the tracking number will be generated:\n- Default postlogistics numbers: The webservice generates it for you.\n- Picking number with pack counter: Generate it using the digits of picking name and add the pack number. 2 digits forpack number and 6 digits for picking number. (eg. 07000042 for picking 42 and 7th pack' related='company_id.postlogistics_tracking_format' selection=[('postlogistics', 'Use default postlogistics tracking numbers'), ('picking_num', 'Use picking number with pack counter')] string='Tracking number format' type='selection'
  • wsdl_url Char
    readonly=True related='company_id.postlogistics_wsdl_url'
Public methods (2)
  • assign_licenses_to_service_groups(self)
    @api.multi
    Check all licenses to assign it to PostLogistics service groups
  • update_postlogistics_options(self)
    @api.multi
    This action will update all postlogistics option by importing services from PostLogistics WebService API The object we create are 'delivey.carrier.template.option'

New fields (4)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True string='Company'
  • name Char
    required=True string='Description' translate=True
  • number Char
    required=True string='Number'
  • sequence Integer
    help='Gives the sequence on company to define priority on license when multiple licenses are available for the same group of service.' string='Sequence'
Public methods (0)

No public methods.

New fields (3)
  • group_extid Integer
    required=True string='Group ID'
  • name Char
    required=True string='Description' translate=True
  • postlogistics_license_ids Many2many → postlogistics.license
    column1='license_id' column2='group_id' comodel_name='postlogistics.license' relation='postlogistics_license_service_groups_rel' string='PostLogistics Franking License'
Public methods (0)

No public methods.

New fields (12)
  • postlogistics_default_label_layout Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'label_layout')] string='Default label layout'
  • postlogistics_default_output_format Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'output_format')] string='Default output format'
  • postlogistics_default_resolution Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'resolution')] string='Default resolution'
  • postlogistics_license_ids One2many → postlogistics.license
    comodel_name='postlogistics.license' inverse_name='company_id' string='PostLogistics Franking License'
  • postlogistics_logo Binary
    help='Optional company logo to show on label.\nIf using an image / logo, please note the following:\n– Image width: 47 mm\n– Image height: 25 mm\n– File size: max. 30 kb\n– File format: GIF or PNG\n– Colour table: indexed colours, max. 200 colours\n– The logo will be printed rotated counter-clockwise by 90°\nWe recommend using a black and white logo for printing in the ZPL2 format.' string='Company Logo on Post labels'
  • postlogistics_office Char
    help='Post office which will receive the shipped goods' string='Domicile Post office'
  • postlogistics_password Char
    args: 'Password'
  • postlogistics_proclima_logo Boolean
    args: 'Print ProClima logo'
  • postlogistics_test_mode Boolean
  • postlogistics_tracking_format Selection
    default='postlogistics' string='Tracking number format' args: [('postlogistics', 'Use default postlogistics tracking numbers'), ('picking_num', 'Use picking number with pack counter')]
  • postlogistics_username Char
    args: 'Username'
  • postlogistics_wsdl_url Char
    compute='_compute_wsdl_url' store=True string='WSDL URL'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (4)
  • delivery_fixed_date Date
    help='Specific delivery date (ZAW3217)' args: 'Fixed delivery date'
  • delivery_mobile Char
    help='For notify delivery by telephone (ZAW3213)' args: 'Mobile'
  • delivery_phone Char
    help='For notify delivery by telephone (ZAW3213)' args: 'Phone'
  • delivery_place Char
    help='For Deposit item service (ZAW3219)' args: 'Delivery Place'
Public methods (2)
  • generate_shipping_labels(self, package_ids=None)
    @api.multi
    Add label generation for Postlogistics
  • postlogistics_cod_amount(self)
    @api.multi
    Return the Postlogistic Cash on Delivery amount of a picking If the picking delivers the whole sales order, we use the total amount of the sales order. Otherwise, we don't know the value of each picking so we raise an error. The user has to create packages with the cash on delivery price on each package.

New fields (1)
  • postlogistics_manual_cod_amount Float
    help='If the cash on delivery amount for this package is different than the total of the sales order, write the amount there.' string='Postlogistics Cash On Delivery Amount'
Public methods (1)
  • postlogistics_cod_amount(self)
    @api.multi
    Return the Postlogistic Cash on Delivery amount of a package If we have only 1 package which delivers the whole sales order we use the total amount of the sales order. Otherwise we don't know the value of each package so we raise an error and the user has to write the prices on the packages. When a price is manually set on a package, it's always used as the cash on delivery amount.
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/9.0/delivery_carrier_label_postlogistics
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSYannick Vaucher, Guewen Baconnier, Pedro M. Baeza, GitHub, sebalix, Stéphane Bidoul (ACSONE), Alex Comba, OCA Transbot, oca-travis, Weblate, Cyril Gaudin
WEBSITE
WEBSITEhttp://www.camptocamp.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - base_delivery_carrier_label
OCA/server-tools:
    - configuration_helper
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 suds
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option field Inherits base_delivery_carrier_label.delivery_carrier_option_view_form
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option field Inherits base_delivery_carrier_label.delivery_carrier_template_option_view_form
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option field Inherits base_delivery_carrier_label.delivery_carrier_template_option_view_tree
postlogistics_license_view_list postlogistics.license.view_list postlogistics.license tree New
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier field Inherits base_delivery_carrier_label.view_delivery_carrier_form
view_picking_withcarrier_out_form delivery.stock.picking.out.form stock.picking field Inherits base_delivery_carrier_label.view_picking_withcarrier_out_form
view_postlogistics_config_settings postlogistics settings postlogistics.config.settings form New
view_quant_package_form stock.quant.package.form stock.quant.package field Inherits stock.view_quant_package_form
Models touched (10)

New fields (4)
  • allowed_option_ids Many2many → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' compute='_get_allowed_option_ids' help='Compute allowed options according to selected options.' string='Allowed options'
  • postlogistics_basic_service_ids One2many → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' compute='_get_basic_service_ids' help='Basic Service defines the available additional options for this delivery method' string='PostLogistics Service Group'
  • postlogistics_license_id Many2one → postlogistics.license
    comodel_name='postlogistics.license' string='PostLogistics Franking License'
  • postlogistics_service_group_id Many2one → postlogistics.service.group
    comodel_name='postlogistics.service.group' help='Service group defines the available options for this delivery method.' string='PostLogistics Service Group'
Public methods (0)

No public methods.

New fields (1)
  • name Char
    translate=True
Public methods (1)
  • fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False)

New fields (6)
  • name Char
    translate=True
  • postlogistics_additonial_service_ids Many2many → delivery.carrier.template.option
    column1='basic_service_id' column2='service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'additional')] relation='postlogistics_compatibility_service_rel' string='Compatible Additional Services'
  • postlogistics_basic_service_ids Many2many → delivery.carrier.template.option
    column1='service_id' column2='basic_service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'basic')] help='List of basic service for which this service is compatible' relation='postlogistics_compatibility_service_rel' string='Basic Services'
  • postlogistics_delivery_instruction_ids Many2many → delivery.carrier.template.option
    column1='basic_service_id' column2='service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'delivery')] relation='postlogistics_compatibility_service_rel' string='Compatible Delivery Instructions'
  • postlogistics_service_group_id Many2one → postlogistics.service.group
    comodel_name='postlogistics.service.group' string='PostLogistics Service Group'
  • postlogistics_type Selection
    selection=POSTLOGISTIC_TYPES string='PostLogistics option type'
Public methods (0)

No public methods.

New fields (5)
  • proclima_logo Boolean
    help='The “pro clima” logo indicates an item for which the surcharge for carbon-neutral shipping has been paid and a contract to that effect has been signed. For Letters with barcode (BMB) domestic, the ProClima logo is printed automatically (at no additional charge)' related='company_id.postlogistics_proclima_logo'
  • test_mode Boolean
    help='Will generate Specimen labels using test end point of webservice.' related='company_id.postlogistics_test_mode'
  • tracking_format Selection
    help='Allows you to define how the ItemNumber (the last 8 digits) of the tracking number will be generated:\n- Default postlogistics numbers: The webservice generates it for you.\n- Picking number with pack counter: Generate it using the digits of picking name and add the pack number. 2 digits forpack number and 6 digits for picking number. (eg. 07000042 for picking 42 and 7th pack' related='company_id.postlogistics_tracking_format' selection=[('postlogistics', 'Use default postlogistics tracking numbers'), ('picking_num', 'Use picking number with pack counter')] string='Tracking number format' type='selection'
  • version Selection
    default=<expr> selection=POSTLOGISTICS_VERSIONS string='Version'
  • wsdl_url Char
    readonly=True related='company_id.postlogistics_wsdl_url'
Public methods (2)
  • assign_licenses_to_service_groups(self)
    @api.multi
    Check all licenses to assign it to PostLogistics service groups
  • update_postlogistics_options(self)
    @api.multi
    This action will update all postlogistics option by importing services from PostLogistics WebService API The object we create are 'delivey.carrier.template.option'

New fields (4)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True string='Company'
  • name Char
    required=True string='Description' translate=True
  • number Char
    required=True string='Number'
  • sequence Integer
    help='Gives the sequence on company to define priority on license when multiple licenses are available for the same group of service.' string='Sequence'
Public methods (0)

No public methods.

New fields (3)
  • group_extid Integer
    required=True string='Group ID'
  • name Char
    required=True string='Description' translate=True
  • postlogistics_license_ids Many2many → postlogistics.license
    column1='license_id' column2='group_id' comodel_name='postlogistics.license' relation='postlogistics_license_service_groups_rel' string='PostLogistics Franking License'
Public methods (0)

No public methods.

New fields (13)
  • postlogistics_default_label_layout Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'label_layout')] string='Default label layout'
  • postlogistics_default_output_format Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'output_format')] string='Default output format'
  • postlogistics_default_resolution Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'resolution')] string='Default resolution'
  • postlogistics_license_ids One2many → postlogistics.license
    comodel_name='postlogistics.license' inverse_name='company_id' string='PostLogistics Franking License'
  • postlogistics_logo Binary
    help='Optional company logo to show on label.\nIf using an image / logo, please note the following:\n– Image width: 47 mm\n– Image height: 25 mm\n– File size: max. 30 kb\n– File format: GIF or PNG\n– Colour table: indexed colours, max. 200 colours\n– The logo will be printed rotated counter-clockwise by 90°\nWe recommend using a black and white logo for printing in the ZPL2 format.' string='Company Logo on Post labels'
  • postlogistics_office Char
    help='Post office which will receive the shipped goods' string='Domicile Post office'
  • postlogistics_password Char
    args: 'Password'
  • postlogistics_proclima_logo Boolean
    args: 'Print ProClima logo'
  • postlogistics_test_mode Boolean
  • postlogistics_tracking_format Selection
    default='postlogistics' string='Tracking number format' args: [('postlogistics', 'Use default postlogistics tracking numbers'), ('picking_num', 'Use picking number with pack counter')]
  • postlogistics_username Char
    args: 'Username'
  • postlogistics_version Selection
    default=<expr> selection=POSTLOGISTICS_VERSIONS string='Version'
  • postlogistics_wsdl_url Char
    compute='_get_wsdl_url' store=True string='WSDL URL'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (4)
  • delivery_fixed_date Date
    help='Specific delivery date (ZAW3217)' args: 'Fixed delivery date'
  • delivery_mobile Char
    help='For notify delivery by telephone (ZAW3213)' args: 'Mobile'
  • delivery_phone Char
    help='For notify delivery by telephone (ZAW3213)' args: 'Phone'
  • delivery_place Char
    help='For Deposit item service (ZAW3219)' args: 'Delivery Place'
Public methods (2)
  • generate_shipping_labels(self, package_ids=None)
    @api.multi
    Add label generation for Postlogistics
  • postlogistics_cod_amount(self)
    @api.multi
    Return the Postlogistic Cash on Delivery amount of a picking If the picking delivers the whole sales order, we use the total amount of the sales order. Otherwise, we don't know the value of each picking so we raise an error. The user has to create packages with the cash on delivery price on each package.

New fields (1)
  • postlogistics_manual_cod_amount Float
    help='If the cash on delivery amount for this package is different than the total of the sales order, write the amount there.' string='Postlogistics Cash On Delivery Amount'
Public methods (1)
  • postlogistics_cod_amount(self)
    @api.multi
    Return the Postlogistic Cash on Delivery amount of a package If we have only 1 package which delivers the whole sales order we use the total amount of the sales order. Otherwise we don't know the value of each package so we raise an error and the user has to write the prices on the packages. When a price is manually set on a package, it's always used as the cash on delivery amount.
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/8.0/delivery_carrier_label_postlogistics
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYversion
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSStéphane Bidoul, Yannick Vaucher, Guewen Baconnier, Stéphane Bidoul (ACSONE), Alex Comba, OCA Transbot, David Beal, oca-travis, Weblate, OCA-git-bot, Tom Blauwendraat
WEBSITE
WEBSITEhttp://www.camptocamp.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - base_delivery_carrier_label
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 suds
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option field Inherits base_delivery_carrier_label.delivery_carrier_option_view_form
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option field Inherits base_delivery_carrier_label.delivery_carrier_template_option_view_form
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option field Inherits base_delivery_carrier_label.delivery_carrier_template_option_view_tree
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier field Inherits base_delivery_carrier_label.view_delivery_carrier_form
view_postlogistics_config_settings postlogistics settings postlogistics.config.settings form New
view_quant_package_form stock.quant.package.form stock.quant.package field Inherits stock.view_quant_package_form
Models touched (10)

New fields (4)
  • allowed_option_ids Many2many → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' compute='_get_allowed_option_ids' help='Compute allowed options according to selected options.' string='Allowed options'
  • postlogistics_basic_service_ids One2many → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' compute='_get_basic_service_ids' help='Basic Service defines the available additional options for this delivery method' string='PostLogistics Service Group'
  • postlogistics_license_id Many2one → postlogistics.license
    comodel_name='postlogistics.license' string='PostLogistics Franking License'
  • postlogistics_service_group_id Many2one → postlogistics.service.group
    comodel_name='postlogistics.service.group' help='Service group defines the available options for this delivery method.' string='PostLogistics Service Group'
Public methods (0)

No public methods.

New fields (1)
  • name Char
    translate=True
Public methods (1)
  • fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False)

New fields (6)
  • name Char
    translate=True
  • postlogistics_additonial_service_ids Many2many → delivery.carrier.template.option
    column1='basic_service_id' column2='service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'additional')] relation='postlogistics_compatibility_service_rel' string='Compatible Additional Services'
  • postlogistics_basic_service_ids Many2many → delivery.carrier.template.option
    column1='service_id' column2='basic_service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'basic')] help='List of basic service for which this service is compatible' relation='postlogistics_compatibility_service_rel' string='Basic Services'
  • postlogistics_delivery_instruction_ids Many2many → delivery.carrier.template.option
    column1='basic_service_id' column2='service_id' comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'delivery')] relation='postlogistics_compatibility_service_rel' string='Compatible Delivery Instructions'
  • postlogistics_service_group_id Many2one → postlogistics.service.group
    comodel_name='postlogistics.service.group' string='PostLogistics Service Group'
  • postlogistics_type Selection
    selection=POSTLOGISTIC_TYPES string='PostLogistics option type'
Public methods (0)

No public methods.

New fields (10)
  • company_id Many2one → res.company
    comodel_name='res.company' default=_default_company required=True string='Company'
  • default_label_layout Many2one
    related='company_id.postlogistics_default_label_layout'
  • default_output_format Many2one
    related='company_id.postlogistics_default_output_format'
  • default_resolution Many2one
    related='company_id.postlogistics_default_resolution'
  • license_ids One2many
    related='company_id.postlogistics_license_ids'
  • logo Binary
    related='company_id.postlogistics_logo'
  • office Char
    related='company_id.postlogistics_office'
  • password Char
    related='company_id.postlogistics_password'
  • username Char
    related='company_id.postlogistics_username'
  • wsdl_url Char
    related='company_id.postlogistics_wsdl_url'
Public methods (3)
  • assign_licenses_to_service_groups(self)
    @api.multi
    Check all licenses to assign it to PostLogistics service groups
  • onchange_company_id(self)
    @api.onchange('company_id')
  • update_postlogistics_options(self)
    @api.multi
    This action will update all postlogistics option by importing services from PostLogistics WebService API The object we create are 'delivey.carrier.template.option'

New fields (4)
  • company_id Many2one → res.company
    comodel_name='res.company' required=True string='Company'
  • name Char
    required=True string='Description' translate=True
  • number Char
    required=True string='Number'
  • sequence Integer
    help='Gives the sequence on company to define priority on license when multiple licenses are available for the same group of service.' string='Sequence'
Public methods (0)

No public methods.

New fields (3)
  • group_extid Integer
    required=True string='Group ID'
  • name Char
    required=True string='Description' translate=True
  • postlogistics_license_ids Many2many → postlogistics.license
    column1='license_id' column2='group_id' comodel_name='postlogistics.license' relation='postlogistics_license_service_groups_rel' string='PostLogistics Franking License'
Public methods (0)

No public methods.

New fields (9)
  • postlogistics_default_label_layout Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'label_layout')] string='Default label layout'
  • postlogistics_default_output_format Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'output_format')] string='Default output format'
  • postlogistics_default_resolution Many2one → delivery.carrier.template.option
    comodel_name='delivery.carrier.template.option' domain=[('postlogistics_type', '=', 'resolution')] string='Default resolution'
  • postlogistics_license_ids One2many → postlogistics.license
    comodel_name='postlogistics.license' inverse_name='company_id' string='PostLogistics Franking License'
  • postlogistics_logo Binary
    help='Optional company logo to show on label.\nIf using an image / logo, please note the following:\n– Image width: 47 mm\n– Image height: 25 mm\n– File size: max. 30 kb\n– File format: GIF or PNG\n– Colour table: indexed colours, max. 200 colours\n– The logo will be printed rotated counter-clockwise by 90°\nWe recommend using a black and white logo for printing in the ZPL2 format.' string='Company Logo on Post labels'
  • postlogistics_office Char
    help='Post office which will receive the shipped goods' string='Domicile Post office'
  • postlogistics_password Char
    args: 'Password'
  • postlogistics_username Char
    args: 'Username'
  • postlogistics_wsdl_url Char
    compute='_get_wsdl_url' string='WSDL URL'
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 (2)
  • generate_shipping_labels(self, package_ids=None)
    @api.multi
    Add label generation for Postlogistics
  • postlogistics_cod_amount(self)
    @api.multi
    Return the Postlogistic Cash on Delivery amount of a picking If the picking delivers the whole sales order, we use the total amount of the sales order. Otherwise, we don't know the value of each picking so we raise an error. The user has to create packages with the cash on delivery price on each package.

New fields (1)
  • postlogistics_manual_cod_amount Float
    help='If the cash on delivery amount for this package is different than the total of the sales order, write the amount there.' string='Postlogistics Cash On Delivery Amount'
Public methods (1)
  • postlogistics_cod_amount(self)
    @api.multi
    Return the Postlogistic Cash on Delivery amount of a package If we have only 1 package which delivers the whole sales order we use the total amount of the sales order. Otherwise we don't know the value of each package so we raise an error and the user has to write the prices on the packages. When a price is manually set on a package, it's always used as the cash on delivery amount.
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/7.0/delivery_carrier_label_postlogistics
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYversion
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSYannick Vaucher, Guewen Baconnier, Alexandre Fayolle, Matthieu Dietrich, Joel Grand-Guillaume, Leonardo Pistone, unknown, Launchpad Translations on behalf of stock-logistic-core-editors, Rudolf Schnapka, David Béal, moylop260
WEBSITE
WEBSITEhttp://www.camptocamp.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - base_delivery_carrier_label
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 suds
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
PostLogistics Labels WebService
===============================

Description
-----------

This module uses `PostLogistics BarCodes WebService`_ to generate labels
for your Delivery Orders.

It adds a `Create label` button on Delivery Orders.
A generated label will be an attachement of your Delivery Order.

To see it, please install documents module.

You can create multiple delivery method to match your diffent package types.


Installation
------------

To use this module you need to install suds-jurko library
(A library to manage SOAP calls)

Furthermore, if you want to use the integration server of Postlogistics
you will have to patch this library with the following patch:

https://fedorahosted.org/suds/attachment/ticket/239/suds_recursion.patch

A copy of this patch is available in `patches` folder of this module.


Configuration
-------------

.. important::
   A "Swiss Post Business customer" account is required to use this module.

   See `Swiss Post E-logistics`_


To configure:

* Go to `Configurations -> Settings -> Postlogistics`
* Set your login informations
* launch the Update PostLogistics Services

This will load available services and generate carrier options.

Now you can create a carrier method for PostLogistics WebService:

* First choose a Service group and save
* Add a Mandatory Carrier option using a Basic Service
* Save Carrier Method (this will update filters to show you only
  compatible services)
* Then add other `Optional as default` and `Optional` carrier option
  from listed
* Additional Service and Delivery instructions

.. _PostLogistics BarCodes WebService: http://www.poste.ch/post-startseite/post-geschaeftskunden/post-logistik/post-e-log/post-e-log-webservices.htm
.. _Swiss Post E-logistics: http://www.poste.ch/en/post-startseite/post-geschaeftskunden/post-logistik/post-e-log.htm


Recommended modules
-------------------

* PostLogistics labels - logo per Shop
  If you have multiple shops configure one logo per shop

Technical references
--------------------

`"Barcode" web service documentation`_

.. _"Barcode" web service documentation: http://www.poste.ch/post-barcode-cug.htm


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

* Yannick Vaucher <yannick.vaucher@camptocamp.com>

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
delivery_carrier_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.option field Inherits base_delivery_carrier_label.delivery_carrier_option_view_form
delivery_carrier_template_option_view_form delivery_base.delivery_carrier_option.view_form delivery.carrier.template.option field Inherits base_delivery_carrier_label.delivery_carrier_template_option_view_form
delivery_carrier_template_option_view_tree delivery_base.delivery_carrier_template_option.view_tree delivery.carrier.template.option field Inherits base_delivery_carrier_label.delivery_carrier_template_option_view_tree
view_delivery_carrier_form delivery_base.delivery.carrier.view_form delivery.carrier field Inherits base_delivery_carrier_label.view_delivery_carrier_form
view_picking_in_form delivery.stock.picking.in.form stock.picking.in field Inherits base_delivery_carrier_label.view_picking_in_form
view_picking_out_form delivery.stock.picking.out.form stock.picking.out field Inherits base_delivery_carrier_label.view_picking_out_form
view_postlogistics_config_settings postlogistics settings postlogistics.config.settings form New
Models touched (11)

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 (4)
  • assign_licenses_to_service_groups(self, cr, uid, ids, context=None)
    Check all licenses to assign it to PostLogistics service groups
  • create(self, cr, uid, values, context=None)
  • onchange_company_id(self, cr, uid, ids, company_id, context=None)
  • update_postlogistics_options(self, cr, uid, ids, context=None)
    This action will update all postlogistics option by importing services from PostLogistics WebService API The object we create are 'delivey.carrier.template.option'

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 (1)
  • generate_shipping_labels(self, cr, uid, ids, tracking_ids=None, context=None)
    Add label generation for Postlogistics

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.