Delivery DHL Parcel

delivery_dhl_parcel
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/19.0/delivery_dhl_parcel
VERSION
VERSION
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, sergio, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:46
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_package_number
    - delivery_state
odoo/odoo:
    - stock_delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - delivery
    - payment_custom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Este módulo integra la API de DHL Parcel con Odoo. No es válido para
otras integraciones de DHL como el Express, que usan otras APIs.

IMPORTANTE: Hay varias APIs distintas para DHL España y DHL Parcel, esta
API solo funciona para una de ellas. Para notificar y pedir las
credenciales correctas a tu comercial de integración, se puede pasar el
documento que hay en /doc para indicar exactamente cuál es la API que se
quiere usar. El formato de las credenciales que se usan en esta es el
siguiente:

Usuario: 11000000EMPRESA Pass: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Puede que acepte algún otro, pero no puedo verificarlo.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
delivery_endday_wizard_form dhl.parcel.endday.wizard form New
view_delivery_carrier_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
Models touched (4)

New fields (13)
  • delivery_type Selection
    ondelete={'dhl_parcel': 'set default'} selection_add=[('dhl_parcel', 'DHL Parcel')]
  • dhl_parcel_cash_on_delivery Boolean
    help='If checked, it means that the carrier is paid with cash. It assumes there is a sale order linked and it will use that total amount as the value to be paid. It will also exclude this carrier from the e-commerce checkout.' string='Cash on delivery DHL'
  • dhl_parcel_customer_code Char
    string='DHL Parcel customer code'
  • dhl_parcel_incoterm Selection
    selection=DHL_PARCEL_INCOTERMS_STATIC string='DHL Parcel incoterms'
  • dhl_parcel_insurance Boolean
    help='If checked, the shipment will be declared as insured. It assumes there is a sale order linked and it will use the picking lines total as the declared insurance value.' string='Insured shipment'
  • dhl_parcel_insurance_expenses Selection
    default='P' selection=[('P', 'Paid by sender'), ('D', 'Paid by recipient')] string='Insurance expenses'
  • dhl_parcel_label_format Selection
    default='PDF' selection=[('PDF', 'PDF'), ('ZPL', 'ZPL'), ('EPL', 'EPL')] string='Label format'
  • dhl_parcel_last_end_day_report Binary
    string='DHL Parcel last manual end day report'
  • dhl_parcel_last_end_day_report_name Char
    string='Filename'
  • dhl_parcel_password Char
    string='DHL Parcel Password'
  • dhl_parcel_pre_1330 Boolean
    help='Activates Feature 714 for Pre 13:30 time-definite delivery.' string='Pre 13:30'
  • dhl_parcel_product Selection
    help='If the product is not specified, it is considered B2B' selection=[('B2B', 'B2B Product'), ('B2C', 'B2C Product')] string='DHL Product'
  • dhl_parcel_uid Char
    string='DHL Parcel UID'
Public methods (9)
  • action_open_end_day(self)
    Action to launch the end day wizard
  • dhl_parcel_cancel_shipment(self, pickings)
    Cancel the expedition
  • dhl_parcel_get_label(self, carrier_tracking_ref)
    Generate label for picking :param str carrier_tracking_ref - tracking reference :returns base64 encoded label
  • dhl_parcel_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • dhl_parcel_hold_shipment(self, carrier_tracking_ref)
    Hold shipment :param str carrier_tracking_ref - tracking reference :returns boolean
  • dhl_parcel_rate_shipment(self, order)
    Not implemented with DHL, these values are so it works with websites
  • dhl_parcel_release_shipment(self, carrier_tracking_ref)
    Release shipment :param str carrier_tracking_ref - tracking reference :returns boolean
  • dhl_parcel_send_shipping(self, pickings)
    Send the package to DHL Parcel :param pickings: A recordset of pickings :return list: A list of dictionaries although in practice it's called one by one and only the first item in the dict is taken. Due to this design, we have to inject vals in the context to be able to add them to the message.
  • dhl_parcel_tracking_state_update(self, picking)
    Tracking state update

