Reservations can be started on different conditions, e.g., when adding the items to the basket or after the order was captured by the IOM. They can also end on different conditions, e.g., they might be timed out or can result in orders, etc.
Using the reservation service, the Intershop Order Management (IOM) has the ability to get, create, update, delete and extend reservations within a given list of suppliers. With the Dynamic Order Supplier Evaluation process and its evaluation rules, the list of possible suppliers should be evaluated for the reservation. This document describes the basic concepts about the Dynamic Order Supplier Evaluation process of IOM and how to configure it for your shop within the IOM. The target audience are partners, consultants and developers.
Term | Description |
---|---|
DOSE | The abbreviation for Dynamic Order Supplier Evaluation, a process of IOM that evaluates one or more suppliers for an order. See Guide - IOM Shop Onboarding for validation rules and for possible optimizations. |
IOM | The abbreviation for Intershop Order Management |
The Dynamic Order Supplier Evaluation (DOSE) refers to the process of the IOM that evaluates and approves potential suppliers for an order by quantitative and qualitative assessment according to specific rules. The purpose of supplier evaluation is to ensure that a portfolio of industry-leading suppliers is available. Depending on your needs, the DOSE can be used for different purposes, e.g., to measure and monitor the current suppliers performance for the purposes of reducing costs, mitigating risk and driving continuous improvement.
Please refer to Overview - IOM Database Documentation for more details about all order supplier evaluation rules( OrderSupplierEvaluationRuleDefDO
) that are supported by the application by default.
The DOSE is a process that must be configured. By default, after the initial setup of IOM, there is no configuration that is using the DOSE and all articles are reserved at the supplier with the most available stock. To setup DOSE, you need to perform the following steps:
Configure the column "isReservationWithDOSE
"
in the database table "
ShopDO".
This column represents whether the DOSE should be used or not.
-- activate the DOSE by configuring the column wiht the name "isReservationWithDOSE" in the ShopDO. update oms."ShopDO" SET "isReservationWithDOSE" = true -- DOSE is active where id = <theIdOfYourShop>;
Info
Since the oms."ShopDO"
has now a new configuration for your shop instance, the IOM cache should be cleared or the server needs to be restarted.
Configure the chosen supplier evaluation rules for your shop in the database table "
Shop2OrderSupplierEvaluationRuleDefDO".
This is a configuration table to set up all relationships between the shop and the order supplier evaluation rules, e.g., which evaluation rules should be used in the DOSE-process for supplier selection for a shop. The shop can have more than one supplier evaluation rules.
Info
Please refer to Overview - IOM Database Documentation for more details about all order supplier evaluation rules (OrderSupplierEvaluationRuleDefDO)
that are supported by the application by default.
Column/Key | Example Value | Description | SQL_Subsitute |
---|---|---|---|
id | nextval('"CommunicationDO_id_seq"') | ID / primary key | |
orderSupplierEvaluationRuleDefRef | SELECT id FROM "OrderSupplierEvaluationRuleDefDO" WHERE "name" = <'theNameOfTheRule'> | References to table OrderSupplierEvaluationRuleDefDO. | SELECT id FROM "OrderSupplierEvaluationRuleDefDO" WHERE "name" = <'theNameOfTheRule'> |
errorForcesAutomaticCancelation | false | Indicates whether an error leads to the automatic canceling of the order. | |
shopRef | SELECT id FROM "ShopDO" WHERE name = <'theNameOfYourShop'> | References to table ShopDO. Id of the shop the new order validation rules should be added to. | SELECT id FROM "ShopDO" WHERE name = <'theNameOfYourShop'> |
INSERT INTO "Shop2OrderSupplierEvaluationRuleDefDO" ( id, "orderSupplierEvaluationRuleDefRef", "errorForcesAutomaticCancelation", "shopRef" ) values ( nextval('"Shop2OrderSupplierEvaluationRuleDefDO_id_seq"'), (SELECT id FROM "OrderSupplierEvaluationRuleDefDO" WHERE "name" = <'theNameOfTheRule'>), -- See the database documentation for more details about all order supplier evaluation rules (OrderSupplierEvaluationRuleDefDO) that are supported by the application by default. true, (SELECT id FROM "ShopDO" WHERE name = <'theNameOfYourShop'>) );
Order Supplier Evaluation Rules Customization
To use your own " Supplier Evaluation Rules " please refer to Cookbook - Custom Order Supplier Evaluation Rules.
To see how the reservation service works using the Dynamic Order Supplier Evaluation process and its evaluation rules, various scenarios are presented.
These examples are not about which rules are used in the DOSE, but about how the DOSE influences the reservation and the difference between a reservation with and without DOSE.
Info
A reservation can be:
A Shop has three suppliers assigned:
Supplier | Article A | Article B | Article C |
---|---|---|---|
X | 100 | 100 | 100 |
Y | 50 | 50 | 50 |
Z | 20 | 20 | 20 |
As shown in the table:
Info
Assumption:
According to the different rules configured in the table "Shop2OrderSupplierEvaluationRuleDefDO"
for the shop, the DOSE returns the following result:
The result without the DOSE:
Article A is reserved at supplier X (Y does not have the stock) and article B is reserved at supplier Y (Z does not have enough stock).
DOSE Result | Reservation | |
---|---|---|
Article A Quantity: 60 | Article B Quantity: 40 | |
First Stored Supplier | Supplier Y | Supplier Z |
Second Stored Supplier | Supplier X | Supplier Y |
Third Stored Supplier | Supplier Z | Supplier X |
Article A is reserved at supplier Y (see supplier evaluation list) and article B is reserved at supplier X (Z and Y do not have enough stock).
DOSE Result | Reservation | |
---|---|---|
Article A Quantity: 40 | Article B Quantity: 60 | |
First Stored Supplier | Supplier Y | Supplier Z |
Second Stored Supplier | Supplier X | Supplier Y |
Third Stored Supplier | Supplier Z | Supplier X |
The reservation is not possible, no supplier can fulfill article C with a quantity of 101.
DOSE Result | Reservation | ||
---|---|---|---|
Article A Quantity: 40 | Article B Quantity: 60 | Article C Quantity : 101 | |
First Stored Supplier | Supplier Y | Supplier Z | Supplier X |
Second Stored Supplier | Supplier X | Supplier Y | Supplier Y |
Third Stored Supplier | Supplier Z | Supplier X | Supplier Z |
Article A is reserved at supplier X (Y does not have the stock) and article B is reserved at supplier Y (Z does not have enough stock).
DOSE Result | Reservation | |
---|---|---|
Article A Quantity: 60 | Article B Quantity: 40 | |
First Stored Supplier | Supplier Y | Supplier Z |
Second Stored Supplier | Supplier X | Supplier Y |
Third Stored Supplier | Supplier Z | Supplier X |
Article A is reserved at supplier Y (see supplier evaluation list) and article B is reserved at supplier X (Z and Y do not have enough stock).
DOSE Result | Reservation | |
---|---|---|
Article A Quantity: 40 | Article B Quantity: 60 | |
First Stored Supplier | Supplier Y | Supplier Z |
Second Stored Supplier | Supplier X | Supplier Y |
Third Stored Supplier | Supplier Z | Supplier X |
Article A is reserved at supplier X (Y does not have enough stock), article B is reserved at supplier Y (Z does not have enough stock) and article C is reserved at supplier X (with the most available stock) with a quantity of 100.
DOSE Result | Reservation | ||
---|---|---|---|
Article A Quantity: 40 | Article B Quantity: 60 | Article C Quantity: 101 | |
First Stored Supplier | Supplier Y | Supplier Z | Supplier X (100) |
Second Stored Supplier | Supplier X | Supplier Y | Supplier Y |
Third Stored Supplier | Supplier Z | Supplier X | Supplier Z |
Article A is reserved at supplier X and article B is reserved at supplier X.
NO DOSE Result | Reservation | |
---|---|---|
Article A Quantity: 60 | Article B Quantity: 40 | |
Stored Supplier with the most available stock | Supplier X | Supplier X |
The reservation is not possible, no supplier can fulfill article C with a quantity of 101.
NO DOSE Result | Reservation | ||
---|---|---|---|
Article A Quantity: 60 | Article B Quantity: 40 | Article C Quantity: 101 | |
Stored Supplier with the most available stock | Supplier X | Supplier X | Supplier X |
Article A is reserved at supplier X and article B is reserved at supplier X.
NO DOSE Result | Reservation | |
---|---|---|
Article A Quantity: 60 | Article B Quantity: 40 | |
Stored Supplier with the most available stock | Supplier X | Supplier X |
Article A is reserved at supplier X, article B is reserved at supplier X and article C is reserved at supplier X with a quantity of 100.
NO DOSE Result | Reservation | ||
---|---|---|---|
Article A Quantity: 60 | Article B Quantity: 40 | Article C Quantity: 101 | |
Stored Supplier with the most available stock | Supplier X | Supplier X | Supplier X (100) |
Sometimes orders and at least one position of the orders end up in status CHECK_ANNOUNCED:2095 and cannot be processed.
In this case at least one position has no OrderEvaluationDefDO in state success, but all OrderEvaluationDefDOs have the value Unsuccess.
The class Shop2SupplierEvaluationRuleLogicBean and it's method processDOSE is responsible for setting this state.
# | Reason | how to check |
---|---|---|
1 | isManuallyAssignedSupplierOrderPos AND eval has OrderEvaluationDefDO.SUCCESS BUT
| |
now for not ManuallyAssignedSupplierOrderPos → the real DOSE | ||
2 | missing stock for initial run or missing stock for reprocessing
| TODO: checkAtp() method with getAvailableStock() →atpPersistenceService.getAtp()
|
3 | closest supplier is defined and can fulfill the whole order -> set all other suppliers to unsuccess means: if the supplier of the current eval is not that supplier: eval.setOrderEvaluationDefDO(OrderEvaluationDefDO.UNSUCCESS); | check table ZipCode2SupplierMappingDO with postal code of shipping address, hast to be between startZipCode and endZipCode and WarehouseType has to be WAREHOUSE_TYPE_OUTBOUND_SHIPPING(1), if one matching entry was found: closest supplier is defined
|
4 | ||
5 | ||
6 | ||
7 | ||
8 | ||
9 | ||
10 | ||
11 | ||
12 | ||
13 | ||
14 | ||
15 | ||
16 | ||
17 | ||
18 |