Refine the Delivery Promise date using Capacities, Restrictions, and Events
Operational restriction
1. Capacity
Principle
The capacity allows to refine the delivery promise computation based on the volume of orders each stock location is able to handle.
Capacities can be defined either per order and parcel , or per orders in a stock locations .
The maximum consumption can be parameter for :
the volume a stock location is able to handle
the volume a stock location is able to handle with a specific carrier
When the volume is completely consumed for a stock location, the delivery date will automatically be deferred if the same stock location is used as the source for a delivery promise call.
Technically, the delivery promise consider the stock location with no stocks for the day if the capacity is full.
Configuration of the capacity parameters : Configuration > Delivery > Capacity
The configuration of the capacity defines how the consumption and release is done.
Capacity volume can be consumed on two levels :
Stock location level : Volume a specific stock location can handle. When full, regardless of other capacity consumption, the stock location will be excluded for the day.
Carrier level : Volume a specific stock location can handle for a carrier for the day. When full, the stock location will be excluded as a provider for the carrier for the day.
To refine the carrier level per option, use the parameter
carrier_links_with_optionontrue. It allows to seperate capacity per delivery service.
Consumer configuration
Depending on the claiming interaction and module activated in OneStock, there is different types of consumption available for stock location and carrier level.
The types can be divided on 2 ways : Store app operation , and Non-Store app operation .
The entity consumed needs to be adjusted on the interaction type : consumers
Store app operation
Volume will be defined on order to a stock location for Stock location & Carrier capacities : An order, partially affected to a stock location, consumes 1 (regardless of the article lines or quantity).
Non Store app operation
Volume of stock location will be defined on order : An order of quantity 3, consumes 3.
Volume of carrier will be defined on parcel : An order split on 3 parcels, consumes 3.
Consumers defines the entities parameters consider to estimate the delivery promise :
For stock location level : Date, stock reservation, and opening calendar are considered
For carrier level : Date, stock reservation, pick up date, priorities are considered
Consumption configuration
Priorities
Priority on consumption is set to allow to consume on a level, before the other.
The from_consumptions parameters allows to set which consumers (from_links) will be consumed before or after (op) the others (to_link)
In the previous example, the configuration is set to consume the stock location capacity, before the carrier (and stock location one). It means that the carrier capacity consumption will be reported to the latest available stock location capacity before being consumed.
Here : if an order with a delivery using colissimov2 is claimed, the capacities will be taken from friday as today’s consumption is already fully taken
Keep the consumption priority as it is set in the examples for a complete stable consumption
Workload grouping
Carrier consumption can be refined usigne two parameters : carrier_workload and on_missing_workload
The Workload is the value associated for each article. It can be set using the item fields, allowing to refine the volume per batch of article considered.
carrier_workload allows to define which entity will be used to sum the workload values :
parcelto consider the volume per parcelendpoint_orderto consider the volume per claimed articles of the order
For example, if the consumption is done per order in stock location (endpoint_order), workload value can be grouped on parcels. As a result, the estimation date of the delivery promise will depend on the orders, and the capacity volume will depend on the article’s workload contained in the parcels.
If the workload value is missing from the item fields, on_missing_workload allows to set how to consider the volume :
errorto raise an error when missingignoreto consider only the items with a valueany value used as a default for an article (as a float in a string)
In the previous examples, we use “1.0” as a default value on parcels. Each article will be considered as a quantity of 1.
Configuration of the capacity volume
Once the capacity is configured. The capacity tab appears on the detailed stock location page.
This tab allows to define the volume per stock location.
Mass modification is possible, multiple stock location can be selected at once to define the values.
Capacity volumes can be defined for the day, on a specific date, or for each week.
Click on “Stock location” to used the dedicated capacity, or click on each carrier individually to set each capacity for each carrier.
If the value is unset, capacity will be considered as infinite.
For a regular capacity configuration, use the weekly configuration.
For a punctual capacity refining, use the day to day capacity, or select a specific date
Once the modification is validated, the modification is live and used for delivery promise and orchestration.
How to use
To consume the capacities, stock location needs to claim an order and create the dedicated entities as configured previously :
For a stock location consumption : Only a claim using the stock location is necessary ( the consumption is done based on the reserved stocks on the stock location)
For a carrier consumption : The configured entity must be created (using Store app, or through other means) with the carrier and options considered.
To have more information on how the carrier is selected for an order, please see this page.
To delay the estimated time though the delivery promise, capacities needs to be fully consumed on precise days, either on stock location, or carrier level.
The delivery promise will automatically adjust to the level available on the next days.
To orchestrate and distribute orders based on capacities, please refer to this page.
2. Define Carriers Unsupported Articles : Carrier Restriction
To refine the delivery service capabilities, it is possible to define restrictions on carrier level.
On each carrier independently, restrictions can be declared for a service allowing to define an article attribute that is not supported.
The carrier restriction is used if a carrier service is limited with weights, dimensions, or is not supporting certain type of articles because it is dangerous or fragile.
Eg : Bicycle delivery services have dimension and weight limits. International deliveries don’t support chemical products.
When a restriction is created, 3 parameters are defined : Attribute, operator, value
Attribute : Feature to use to define a restriction
Operator : Comparison to define the article restriction
Value : Attribute level, or precise value of an article to use as a comparison
Once defined, when an article, or a set of article are matching the restriction parameters, the service is excluded from the delivery promise response.
How to use
Add restricted items to the basket (out of dimension, or excluded SKU)
Call the delivery promise with a delivery method containing the service
Receive a response without the services restricted (or no response if it is the only available service)
3. Refine metrics conditions : Route and parcel constraints
To refine the delivery costs depending on the order basket, it is possible to define metric values on route level.
Two type of constraints can be used on each carrier route :
“Route constraints” can be created to define an order price to consider, and receive the corresponding configured metrics.
The route constraint is used if the parcel price affects the transport cost, shipping fees, carbon footprint values.
For high value baskets, transportation cost may be reduced or offered using those constraints.
To create a route constraint, add a cost table and define the value and operator to use.
Cost tables will then be segmented depending on the constraints used. Be sure that all the segments are excluding other cost tables.
On this exemple, the transportation cost is higher for orders under 50€
“Parcel constraints” can be created to refine which metric price to respond depending on parcel dimension or weights.
The parcel constraints is used if the parcel attributes affects the transport cost, shipping fees, carbon footprint values.
For high volume or weight baskets, transportation cost may be higher or unsupported using those constraints.
To define a parcel constraint, use the metric configuration popin and add a constraint.
Be sure that all the parcel configurations are covered when finishing the metric detailed configuration.
In this exemple, parcels with total item weights above 3kg are generating more carbon footprint than lighter ones.
How to use
Route constraints
Add price detail to the delivery promise request
Call the delivery promise with a delivery method containing the service
Receive a response with the adapted metric values
Parcel constraints
Add article within a specific table cost
Call the delivery promise with a delivery method containing the service
Receive a response with the adapted metric values
Punctual restriction
4. Forbid a carrier operation : Schedule event
To punctually restrain a carrier operation, it is possible to create a scheduled event on a carrier level.
Scheduled event can be created to define a carrier, a date and a potential zone to consider for the operation deactivation.
3 carrier operations can be deactivated :
Pickup
Transit
Delivery
During an event, the dedicated action will be either postponed, or paused during the configured period.
Scheduled event is used to define a date on which the carrier is not operating.
Eg : Public holidays, or if a contract is in renewal for a period.
To create a scheduled event, use the dedicated button on the carrier page.
Events are made for a date period, a list of carriers, and on an optional zone.
The operation to deactivate needs to be defined.
To deactivate the pickup and delivery operation, a zone must be defined.
On this exemple, during public holidays, the pickup will be done on stock location, but transits will be paused and delivery will be postponed.
How to use
Create an event in the following days
Call the delivery promise with a delivery method containing the carrier impacted
Receive a response with a postponed delivery date (corresponding to the action)