New fields (3)
  • all_customer_accounts Boolean
    string='All customer accounts'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'dhl_parcel')] required=True string='DHL Parcel Service'
  • customer_accounts Char
    help="If doing multiple, input them separated by commas without spaces.\ni.e. '001-000001,002-000002'\nYou can also use 'ALL' to end all of them" string='Customer codes to end day for'
Public methods (1)
  • button_end_day(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • dhl_parcel_shipment_held Boolean
    string='DHL Parcel shipment on hold'
Public methods (2)
  • dhl_parcel_get_label(self)
    Get DHL Parcel Label for this picking expedition
  • dhl_parcel_toggle_hold_shipment(self)
    Toggle between holding and releasing the DHL Parcel shipment
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/18.0/delivery_dhl_parcel
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, oca-ci, AlexGarS73
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_package_number
    - delivery_state
odoo/odoo:
    - stock_delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - 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
Este módulo integra la API de DHL Parcel con Odoo. No es válido para
otras integraciones de DHL como el Express, que usan otras APIs.

IMPORTANTE: Hay varias APIs distintas para DHL España y DHL Parcel, esta
API solo funciona para una de ellas. Para notificar y pedir las
credenciales correctas a tu comercial de integración, se puede pasar el
documento que hay en /doc para indicar exactamente cuál es la API que se
quiere usar. El formato de las credenciales que se usan en esta es el
siguiente:

Usuario: 11000000EMPRESA Pass: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Puede que acepte algún otro, pero no puedo verificarlo.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
delivery_endday_wizard_form dhl.parcel.endday.wizard form New
view_delivery_carrier_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
Models touched (4)

New fields (13)
  • delivery_type Selection
    ondelete={'dhl_parcel': 'set default'} selection_add=[('dhl_parcel', 'DHL Parcel')]
  • dhl_parcel_cash_on_delivery Boolean
    help='If checked, it means that the carrier is paid with cash. It assumes there is a sale order linked and it will use that total amount as the value to be paid. It will also exclude this carrier from the e-commerce checkout.' string='Cash on delivery DHL'
  • dhl_parcel_customer_code Char
    string='DHL Parcel customer code'
  • dhl_parcel_incoterm Selection
    selection=DHL_PARCEL_INCOTERMS_STATIC string='DHL Parcel incoterms'
  • dhl_parcel_insurance Boolean
    help='If checked, the shipment will be declared as insured. It assumes there is a sale order linked and it will use the picking lines total as the declared insurance value.' string='Insured shipment'
  • dhl_parcel_insurance_expenses Selection
    default='P' selection=[('P', 'Paid by sender'), ('D', 'Paid by recipient')] string='Insurance expenses'
  • dhl_parcel_label_format Selection
    default='PDF' selection=[('PDF', 'PDF'), ('ZPL', 'ZPL'), ('EPL', 'EPL')] string='Label format'
  • dhl_parcel_last_end_day_report Binary
    string='DHL Parcel last manual end day report'
  • dhl_parcel_last_end_day_report_name Char
    string='Filename'
  • dhl_parcel_password Char
    string='DHL Parcel Password'
  • dhl_parcel_pre_1330 Boolean
    help='Activates Feature 714 for Pre 13:30 time-definite delivery.' string='Pre 13:30'
  • dhl_parcel_product Selection
    help='If the product is not specified, it is considered B2B' selection=[('B2B', 'B2B Product'), ('B2C', 'B2C Product')] string='DHL Product'
  • dhl_parcel_uid Char
    string='DHL Parcel UID'
Public methods (9)
  • action_open_end_day(self)
    Action to launch the end day wizard
  • dhl_parcel_cancel_shipment(self, pickings)
    Cancel the expedition
  • dhl_parcel_get_label(self, carrier_tracking_ref)
    Generate label for picking :param str carrier_tracking_ref - tracking reference :returns base64 encoded label
  • dhl_parcel_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • dhl_parcel_hold_shipment(self, carrier_tracking_ref)
    Hold shipment :param str carrier_tracking_ref - tracking reference :returns boolean
  • dhl_parcel_rate_shipment(self, order)
    Not implemented with DHL, these values are so it works with websites
  • dhl_parcel_release_shipment(self, carrier_tracking_ref)
    Release shipment :param str carrier_tracking_ref - tracking reference :returns boolean
  • dhl_parcel_send_shipping(self, pickings)
    Send the package to DHL Parcel :param pickings: A recordset of pickings :return list: A list of dictionaries although in practice it's called one by one and only the first item in the dict is taken. Due to this design, we have to inject vals in the context to be able to add them to the message.
  • dhl_parcel_tracking_state_update(self, picking)
    Tracking state update

New fields (3)
  • all_customer_accounts Boolean
    string='All customer accounts'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'dhl_parcel')] required=True string='DHL Parcel Service'
  • customer_accounts Char
    help="If doing multiple, input them separated by commas without spaces.\ni.e. '001-000001,002-000002'\nYou can also use 'ALL' to end all of them" string='Customer codes to end day for'
