# Delivery State

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.

Table of contents

- Configuration
- Usage
- Bug Tracker
- Credits
  - Authors
  - Contributors
  - Maintainers

# Configuration

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 confirmed:

> 1. Go to Inventory > Configuration > Settings.
> 2. Enable the option Email Confirmation.
> 3. Choose the template “Delivery State Notification to Customer”.

In order to deactivate the automatic update of the carrier state in a shipping method:

> 1. Go to Inventory > Configuration > Shipping Methods.
> 2. Go to the form view of the shipping method.
> 3. Uncheck the “Track Carrier State” option.

# Usage

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)
>    > - Incidence
>    > - 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.

# Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

# Credits

## Authors

- Trey (www.trey.es)
- FactorLibre
- Tecnativa

## Contributors

- Trey:
  - Roberto Lizana <roberto@trey.es>
- FactorLibre:
  - Zahra Velasco <zahra.velasco@factorlibre.com>
- Tecnativa:
  - Pedro M. Baeza
  - David Vidal
- Marçal Isern <marsal.isern@qubiq.es>
- Sygel:
  - Manuel Regidor
  - Valentín Vinagre

## Maintainers

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

This module is part of the OCA/delivery-carrier project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.