Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel
panelIconId261d
panelIcon:point_up:
panelIconText☝️
bgColor#FFFAE6

For milestones to be calculated for an order, orchestration must take the delivery promise into account, to do so, orders must be orchestrated using a ruleset chaining instead of a ruleset.

Vocabulary
Anchor
Vocabulary
Vocabulary

  • Milestone: it represents a specific step in the order execution and the corresponding time when it should be executed. For example: fraud check validation on the 05/05 at 10:00, start of preparation on the 05/05 at 12:00, carrier pick-up on the 05/05 at 16:00…

  • Cutoff: it is a consistent group of the different milestones to execute an order. For example: (fraud check validation: 05/05 10:00 ; preparation start: 05/05 12:00 ; carrier pick-up: 05/05 16:00)

  • Cutoffs set: all the cutoffs that allow a delivery on time (eventually taking into account the tolerance) for a given delivery route (for a given carrier-service).

In the example below, for a promised delivery date on the 08/05, there are 2 cutoffs sets:

  • 1 for UPS-standard with 2 cutoffs possible

  • 1 for DHL-express with 3 cutoffs possible

Carrier-service

Fraud check validation

Start preparation

Carrier pick-up

Delivery

UPS-standard

05/05 10:00

05/05 12:00

05/05 16:00

07/05 10:00-18:00

06/05 10:00

06/05 12:00

06/05 16:00

08/05 10:00-18:00

DHL-express

05/05 12:00

05/05 14:00

05/05 18:00

06/05 08:00-13:00

06/05 12:00

06/05 14:00

06/05 18:00

07/05 08:00-13:00

07/05 12:00

07/05 14:00

07/05 18:00

08/05 08:00-13:00

Milestones depend on delivery promise configuration

...

Code Block
lig_milestone_reached:
  media:
    rabbit:
    - order_dp:lig_milestone_reached
  time_type: duration
  time_value: 0s

Sorting cutoff sets

Multiple cutoff sets are calculated and consist of all the possible delivery options that can serve the order on time (promised delivery date + tolerance allowed by the orchestration ruleset chaining). See Vocabulary

Sorting criteria are defined to select the best options. The sorting is done in two steps:

  • among the cutoffs: sort all the cutoffs a given delivery route (so, for the same cost)

  • among the cutoffs sets: sort the best cutoffs of each delivery route.

This configuration is set on the configuration of the site (file or API):

Code Block
languageyaml
delivery_promise:
  cutoffs_sets: # from v 10.1
    use_sort_orders: true # if true: sorts cutoff sets using the delivery config's sort criteria. Cutoffs are sorted based on the below configuration default_sort_criteria>..>cutoffs.
    sort_critera: # sort criteria to use (overrides use_sort_orders:true, but does not override criteria when specified in GET /cutoffs request)
      eta_fulfilled: #in case there is no tolerance defined or tolerance is finite
        cutoffs_sets: [ +cost_by_parcel, -carrier_pickup, +eta_end ] #cheapest, latest carrier pickup, fastest eta_end
        cutoffs: [ -carrier_pickup, +eta_end ] #latest carrier pickup, fastest eta_end
      eta_exceeded: #in case there is an infinite tolerance defined
        cutoffs_sets: [ +cost_by_parcel, +eta_end ]
        cutoffs: [ +eta_end, +carrier_pickup ]
    default_sort_criteria: # default criteria to use when no sort orders
      eta_fulfilled:
        cutoffs_sets: [ +cost_by_parcel, -carrier_pickup, +eta_end ] #not used if use_sort_orders is true
        cutoffs: [ -carrier_pickup, +eta_end ] #1st by latests carrier pickup, 2nd by fastests eta_end
      eta_exceeded: #juste pour tolérance infinie
        cutoffs_sets: [ +eta_end, +cost_by_parcel ] #not used if use_sort_orders is true
        cutoffs: [ +eta_end, +carrier_pickup ] #1st by fastest eta_end, 2nd by latests carrier pickup.

use_sort_orders set to true

In this case, the cutoffs of a given delivery route will be sorted using the default_sort_criteria for cutoffs. After that, only the first cutoff of each delivery route will be considered. Then, the cutoff sets will be sorted following the sort option defined on the delivery configurations, in the Delivery screen in the backoffice.

use_sort_orders set to false

In this case, the cutoffs of a given delivery route will be sorted using the sort_criteria for cutoffs. After that, only the first cutoff of each delivery route will be considered. Then, the cutoff sets will be sorted following the sort option defined on sort_criteria for cutoffs_sets.

Display the milestones on the store app

...