Public methods (1)
  • button_end_day(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • dhl_parcel_shipment_held Boolean
    string='DHL Parcel shipment on hold'
Public methods (2)
  • dhl_parcel_get_label(self)
    Get DHL Parcel Label for this picking expedition
  • dhl_parcel_toggle_hold_shipment(self)
    Toggle between holding and releasing the DHL Parcel shipment
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/17.0/delivery_dhl_parcel
VERSION
VERSION 2.0.3
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, Ethan Hildick, Isaac Gallart Bochons, oca-ci, david-s73, cristina-hidalgo-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:19:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_package_number
    - delivery_state
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
Este módulo integra la API de DHL Parcel con Odoo. No es válido para
otras integraciones de DHL como el Express, que usan otras APIs.

IMPORTANTE: Hay varias APIs distintas para DHL España y DHL Parcel, esta
API solo funciona para una de ellas. Para notificar y pedir las
credenciales correctas a tu comercial de integración, se puede pasar el
documento que hay en /doc para indicar exactamente cuál es la API que se
quiere usar. El formato de las credenciales que se usan en esta es el
siguiente:

Usuario: 11000000EMPRESA Pass: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Puede que acepte algún otro, pero no puedo verificarlo.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
delivery_endday_wizard_form dhl.parcel.endday.wizard form New
view_delivery_carrier_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
Models touched (4)

New fields (13)
  • delivery_type Selection
    ondelete={'dhl_parcel': 'set default'} selection_add=[('dhl_parcel', 'DHL Parcel')]
  • dhl_parcel_cash_on_delivery Boolean
    help='If checked, it means that the carrier is paid with cash. It assumes there is a sale order linked and it will use that total amount as the value to be paid. It will also exclude this carrier from the e-commerce checkout.' string='Cash on delivery'
  • dhl_parcel_customer_code Char
    string='DHL Parcel customer code'
  • dhl_parcel_incoterm Selection
    selection=DHL_PARCEL_INCOTERMS_STATIC string='DHL Parcel incoterms'
  • dhl_parcel_insurance Boolean
    help='If checked, the shipment will be declared as insured. It assumes there is a sale order linked and it will use the picking lines total as the declared insurance value.' string='Insured shipment'
  • dhl_parcel_insurance_expenses Selection
    default='P' selection=[('P', 'Paid by sender'), ('D', 'Paid by recipient')] string='Insurance expenses'
  • dhl_parcel_label_format Selection
    default='PDF' selection=[('PDF', 'PDF'), ('ZPL', 'ZPL'), ('EPL', 'EPL')] string='Label format'
  • dhl_parcel_last_end_day_report Binary
    string='DHL Parcel last manual end day report'
  • dhl_parcel_last_end_day_report_name Char
    string='Filename'
  • dhl_parcel_password Char
    string='DHL Parcel Password'
  • dhl_parcel_pre_1330 Boolean
    help='Activates Feature 714 for Pre 13:30 time-definite delivery.' string='Pre 13:30'
  • dhl_parcel_product Selection
    help='If the product is not specified, it is considered B2B' selection=[('B2B', 'B2B Product'), ('B2C', 'B2C Product')] string='DHL Product'
  • dhl_parcel_uid Char
    string='DHL Parcel UID'
Public methods (9)
  • action_open_end_day(self)
    Action to launch the end day wizard
  • dhl_parcel_cancel_shipment(self, pickings)
    Cancel the expedition
  • dhl_parcel_get_label(self, carrier_tracking_ref)
    Generate label for picking :param str carrier_tracking_ref - tracking reference :returns base64 encoded label
  • dhl_parcel_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • dhl_parcel_hold_shipment(self, carrier_tracking_ref)
    Hold shipment :param str carrier_tracking_ref - tracking reference :returns boolean
  • dhl_parcel_rate_shipment(self, order)
    Not implemented with DHL, these values are so it works with websites
  • dhl_parcel_release_shipment(self, carrier_tracking_ref)
    Release shipment :param str carrier_tracking_ref - tracking reference :returns boolean
  • dhl_parcel_send_shipping(self, pickings)
    Send the package to DHL Parcel :param pickings: A recordset of pickings :return list: A list of dictionaries although in practice it's called one by one and only the first item in the dict is taken. Due to this design, we have to inject vals in the context to be able to add them to the message.
  • dhl_parcel_tracking_state_update(self, picking)
    Tracking state update

New fields (3)
  • all_customer_accounts Boolean
    string='All customer accounts'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'dhl_parcel')] required=True string='DHL Parcel Service'
  • customer_accounts Char
    help="If doing multiple, input them separated by commas without spaces.\ni.e. '001-000001,002-000002'\nYou can also use 'ALL' to end all of them" string='Customer codes to end day for'
