Delivery GLS-ASM

delivery_gls_asm
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_gls_asm
VERSION
VERSION 1.1.3
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, Carlos Lopez, sergio-teruel, Weblate, OCA-git-bot, Ethan Hildick, oca-ci, arantxa-s73, Ricard Calvo
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 suds-py3
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Este módulo integra la API de GLS España (antigua API de ASM) con Odoo.
No es válido para integraciones de GLS en otros países, que podrían usar
otras APIs.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
delivery_manifest_wizard_form gls.asm.minifest.wizard form New
gls_asm_manifest_report_view gls_asm_manifest_report_view ir.ui.view qweb New
view_delivery_carrier_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_form stock.picking xpath Inherits stock_delivery.view_picking_withcarrier_out_form
view_picking_gls_form stock.picking xpath Inherits stock.view_picking_form
view_picking_withcarrier_out_form stock.picking xpath Inherits delivery_state.view_picking_withcarrier_out_form
Models touched (3)

New fields (8)
  • delivery_type Selection
    ondelete={'gls_asm': 'set default'} selection_add=[('gls_asm', 'GLS ASM')]
  • gls_asm_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' string='Cash on delivery'
  • gls_asm_postage_type Selection
    default='P' help="Postage type, usually 'Prepaid'" selection=GLS_POSTAGE_TYPE string='Postage Type'
  • gls_asm_service Selection
    default='1' help='Set the contracted GLS Service' selection=GLS_ASM_SERVICES string='GLS Service'
  • gls_asm_shiptime Selection
    default='0' help='Set the desired GLS shipping time for this carrier' selection=GLS_SHIPPING_TIMES string='Shipping Time'
  • gls_asm_uid Char
    string='GLS UID'
  • gls_asm_with_return Boolean
    help="Check this field to mark the delivery as 'With return'. This means that the customer receiving the delivery also has a package to return." string='GLS/ASM With return'
  • gls_is_pickup_service Boolean
    compute='_compute_gls_pickup_service' help='Checked if this service is used for pickups' string='Pick-up service'
Public methods (8)
  • action_get_manifest(self)
    Action to launch the manifest wizard
  • gls_asm_cancel_shipment(self, pickings)
    Cancel the expedition
  • gls_asm_get_label(self, gls_asm_public_tracking_ref)
    Generate label for picking :param picking - stock.picking record :returns pdf file
  • gls_asm_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • gls_asm_rate_shipment(self, order)
    There's no public API so another price method should be used Not implemented with GLS-ASM, these values are so it works with websites
  • gls_asm_send_pickup(self, pickings)
    Send the request to GLS to pick a package up :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.
  • gls_asm_send_shipping(self, pickings)
    Send the package to GLS :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.
  • gls_asm_tracking_state_update(self, picking)
    Tracking state update

New fields (2)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'gls_asm')] required=True string='GLS Service'
  • date_from Date
    default=fields.Date.context_today required=True
Public methods (2)
  • get_manifest(self)
  • get_manifest_domain(self)

