Carrier selection for Orders

Overview

Define the right carrier for an order is an essential step for the final stage of the order life and to complete the delivery process.

In OneStock there are multiple ways to define the carrier that will be in charge of an order. The system allows to either push a known carrier, or let the application automatically define the right carrier for an order.

4 methods are available to select the carrier during the order treatment :

  • Use the order details embedded

  • Create the parcel embedded

  • Use the delivery promise Automatic

  • Carrier assignation Automatic

Assignation carrier-2024-12-02-112934.png
Carrier selection logical diagram

Before setting up carrier selection of orders, the following configurations must already be set up :

  • Lifecycle

    • Order

    • Parcel

  • Stock locations

    • Tags

    • Calendars

    • Carrier account optional

  • Carriers

    • Account

    • Parameters

  • Delivery promise optional

Defined within the order embedded

When importing an order, the dedicated field order.delivery.carrier allows to describe which carrier to use.

To be used, the field order.delivery.carrier.name must be completed.
order.delivery.carrier.option and order.delivery.carrier.information are not mandatory, but are used to define the right service to generate the shipment.

The order field is used at the moment of the parcel creation (Either via workflow or API call).

If the carrier is not known at the order creation, it can still be patched later and the shipment will be created rightfully.
Make sure that the order is containing a carrier before the parcel is created.

This method is suited if all carrier information are available before the order orchestration.

Through parcel creation embedded

If parcels are created through API, the dedicated field parcel.delivery.carrier allows to describe which carrier to use.

To be used, the field parcel.delivery.carrier.name must be completed.
parcel.delivery.carrier.option is not mandatory, but used to define the right service to generate the shipment similarly to the order.

The parcel field is at the moment of the API call.

If the carrier is not known at the moment of the POST API call, it can be modified later using a PATCH.

If the POST /parcel is done without any carrier information (in the parcel or the order), the automatic assignation is done.

Use the carrier assignation Automatic 12.6

 

Assignation carrier-2024-12-04-150632.png

If the order and parcel are created without any information on the carrier.name, the OMS runs a mechanism to automatically select the carrier based on

  • A specific configuration

  • Order details

  • Stock location details

 

 

 

 

 

 

The assignation mechanism is used at the moment of the parcel creation and updated at every new claim of the order.

Configuration

A dedicated interface for assignation of carriers is available in the Carrier configuration page.

The Carrier assignation page displays a search bar, an assignation add button, and the ruleset assignations available.
Assignations are displayed in the same order they are run to define the right carrier for an assignation.

The sequence of the assignation has an impact on the behaviour of the service. It is then possible to re-order the assignations by drag and droping an attribution.

The mechanism runs each assignation depending on the conditions set up, and assign the carrier as soon as a matching condition is detected. The last rule is condition-less and let an order have a default carrier if no match is encounter.

 

Adding an attribution is done by clicking on the dedicated button.

 

An attribution can be named, and a carrier must be chosen.
Additionally, a service to use for the shipment and a metadata can be added.

When created, the assignation can be modified with two type of parameters :

  • Conditions

  • Options

When a condition is created or modified, it can either being done on the same line which add a condition to verify on the same level (logical AND), or n a new line which add a condition to verify in parallel (logical OR).

 

 

The available conditions to compare are the following :

  • Order type

  • Order Sales channel

  • Delivery type

  • Order price

  • Item quantity

  • Item price

  • Carrier name and option

  • Destination (Country, zipcode, region)

  • Origin (Country, zipcode, region)

  • Stock location manual tag

  • Stock location sales channel

 

The option allow to define a period date for the assignation to be active.
If not defined, the assignation will always be running.

Delivery promise Automatic

When importing an order, the dedicated field order.delivery_promise allows to use the delivery promis information to orchestrate and handle an order.

Through the order life, and using the promised date, the delivery estimation of the order can evolve.

Furthermore, stock locations and their delivery route can be compatible or not, as well as the different carrier services and transit time.

As a result the fitting carrier to respect a delivery promise can switch.

OneStock uses an automatic way to use the right carrier at the moment the parcel is created.

The delivery promise mechanism is used at the moment of the dedicated workflow action.

Configuration

To use the delivery promise automatic mechanism, 1 configuration and 2 actions are mandatory in the workflow to use the evolving delivery date for the carrier assignation.

Firstly make sure that the option “Calculation of order ETA” is activated before any order is orchestrated.

 

Then, the first action is to set up in the workflow is the set_milstone action.

It needs to be set once, on the claiming transition after the assign_origin action.

Finally the last action to set up is the set_parcel_eligible_carriers in the parcel workflow.
The option forced on this action allows to overwrite the carrier given by the delivery promise, with the carrier embedded in the parcel detail (false by default).