Public methods (1)
  • button_end_day(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • dhl_parcel_shipment_held Boolean
    string='DHL Parcel shipment on hold'
Public methods (2)
  • dhl_parcel_get_label(self)
    Get DHL Parcel Label for this picking expedition
  • dhl_parcel_toggle_hold_shipment(self)
    Toggle between holding and releasing the DHL Parcel shipment
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/15.0/delivery_dhl_parcel
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, David, Ethan Hildick, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_package_number
    - delivery_state
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 (3)
XML IDNameModelTypeStatus
delivery_endday_wizard_form dhl.parcel.endday.wizard form New
view_delivery_carrier_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
Models touched (4)

New fields (10)
  • delivery_type Selection
    ondelete={'dhl_parcel': 'set default'} selection_add=[('dhl_parcel', 'DHL Parcel')]
  • dhl_parcel_cash_on_delivery Boolean
    help='If checked, it means that the carrier is paid with cash. It assumes there is a sale order linked and it will use that total amount as the value to be paid. It will also exclude this carrier from the e-commerce checkout.' string='Cash on delivery'
  • dhl_parcel_customer_code Char
    string='DHL Parcel customer code'
  • dhl_parcel_incoterm Selection
    selection=DHL_PARCEL_INCOTERMS_STATIC string='DHL Parcel incoterms'
  • dhl_parcel_label_format Selection
    default='PDF' selection=[('PDF', 'PDF'), ('ZPL', 'ZPL'), ('EPL', 'EPL')] string='Label format'
  • dhl_parcel_last_end_day_report Binary
    string='DHL Parcel last manual end day report'
  • dhl_parcel_last_end_day_report_name Char
    string='Filename'
  • dhl_parcel_password Char
    string='DHL Parcel Password'
  • dhl_parcel_product Selection
    help='If the product is not specified, it is considered B2B' selection=[('B2B', 'B2B Product'), ('B2C', 'B2C Product')] string='DHL Product'
  • dhl_parcel_uid Char
    string='DHL Parcel UID'
Public methods (9)
  • action_open_end_day(self)
    Action to launch the end day wizard
  • dhl_parcel_cancel_shipment(self, pickings)
    Cancel the expedition
  • dhl_parcel_get_label(self, carrier_tracking_ref)
    Generate label for picking :param str carrier_tracking_ref - tracking reference :returns base64 encoded label
  • dhl_parcel_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • dhl_parcel_hold_shipment(self, carrier_tracking_ref)
    Hold shipment :param str carrier_tracking_ref - tracking reference :returns boolean
  • dhl_parcel_rate_shipment(self, order)
    Not implemented with DHL, these values are so it works with websites
  • dhl_parcel_release_shipment(self, carrier_tracking_ref)
    Release shipment :param str carrier_tracking_ref - tracking reference :returns boolean
  • dhl_parcel_send_shipping(self, pickings)
    Send the package to DHL Parcel :param pickings: A recordset of pickings :return list: A list of dictionaries although in practice it's called one by one and only the first item in the dict is taken. Due to this design, we have to inject vals in the context to be able to add them to the message.
  • dhl_parcel_tracking_state_update(self, picking)
    Tracking state update

New fields (3)
  • all_customer_accounts Boolean
    string='All customer accounts'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'dhl_parcel')] required=True string='DHL Parcel Service'
  • customer_accounts Char
    help="If doing multiple, input them separated by commas without spaces.\ni.e. '001-000001,002-000002'\nYou can also use 'ALL' to end all of them" string='Customer codes to end day for'