New fields (6)
  • gls_asm_picking_ref Char
    copy=False string='GLS Picking Reference'
  • gls_asm_public_tracking_ref Char
    copy=False string='GLS Barcode'
  • gls_carrier_is_pickup_service Boolean
    related='carrier_id.gls_is_pickup_service'
  • gls_pickup_state Selection
    copy=False selection=[('recorded', 'Solicitada'), ('received', 'Recibida'), ('assigned', 'Asignada'), ('picked_up_customer', 'Recogido en Cliente'), ('picked_up_agency', 'Recepcionada en Agencia'), ('done', 'Realizada con éxito'), ('not_done', 'No Realizada'), ('incidence', 'Realizada con Incidencia'), ('cancel', 'Anulada'), ('preconfirm', 'A preconfirmar'), ('pending', 'Pendiente Gestión'), ('closed', 'Cerrado'), ('pending_auth', 'Pending Autorización'), ('closed_final', 'Cerrado Definitivo')] string='Estado recogida GLS'
  • gls_shipment_state Selection
    copy=False selection=[('recorded', 'Grabado'), ('manifested', 'Manifestada'), ('transit', 'En tránsito al destino'), ('agency_transit', 'En delegación destino'), ('closed', 'Cerrado por siniestro'), ('cancel', 'Anualada'), ('shipping', 'En reparto'), ('delivered', 'Entregado'), ('partially_delivered', 'Entrega parcial'), ('warehouse', 'Almacenado'), ('return_agency', 'Devuelta'), ('pending', 'Pendiente datos en delegación'), ('held', 'Pendiente autorización'), ('incidence', 'Con incidencia'), ('closed_final', 'Cerrado definitivo'), ('preconfirmed', 'Preconfirmada enrega'), ('cancel_returned', 'Entrega anulada (devuelta)'), ('return_customer', 'Devuelta al cliente'), ('possible_return', 'Posible devolución'), ('requested_return', 'Solicitud de devolución'), ('returning', 'En devolución'), ('origin', 'En delegación origen'), ('destroyed', 'Destruido por orden del cliente'), ('held_order', 'Retenido por orden de paga'), ('in_platform', 'En plataforma de destino'), ('extinguished', 'Recanalizada (A extinguir)'), ('parcelshop', 'Entregado en ASM PARCELSHOP'), ('parcelshop_confirm', 'ASM PARCELSHOP CONFIRMA RECEPCIÓN')] string='Estado envío GLS'
  • gls_shipping_notes Text
    string='Notas de envío GLS'
Public methods (2)
  • gls_asm_get_label(self)
    Get GLS Label for this picking expedition
  • gls_asm_send_pickup(self)
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_gls_asm
VERSION
VERSION 1.0.4
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, sergio-teruel, OCA-git-bot, Ethan Hildick, oca-ci, david-s73, sygel
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 suds-py3
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Este módulo integra la API de GLS España (antigua API de ASM) con Odoo.
No es válido para integraciones de GLS en otros países, que podrían usar
otras APIs.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
delivery_manifest_wizard_form gls.asm.minifest.wizard form New
gls_asm_manifest_report_view gls_asm_manifest_report_view ir.ui.view qweb New
view_delivery_carrier_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_form stock.picking xpath Inherits stock_delivery.view_picking_withcarrier_out_form
view_picking_gls_form stock.picking xpath Inherits stock.view_picking_form
view_picking_withcarrier_out_form stock.picking xpath Inherits delivery_state.view_picking_withcarrier_out_form
Models touched (3)

New fields (8)
  • delivery_type Selection
    ondelete={'gls_asm': 'set default'} selection_add=[('gls_asm', 'GLS ASM')]
  • gls_asm_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' string='Cash on delivery'
  • gls_asm_postage_type Selection
    default='P' help="Postage type, usually 'Prepaid'" selection=GLS_POSTAGE_TYPE string='Postage Type'
  • gls_asm_service Selection
    default='1' help='Set the contracted GLS Service' selection=GLS_ASM_SERVICES string='GLS Service'
  • gls_asm_shiptime Selection
    default='0' help='Set the desired GLS shipping time for this carrier' selection=GLS_SHIPPING_TIMES string='Shipping Time'
  • gls_asm_uid Char
    string='GLS UID'
  • gls_asm_with_return Boolean
    help="Check this field to mark the delivery as 'With return'. This means that the customer receiving the delivery also has a package to return." string='GLS/ASM With return'
  • gls_is_pickup_service Boolean
    compute='_compute_gls_pickup_service' help='Checked if this service is used for pickups' string='Pick-up service'
Public methods (8)
  • action_get_manifest(self)
    Action to launch the manifest wizard
  • gls_asm_cancel_shipment(self, pickings)
    Cancel the expedition
  • gls_asm_get_label(self, gls_asm_public_tracking_ref)
    Generate label for picking :param picking - stock.picking record :returns pdf file
  • gls_asm_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • gls_asm_rate_shipment(self, order)
    There's no public API so another price method should be used Not implemented with GLS-ASM, these values are so it works with websites
  • gls_asm_send_pickup(self, pickings)
    Send the request to GLS to pick a package up :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.
  • gls_asm_send_shipping(self, pickings)
    Send the package to GLS :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.
  • gls_asm_tracking_state_update(self, picking)
    Tracking state update

