Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

    Status
    colourYellow
    titleembedded

  • Create the parcel

    Status
    colourYellow
    titleembedded

  • Use the delivery promise

    Status
    colourBlue
    titleAutomatic

  • Carrier assignation

    Status
    colourBlue
    titleAutomatic

Assignation carrier-2024-12-02-112934.png

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

  • Lifecycle

    • Order

    • Parcel

  • Stock locations

    • Tags

    • Calendars

    • Carrier account

      Status
      colourYellow
      titleoptional

  • Carriers

    • Account

    • Parameters

  • Delivery promise

    Status
    colourYellow
    titleoptional

Defined within the order 🗒️
Status
colourYellow
titleembedded

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

Info

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 📦
Status
colourYellow
titleembedded

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.

Info

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.

This method is suited if all carrier information are available at the moment of the parcel creation.

Use the carrier assignation 🖥️
Status
colourBlue
titleAutomatic
Status
colourPurple
title12.6

Principle

Assignation carrier-2024-12-03-131423.pngImage RemovedAssignation carrier-2024-12-04-150632.pngImage Added

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.

Info

The assignation mecanism is used if :

  • There is no delivery promise mechanism

  • The order hasn’t any carrier details

  • The parcel hasn’t any carrier details

This method is suited if no information are available, and especially if the carrier depends on multiple simple geographical or business parameters.

Configuration

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

image-20241202-132916.png

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.

Info

Service and metadata are free information to use for the shipment request.
Refer to the contract and carrier documentation to use the right service code and the right metadata for the shipment.

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 📆
Status
colourBlue
titleAutomatic

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.

Info

The delivery promise mecanism is always used if provided.

If no delivery promise information are given, the system fallbacks on any of the previous mechanism.

This method is suited if the order is placed with the delivery promise details.

Note that this method is not mandatory if the delivery promise is activated.

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.

image-20241202-173638.png
Info

This option allow the orchestration to re-compute the delivery promise and postpone the estimated date if any major step is exceeded.

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.

Info

This action updates the computed date and expiration key steps, and defines the route to use for the shipment.

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 from the one already available in the parcel (false by default).

Info

This action modify the carrier in the parcel with the best one from the delivery promise and orchestration.
Use the force option to control the carrier when creating the parcel.