Public methods (1)
  • button_end_day(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • dhl_parcel_shipment_held Boolean
    string='DHL Parcel shipment on hold'
Public methods (2)
  • dhl_parcel_get_label(self)
    Get DHL Parcel Label for this picking expedition
  • dhl_parcel_toggle_hold_shipment(self)
    Toggle between holding and releasing the DHL Parcel shipment
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/14.0/delivery_dhl_parcel
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73
COMMITTERS
COMMITTERSOCA Transbot, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, Ethan Hildick, oca-ci, Ioan Galan
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_package_number
    - delivery_state
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 (3)
XML IDNameModelTypeStatus
delivery_endday_wizard_form dhl.parcel.endday.wizard form New
view_delivery_carrier_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
Models touched (4)

New fields (10)
  • delivery_type Selection
    ondelete={'dhl_parcel': 'set default'} selection_add=[('dhl_parcel', 'DHL Parcel')]
  • dhl_parcel_cash_on_delivery Boolean
    help='If checked, it means that the carrier is paid with cash. It assumes there is a sale order linked and it will use that total amount as the value to be paid. It will also exclude this carrier from the e-commerce checkout.' string='Cash on delivery'
  • dhl_parcel_customer_code Char
    string='DHL Parcel customer code'
  • dhl_parcel_incoterm Selection
    selection=DHL_PARCEL_INCOTERMS_STATIC string='DHL Parcel incoterms'
  • dhl_parcel_label_format Selection
    default='PDF' selection=[('PDF', 'PDF'), ('ZPL', 'ZPL'), ('EPL', 'EPL')] string='Label format'
  • dhl_parcel_last_end_day_report Binary
    string='DHL Parcel last manual end day report'
  • dhl_parcel_last_end_day_report_name Char
    string='Filename'
  • dhl_parcel_password Char
    string='DHL Parcel Password'
  • dhl_parcel_product Selection
    help='If the product is not specified, it is considered B2B' selection=[('B2B', 'B2B Product'), ('B2C', 'B2C Product')] string='DHL Product'
  • dhl_parcel_uid Char
    string='DHL Parcel UID'
Public methods (9)
  • action_open_end_day(self)
    Action to launch the end day wizard
  • dhl_parcel_cancel_shipment(self, pickings)
    Cancel the expedition
  • dhl_parcel_get_label(self, carrier_tracking_ref, label_format='pdf')
    Generate label for picking :param str carrier_tracking_ref - tracking reference :returns base64 encoded label
  • dhl_parcel_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • dhl_parcel_hold_shipment(self, carrier_tracking_ref)
    Hold shipment :param str carrier_tracking_ref - tracking reference :returns boolean
  • dhl_parcel_rate_shipment(self, order)
    Not implemented with DHL, these values are so it works with websites
  • dhl_parcel_release_shipment(self, carrier_tracking_ref)
    Release shipment :param str carrier_tracking_ref - tracking reference :returns boolean
  • dhl_parcel_send_shipping(self, pickings)
    Send the package to DHL Parcel :param pickings: A recordset of pickings :return list: A list of dictionaries although in practice it's called one by one and only the first item in the dict is taken. Due to this design, we have to inject vals in the context to be able to add them to the message.
  • dhl_parcel_tracking_state_update(self, picking)
    Tracking state update

New fields (3)
  • all_customer_accounts Boolean
    string='All customer accounts'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'dhl_parcel')] required=True string='DHL Parcel Service'
  • customer_accounts Char
    help="If doing multiple, input them separated by commas without spaces.\ni.e. '001-000001,002-000002'\nYou can also use 'ALL' to end all of them" string='Customer codes to end day for'