New fields (2)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'gls_asm')] required=True string='GLS Service'
  • date_from Date
    default=fields.Date.context_today required=True
Public methods (2)
  • get_manifest(self)
  • get_manifest_domain(self)

New fields (6)
  • gls_asm_picking_ref Char
    copy=False string='GLS Picking Reference'
  • gls_asm_public_tracking_ref Char
    copy=False string='GLS Barcode'
  • gls_carrier_is_pickup_service Boolean
    related='carrier_id.gls_is_pickup_service'
  • gls_pickup_state Selection
    copy=False selection=[('recorded', 'Solicitada'), ('received', 'Recibida'), ('assigned', 'Asignada'), ('picked_up_customer', 'Recogido en Cliente'), ('picked_up_agency', 'Recepcionada en Agencia'), ('done', 'Realizada con éxito'), ('not_done', 'No Realizada'), ('incidence', 'Realizada con Incidencia'), ('cancel', 'Anulada'), ('preconfirm', 'A preconfirmar'), ('pending', 'Pendiente Gestión'), ('closed', 'Cerrado'), ('pending_auth', 'Pending Autorización'), ('closed_final', 'Cerrado Definitivo')] string='Estado recogida GLS'
  • gls_shipment_state Selection
    copy=False selection=[('recorded', 'Grabado'), ('manifested', 'Manifestada'), ('transit', 'En tránsito al destino'), ('agency_transit', 'En delegación destino'), ('closed', 'Cerrado por siniestro'), ('cancel', 'Anualada'), ('shipping', 'En reparto'), ('delivered', 'Entregado'), ('partially_delivered', 'Entrega parcial'), ('warehouse', 'Almacenado'), ('return_agency', 'Devuelta'), ('pending', 'Pendiente datos en delegación'), ('held', 'Pendiente autorización'), ('incidence', 'Con incidencia'), ('closed_final', 'Cerrado definitivo'), ('preconfirmed', 'Preconfirmada enrega'), ('cancel_returned', 'Entrega anulada (devuelta)'), ('return_customer', 'Devuelta al cliente'), ('possible_return', 'Posible devolución'), ('requested_return', 'Solicitud de devolución'), ('returning', 'En devolución'), ('origin', 'En delegación origen'), ('destroyed', 'Destruido por orden del cliente'), ('held_order', 'Retenido por orden de paga'), ('in_platform', 'En plataforma de destino'), ('extinguished', 'Recanalizada (A extinguir)'), ('parcelshop', 'Entregado en ASM PARCELSHOP'), ('parcelshop_confirm', 'ASM PARCELSHOP CONFIRMA RECEPCIÓN')] string='Estado envío GLS'
  • gls_shipping_notes Text
    string='Notas de envío GLS'
Public methods (2)
  • gls_asm_get_label(self)
    Get GLS Label for this picking expedition
  • gls_asm_send_pickup(self)
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/16.0/delivery_gls_asm
VERSION
VERSION 1.1.5
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, sergio-teruel, Weblate, OCA-git-bot, David, Ethan Hildick, oca-ci, david-s73
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:40
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
    - account_payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES suds-py3
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
delivery_manifest_wizard_form gls.asm.minifest.wizard form New
gls_asm_manifest_report_view gls_asm_manifest_report_view ir.ui.view qweb New
view_delivery_carrier_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_form stock.picking xpath Inherits delivery.view_picking_withcarrier_out_form
view_picking_gls_form stock.picking xpath Inherits stock.view_picking_form
view_picking_withcarrier_out_form stock.picking xpath Inherits delivery_state.view_picking_withcarrier_out_form
Models touched (3)

