OdooWiki OCA HUB
Delivery License: AGPL-3

This module adds additional functions that will be needed for the carrier developments. It provides fields to be able to contemplate the tracking states and also adds a global field so it can have generic states in addition to the ones carrier gives us.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Adds carrier tracking fields to delivery orders so you can follow a shipment's status, see proof of delivery, and optionally email the customer when the carrier confirms delivery.

This module extends the delivery order (stock.picking) screen with a tracking block that appears once the transfer is done and a carrier is set. It shows the shipment date, the delivery date, the carrier state (for example shipping recorded in carrier, in transit, incident, customer delivered, warehouse delivered, canceled shipment, or no more updates from carrier), the raw tracking state sent by the carrier, its history, and a proof-of-delivery file with its filename and any error.

  • A button "Update tracking state" lets you ask the carrier for the latest status directly from the delivery order.
  • A daily scheduled job "Update deliveries states" automatically refreshes the status of all done deliveries that use a carrier and are not yet finished, canceled, or marked as no more updates.
  • When a shipment is sent, the delivery state becomes shipping recorded in carrier and the shipment date is set. When a shipment is canceled, the state becomes canceled shipment and both dates are cleared.
  • If fetching proof of delivery fails, the error is stored on the delivery order and a message is posted in the administrator chat channel.

In Settings, under the stock email options, you can enable an automatic confirmation email for delivered orders and choose the email template to use. When a delivery order's carrier state becomes customer delivered, that email is sent to the customer. A ready-made template "Delivery: Picking delivered by Email" is provided.

Depends on

deliverystock_delivery
Models and fields (4)
  • res.company · extends an existing modeldelivery_state_delivered_email_validation (Email Confirmation delivered picking), delivery_state_delivered_mail_template_id (Email Template delivered picking)
  • stock.picking · extends an existing modelpod_file (Proof of Delivery File), pod_error (Proof of Delivery Error), date_shipped (Shipment Date), pod_filename (Proof of Delivery Filename), tracking_json, date_delivered (Delivery Date), delivery_state (Carrier State), tracking_state, tracking_state_history
  • delivery.carrier · extends an existing model
  • res.config.settings · extends an existing modeldelivery_state_delivered_email_validation, delivery_state_delivered_mail_template_id

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 8 confirmed, 1 with no information of 9 versions.

Sources · Odoo 18.0

Confirmed on 2026-11-03 in branch 18.0 of OCA/delivery-carrier.

terminal Installation and usage

OCA documentation · Odoo 19.0

A scheduled action for automating the tracking update for these pickings can be configured going to Settings \> Technical \> Scheduled Actions and then choosing Update deliveries states. It will update the pending delivery states for the pickings with service providers with tracking methods configured, and in pending state (not delivered or cancelled).

In order to send automatic notifications to the customer when the picking is customer_delivered:

> 1. Go to Inventory \> Configuration \> Settings. > 2. Enable the option Email Confirmation (customer delivered). > 3. Choose the template "Delivery: Picking delivered by Email".

Depending on the delivery service provider, the state tracking could be more or less complete, since it could have or not the necessary API calls implemented.

With regular methods (fixed, based on rules):

> 1. Go to Inventory / Operations and open an outgoing pending picking. > 2. In the Additional Info tab, assign it a delivery carrier which > is fixed or based on rules. > 3. Validate the picking and you'll see in the same tab the delivery > state info with the shipping date and the shipping state. > 4. If enabled, an automatic notification will be sent to the picking > customer.

When service provider methods are implemented, we can follow the same steps as described before, but we'll get additionally:

> 1. In the Additional Info tab, we'll see button Update tracking > state to manually query the provider API for tracking updates for > this expedition. > > 2. Depending on the stated returned by the provider, we could get > these states (field Carrier State): > > > - Shipping recorded in carrier > > - In transit > > - Canceled shipment (finished) > > - Incident > > - Warehouse delivered > > - Customer delivered (finished) > > 3. In the field Tracking state we'll get the tracking state name > given by the provider (which is mapped to the ones in this module) > > 4. In the field Tracking history we'll get the former states log.

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.