Public methods (1)
  • button_end_day(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • dhl_parcel_shipment_held Boolean
    string='DHL Parcel shipment on hold'
Public methods (2)
  • dhl_parcel_get_label(self, label_format='pdf')
    Get DHL Parcel Label for this picking expedition
  • dhl_parcel_toggle_hold_shipment(self)
    Toggle between holding and releasing the DHL Parcel shipment
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/13.0/delivery_dhl_parcel
VERSION
VERSION 1.3.4
CATEGORY
CATEGORYDelivery
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73
COMMITTERS
COMMITTERSVíctor Martínez, oca-travis, OCA-git-bot, Ethan Hildick, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/delivery-carrier:
    - delivery_package_number
    - delivery_state
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 (3)
XML IDNameModelTypeStatus
delivery_endday_wizard_form dhl.parcel.endday.wizard form New
view_delivery_carrier_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
Models touched (3)

New fields (9)
  • delivery_type Selection
    selection_add=[('dhl_parcel', 'DHL Parcel')]
  • dhl_parcel_customer_code Char
    string='DHL Parcel customer code'
  • dhl_parcel_incoterm Selection
    selection=DHL_PARCEL_INCOTERMS_STATIC string='DHL Parcel incoterms'
  • dhl_parcel_label_format Selection
    default='PDF' selection=[('PDF', 'PDF'), ('ZPL', 'ZPL'), ('EPL', 'EPL')] string='Label format'
  • dhl_parcel_last_end_day_report Binary
    string='DHL Parcel last manual end day report'
  • dhl_parcel_last_end_day_report_name Char
    string='Filename'
  • dhl_parcel_password Char
    string='DHL Parcel Password'
  • dhl_parcel_product Selection
    help='If the product is not specified, it is considered B2B' selection=[('B2B', 'B2B Product'), ('B2C', 'B2C Product')] string='DHL Product'
  • dhl_parcel_uid Char
    string='DHL Parcel UID'
Public methods (9)
  • action_open_end_day(self)
    Action to launch the end day wizard
  • dhl_parcel_cancel_shipment(self, pickings)
    Cancel the expedition
  • dhl_parcel_get_label(self, carrier_tracking_ref, label_format='pdf')
    Generate label for picking :param str carrier_tracking_ref - tracking reference :returns base64 encoded label
  • dhl_parcel_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • dhl_parcel_hold_shipment(self, carrier_tracking_ref)
    Hold shipment :param str carrier_tracking_ref - tracking reference :returns boolean
  • dhl_parcel_rate_shipment(self, order)
    Not implemented with DHL, these values are so it works with websites
  • dhl_parcel_release_shipment(self, carrier_tracking_ref)
    Release shipment :param str carrier_tracking_ref - tracking reference :returns boolean
  • dhl_parcel_send_shipping(self, pickings)
    Send the package to DHL Parcel :param pickings: A recordset of pickings :return list: A list of dictionaries although in practice it's called one by one and only the first item in the dict is taken. Due to this design, we have to inject vals in the context to be able to add them to the message.
  • dhl_parcel_tracking_state_update(self, picking)
    Tracking state update

New fields (3)
  • all_customer_accounts Boolean
    string='All customer accounts'
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'dhl_parcel')] required=True string='DHL Parcel Service'
  • customer_accounts Char
    help="If doing multiple, input them separated by commas without spaces.\ni.e. '001-000001,002-000002'\nYou can also use 'ALL' to end all of them" string='Customer codes to end day for'
Public methods (1)
  • button_end_day(self)

New fields (1)
  • dhl_parcel_shipment_held Boolean
    string='DHL Parcel shipment on hold'
Public methods (2)
  • dhl_parcel_get_label(self, label_format='pdf')
    Get DHL Parcel Label for this picking expedition
  • dhl_parcel_toggle_hold_shipment(self)
    Toggle between holding and releasing the DHL Parcel shipment