New fields (8)
  • delivery_type Selection
    ondelete={'gls_asm': 'set default'} selection_add=[('gls_asm', 'GLS ASM')]
  • gls_asm_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' string='Cash on delivery'
  • gls_asm_postage_type Selection
    default='P' help="Postage type, usually 'Prepaid'" selection=GLS_POSTAGE_TYPE string='Postage Type'
  • gls_asm_service Selection
    default='1' help='Set the contracted GLS Service' selection=GLS_ASM_SERVICES string='GLS Service'
  • gls_asm_shiptime Selection
    default='0' help='Set the desired GLS shipping time for this carrier' selection=GLS_SHIPPING_TIMES string='Shipping Time'
  • gls_asm_uid Char
    string='GLS UID'
  • gls_asm_with_return Boolean
    help="Check this field to mark the delivery as 'With return'. This means that the customer receiving the delivery also has a package to return." string='GLS/ASM With return'
  • gls_is_pickup_service Boolean
    compute='_compute_gls_pickup_service' help='Checked if this service is used for pickups' string='Pick-up service'
Public methods (8)
  • action_get_manifest(self)
    Action to launch the manifest wizard
  • gls_asm_cancel_shipment(self, pickings)
    Cancel the expedition
  • gls_asm_get_label(self, gls_asm_public_tracking_ref)
    Generate label for picking :param picking - stock.picking record :returns pdf file
  • gls_asm_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • gls_asm_rate_shipment(self, order)
    There's no public API so another price method should be used Not implemented with GLS-ASM, these values are so it works with websites
  • gls_asm_send_pickup(self, pickings)
    Send the request to GLS to pick a package up :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.
  • gls_asm_send_shipping(self, pickings)
    Send the package to GLS :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.
  • gls_asm_tracking_state_update(self, picking)
    Tracking state update

New fields (2)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'gls_asm')] required=True string='GLS Service'
  • date_from Date
    default=fields.Date.context_today required=True
Public methods (2)
  • get_manifest(self)
  • get_manifest_domain(self)

New fields (6)
  • gls_asm_picking_ref Char
    copy=False readonly=True string='GLS Picking Reference'
  • gls_asm_public_tracking_ref Char
    copy=False readonly=True string='GLS Barcode'
  • gls_carrier_is_pickup_service Boolean
    related='carrier_id.gls_is_pickup_service'
  • gls_pickup_state Selection
    copy=False selection=[('recorded', 'Solicitada'), ('received', 'Recibida'), ('assigned', 'Asignada'), ('picked_up_customer', 'Recogido en Cliente'), ('picked_up_agency', 'Recepcionada en Agencia'), ('done', 'Realizada con éxito'), ('not_done', 'No Realizada'), ('incidence', 'Realizada con Incidencia'), ('cancel', 'Anulada'), ('preconfirm', 'A preconfirmar'), ('pending', 'Pendiente Gestión'), ('closed', 'Cerrado'), ('pending_auth', 'Pending Autorización'), ('closed_final', 'Cerrado Definitivo')] string='Estado recogida GLS'
  • gls_shipment_state Selection
    copy=False selection=[('recorded', 'Grabado'), ('manifested', 'Manifestada'), ('transit', 'En tránsito al destino'), ('agency_transit', 'En delegación destino'), ('closed', 'Cerrado por siniestro'), ('cancel', 'Anualada'), ('shipping', 'En reparto'), ('delivered', 'Entregado'), ('partially_delivered', 'Entrega parcial'), ('warehouse', 'Almacenado'), ('return_agency', 'Devuelta'), ('pending', 'Pendiente datos en delegación'), ('held', 'Pendiente autorización'), ('incidence', 'Con incidencia'), ('closed_final', 'Cerrado definitivo'), ('preconfirmed', 'Preconfirmada enrega'), ('cancel_returned', 'Entrega anulada (devuelta)'), ('return_customer', 'Devuelta al cliente'), ('possible_return', 'Posible devolución'), ('requested_return', 'Solicitud de devolución'), ('returning', 'En devolución'), ('origin', 'En delegación origen'), ('destroyed', 'Destruido por orden del cliente'), ('held_order', 'Retenido por orden de paga'), ('in_platform', 'En plataforma de destino'), ('extinguished', 'Recanalizada (A extinguir)'), ('parcelshop', 'Entregado en ASM PARCELSHOP'), ('parcelshop_confirm', 'ASM PARCELSHOP CONFIRMA RECEPCIÓN')] string='Estado envío GLS'
  • gls_shipping_notes Text
    string='Notas de envío GLS'
Public methods (2)
  • gls_asm_get_label(self)
    Get GLS Label for this picking expedition
  • gls_asm_send_pickup(self)
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_gls_asm
VERSION
VERSION 1.2.4
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, manu, sergio-teruel, Víctor Martínez, Weblate, OCA-git-bot, David, Ethan Hildick, oca-ci, Marian Cuadra
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 suds-py3
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
delivery_manifest_wizard_form gls.asm.minifest.wizard form New
gls_asm_manifest_report_view gls_asm_manifest_report_view ir.ui.view qweb New
view_delivery_carrier_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_form stock.picking xpath Inherits delivery.view_picking_withcarrier_out_form
view_picking_gls_form stock.picking xpath Inherits stock.view_picking_form
view_picking_withcarrier_out_form stock.picking xpath Inherits delivery_state.view_picking_withcarrier_out_form
Models touched (3)

New fields (8)
  • delivery_type Selection
    ondelete={'gls_asm': 'set default'} selection_add=[('gls_asm', 'GLS ASM')]
  • gls_asm_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' string='Cash on delivery'
  • gls_asm_postage_type Selection
    default='P' help="Postage type, usually 'Prepaid'" selection=GLS_POSTAGE_TYPE string='Postage Type'
  • gls_asm_service Selection
    default='1' help='Set the contracted GLS Service' selection=GLS_ASM_SERVICES string='GLS Service'
  • gls_asm_shiptime Selection
    default='0' help='Set the desired GLS shipping time for this carrier' selection=GLS_SHIPPING_TIMES string='Shipping Time'
  • gls_asm_uid Char
    string='GLS UID'
  • gls_asm_with_return Boolean
    help="Check this field to mark the delivery as 'With return'. This means that the customer receiving the delivery also has a package to return." string='GLS/ASM With return'
  • gls_is_pickup_service Boolean
    compute='_compute_gls_pickup_service' help='Checked if this service is used for pickups' string='Pick-up service'
Public methods (8)
  • action_get_manifest(self)
    Action to launch the manifest wizard
  • gls_asm_cancel_shipment(self, pickings)
    Cancel the expedition
  • gls_asm_get_label(self, gls_asm_public_tracking_ref)
    Generate label for picking :param picking - stock.picking record :returns pdf file
  • gls_asm_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • gls_asm_rate_shipment(self, order)
    There's no public API so another price method should be used Not implemented with GLS-ASM, these values are so it works with websites
  • gls_asm_send_pickup(self, pickings)
    Send the request to GLS to pick a package up :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.
  • gls_asm_send_shipping(self, pickings)
    Send the package to GLS :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.
  • gls_asm_tracking_state_update(self, picking)
    Tracking state update

New fields (2)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'gls_asm')] required=True string='GLS Service'
  • date_from Date
    default=fields.Date.context_today required=True
Public methods (2)
  • get_manifest(self)
  • get_manifest_domain(self)

New fields (6)
  • gls_asm_picking_ref Char
    copy=False readonly=True string='GLS Picking Reference'
  • gls_asm_public_tracking_ref Char
    copy=False readonly=True string='GLS Barcode'
  • gls_carrier_is_pickup_service Boolean
    related='carrier_id.gls_is_pickup_service'
  • gls_pickup_state Selection
    copy=False selection=[('recorded', 'Solicitada'), ('received', 'Recibida'), ('assigned', 'Asignada'), ('picked_up_customer', 'Recogido en Cliente'), ('picked_up_agency', 'Recepcionada en Agencia'), ('done', 'Realizada con éxito'), ('not_done', 'No Realizada'), ('incidence', 'Realizada con Incidencia'), ('cancel', 'Anulada'), ('preconfirm', 'A preconfirmar'), ('pending', 'Pendiente Gestión'), ('closed', 'Cerrado'), ('pending_auth', 'Pending Autorización'), ('closed_final', 'Cerrado Definitivo')] string='Estado recogida GLS'
  • gls_shipment_state Selection
    copy=False selection=[('recorded', 'Grabado'), ('manifested', 'Manifestada'), ('transit', 'En tránsito al destino'), ('agency_transit', 'En delegación destino'), ('closed', 'Cerrado por siniestro'), ('cancel', 'Anualada'), ('shipping', 'En reparto'), ('delivered', 'Entregado'), ('partially_delivered', 'Entrega parcial'), ('warehouse', 'Almacenado'), ('return_agency', 'Devuelta'), ('pending', 'Pendiente datos en delegación'), ('held', 'Pendiente autorización'), ('incidence', 'Con incidencia'), ('closed_final', 'Cerrado definitivo'), ('preconfirmed', 'Preconfirmada enrega'), ('cancel_returned', 'Entrega anulada (devuelta)'), ('return_customer', 'Devuelta al cliente'), ('possible_return', 'Posible devolución'), ('requested_return', 'Solicitud de devolución'), ('returning', 'En devolución'), ('origin', 'En delegación origen'), ('destroyed', 'Destruido por orden del cliente'), ('held_order', 'Retenido por orden de paga'), ('in_platform', 'En plataforma de destino'), ('extinguished', 'Recanalizada (A extinguir)'), ('parcelshop', 'Entregado en ASM PARCELSHOP'), ('parcelshop_confirm', 'ASM PARCELSHOP CONFIRMA RECEPCIÓN')] string='Estado envío GLS'
  • gls_shipping_notes Text
    string='Notas de envío GLS'
Public methods (2)
  • gls_asm_get_label(self)
    Get GLS Label for this picking expedition
  • gls_asm_send_pickup(self)
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_gls_asm
VERSION
VERSION 1.8.2
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, Miquel Raïch, sergio-teruel, Weblate, OCA-git-bot, Abraham Anes, David, Ethan Hildick, oca-ci, mariadforgeflow, CarlosRoca13, Berezi, Ioan Galan (Studio73), Reyes4711, david-s73
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:48
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 suds-py3
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
delivery_manifest_wizard_form gls.asm.minifest.wizard form New
gls_asm_manifest_report_view gls_asm_manifest_report_view ir.ui.view qweb New
view_delivery_carrier_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_form stock.picking xpath Inherits delivery.view_picking_withcarrier_out_form
view_picking_gls_form stock.picking xpath Inherits stock.view_picking_form
view_picking_withcarrier_out_form stock.picking xpath Inherits delivery_state.view_picking_withcarrier_out_form
Models touched (3)

New fields (8)
  • delivery_type Selection
    ondelete={'gls_asm': 'set default'} selection_add=[('gls_asm', 'GLS ASM')]
  • gls_asm_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' string='Cash on delivery'
  • gls_asm_postage_type Selection
    default='P' help="Postage type, usually 'Prepaid'" selection=GLS_POSTAGE_TYPE string='Postage Type'
  • gls_asm_service Selection
    default='1' help='Set the contracted GLS Service' selection=GLS_ASM_SERVICES string='GLS Service'
  • gls_asm_shiptime Selection
    default='0' help='Set the desired GLS shipping time for this carrier' selection=GLS_SHIPPING_TIMES string='Shipping Time'
  • gls_asm_uid Char
    string='GLS UID'
  • gls_asm_with_return Boolean
    help="Check this field to mark the delivery as 'With return'. This means that the customer receiving the delivery also has a package to return." string='GLS/ASM With return'
  • gls_is_pickup_service Boolean
    compute='_compute_gls_pickup_service' help='Checked if this service is used for pickups' string='Pick-up service'
Public methods (8)
  • action_get_manifest(self)
    Action to launch the manifest wizard
  • gls_asm_cancel_shipment(self, pickings)
    Cancel the expedition
  • gls_asm_get_label(self, gls_asm_public_tracking_ref)
    Generate label for picking :param picking - stock.picking record :returns pdf file
  • gls_asm_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • gls_asm_rate_shipment(self, order)
    There's no public API so another price method should be used Not implemented with GLS-ASM, these values are so it works with websites
  • gls_asm_send_pickup(self, pickings)
    Send the request to GLS to pick a package up :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.
  • gls_asm_send_shipping(self, pickings)
    Send the package to GLS :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.
  • gls_asm_tracking_state_update(self, picking)
    Tracking state update

New fields (2)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'gls_asm')] required=True string='GLS Service'
  • date_from Date
    default=fields.Date.context_today required=True
Public methods (1)
  • get_manifest(self)
    List of shippings for the given dates as GLS provides them

New fields (6)
  • gls_asm_picking_ref Char
    copy=False readonly=True string='GLS Picking Reference'
  • gls_asm_public_tracking_ref Char
    copy=False readonly=True string='GLS Barcode'
  • gls_carrier_is_pickup_service Boolean
    related='carrier_id.gls_is_pickup_service'
  • gls_pickup_state Selection
    copy=False selection=[('recorded', 'Solicitada'), ('received', 'Recibida'), ('assigned', 'Asignada'), ('picked_up_customer', 'Recogido en Cliente'), ('picked_up_agency', 'Recepcionada en Agencia'), ('done', 'Realizada con éxito'), ('not_done', 'No Realizada'), ('incidence', 'Realizada con Incidencia'), ('cancel', 'Anulada'), ('preconfirm', 'A preconfirmar'), ('pending', 'Pendiente Gestión'), ('closed', 'Cerrado'), ('pending_auth', 'Pending Autorización'), ('closed_final', 'Cerrado Definitivo')] string='Estado recogida GLS'
  • gls_shipment_state Selection
    copy=False selection=[('recorded', 'Grabado'), ('manifested', 'Manifestada'), ('transit', 'En tránsito al destino'), ('agency_transit', 'En delegación destino'), ('closed', 'Cerrado por siniestro'), ('cancel', 'Anualada'), ('shipping', 'En reparto'), ('delivered', 'Entregado'), ('partially_delivered', 'Entrega parcial'), ('warehouse', 'Almacenado'), ('return_agency', 'Devuelta'), ('pending', 'Pendiente datos en delegación'), ('held', 'Pendiente autorización'), ('incidence', 'Con incidencia'), ('closed_final', 'Cerrado definitivo'), ('preconfirmed', 'Preconfirmada enrega'), ('cancel_returned', 'Entrega anulada (devuelta)'), ('return_customer', 'Devuelta al cliente'), ('possible_return', 'Posible devolución'), ('requested_return', 'Solicitud de devolución'), ('returning', 'En devolución'), ('origin', 'En delegación origen'), ('destroyed', 'Destruido por orden del cliente'), ('held_order', 'Retenido por orden de paga'), ('in_platform', 'En plataforma de destino'), ('extinguished', 'Recanalizada (A extinguir)'), ('parcelshop', 'Entregado en ASM PARCELSHOP'), ('parcelshop_confirm', 'ASM PARCELSHOP CONFIRMA RECEPCIÓN')] string='Estado envío GLS'
  • gls_shipping_notes Text
    string='Notas de envío GLS'
Public methods (2)
  • gls_asm_get_label(self)
    Get GLS Label for this picking expedition
  • gls_asm_send_pickup(self)
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_gls_asm
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, david, OCA Transbot, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, David, 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 suds-py3
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
delivery_manifest_wizard_form gls.asm.minifest.wizard form New
gls_asm_manifest_report_view gls_asm_manifest_report_view ir.ui.view qweb New
view_delivery_carrier_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_form stock.picking xpath Inherits stock.view_picking_form
Models touched (3)

New fields (6)
  • delivery_type Selection
    selection_add=[('gls_asm', 'GLS ASM')]
  • gls_asm_postage_type Selection
    default='P' help="Postage type, usually 'Prepaid'" selection=GLS_POSTAGE_TYPE string='Postage Type'
  • gls_asm_service Selection
    default='1' help='Set the contracted GLS Service' selection=GLS_ASM_SERVICES string='GLS Service'
  • gls_asm_shiptime Selection
    default='0' help='Set the desired GLS shipping time for this carrier' selection=GLS_SHIPPING_TIMES string='Shipping Time'
  • gls_asm_uid Char
    string='GLS UID'
  • gls_asm_use_packages_from_picking Boolean
    string='Use packages from picking'
Public methods (7)
  • action_get_manifest(self)
    Action to launch the manifest wizard
  • gls_asm_cancel_shipment(self, pickings)
    Cancel the expedition
  • gls_asm_get_label(self, gls_asm_public_tracking_ref)
    Generate label for picking :param picking - stock.picking record :returns pdf file
  • gls_asm_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • gls_asm_rate_shipment(self, order)
    There's no public API so another price method should be used
  • gls_asm_send_shipping(self, pickings)
    Send the package to GLS :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.
  • gls_asm_tracking_state_update(self, picking)
    Tracking state update

New fields (2)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'gls_asm')] required=True string='GLS Service'
  • date_from Date
    default=fields.Date.context_today required=True
Public methods (1)
  • get_manifest(self)
    List of shippings for the given dates as GLS provides them

New fields (1)
  • gls_asm_public_tracking_ref Char
    copy=False readonly=True string='GLS Barcode'
Public methods (1)
  • gls_asm_get_label(self)
    Get GLS Label for this picking expedition
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/12.0/delivery_gls_asm
VERSION
VERSION 1.0.8
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, david, manu, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Ethan Hildick, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:13
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
    - decimal_precision
    - uom
    - analytic
    - portal
    - http_routing
    - digest
    - stock_account
    - stock
    - barcodes
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES suds
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
delivery_manifest_wizard_form gls.asm.minifest.wizard form New
gls_asm_manifest_report_view gls_asm_manifest_report_view ir.ui.view qweb New
view_delivery_carrier_form delivery.carrier xpath Inherits delivery.view_delivery_carrier_form
view_picking_form stock.picking xpath Inherits stock.view_picking_form
Models touched (3)

New fields (7)
  • delivery_type Selection
    selection_add=[('gls_asm', 'GLS ASM')]
  • gls_asm_postage_type Selection
    default='P' help="Postage type, usually 'Prepaid'" selection=GLS_POSTAGE_TYPE string='Postage Type'
  • gls_asm_service Selection
    default='1' help='Set the contracted GLS Service' selection=GLS_ASM_SERVICES string='GLS Service'
  • gls_asm_shiptime Selection
    default='0' help='Set the desired GLS shipping time for this carrier' selection=GLS_SHIPPING_TIMES string='Shipping Time'
  • gls_asm_uid Char
    string='GLS UID'
  • gls_last_request Text
    help='Used for issues debugging' readonly=True string='Last GLS xml request'
  • gls_last_response Text
    help='Used for issues debugging' readonly=True string='Last GLS xml response'
Public methods (7)
  • action_get_manifest(self)
    Action to launch the manifest wizard
  • gls_asm_cancel_shipment(self, pickings)
    Cancel the expedition
  • gls_asm_get_label(self, gls_asm_public_tracking_ref)
    Generate label for picking :param picking - stock.picking record :returns pdf file
  • gls_asm_get_tracking_link(self, picking)
    Provide tracking link for the customer
  • gls_asm_rate_shipment(self, order)
    There's no public API so another price method should be used
  • gls_asm_send_shipping(self, pickings)
    Send the package to GLS :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.
  • gls_asm_tracking_state_update(self, picking)
    Tracking state update

New fields (2)
  • carrier_id Many2one → delivery.carrier
    comodel_name='delivery.carrier' domain=[('delivery_type', '=', 'gls_asm')] required=True string='GLS Service'
  • date_from Date
    default=fields.Date.context_today required=True
Public methods (1)
  • get_manifest(self)
    List of shippings for the given dates as GLS provides them

New fields (1)
  • gls_asm_public_tracking_ref Char
    copy=False readonly=True string='GLS Barcode'
Public methods (1)
  • gls_asm_get_label(self)
    Get GLS Label for this picking expedition
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/l10n-spain
PULL REQUEST
PULL REQUEST[19.0][MIG] delivery_gls_asm: Migration to 19.0 (#4685)