Document Tree
Document Properties
Kbid
28H755
Last Modified
28-Jun-2024
Added to KB
02-Oct-2018
Public Access
Everyone
Status
Online
Doc Type
Concepts
Product
  • IOM 4.0
  • IOM 4.1
  • IOM 4.2
  • IOM 4.3
  • IOM 4.4
  • IOM 4.5
  • IOM 4.6
  • IOM 4.7
  • IOM 5.0
  • IOM 5.1
Concept - Reservation with Dynamic Order Supplier Evaluation

Introduction

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.

Glossary

Term

Description

DOSEThe 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

References

Dynamic Order Supplier Evaluation (DOSE)

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.

Configuration

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:

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

  2. 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/KeyExample ValueDescriptionSQL_Subsitute
    id
    nextval('"CommunicationDO_id_seq"')
    ID / primary key
    orderSupplierEvaluationRuleDefRefSELECT id FROM "OrderSupplierEvaluationRuleDefDO" WHERE "name" = <'theNameOfTheRule'>References to table OrderSupplierEvaluationRuleDefDO.SELECT id FROM "OrderSupplierEvaluationRuleDefDO" WHERE "name" = <'theNameOfTheRule'>
    errorForcesAutomaticCancelationfalse

    Indicates whether an error leads to the automatic canceling of the order.


    shopRefSELECT 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'>
    Example
    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.

Scenarios and Examples

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:

  • Complete Reservation: reserves exactly what I want to reserve
  • Partly Reservation: reserves what can be reserved

Starting Point for All Scenarios

A Shop has three suppliers assigned:

SupplierArticle AArticle BArticle C
X100100100
Y505050
Z202020

As shown in the table:

  • Supplier X has a stock of 100 for each of the three items.
  • Supplier Y has a supply of 50 for each of the three items.
  • Supplier Z has a supply of 20 for each of the three items.

Info

Assumption:

According to the different rules configured in the table "Shop2OrderSupplierEvaluationRuleDefDO" for the shop, the DOSE returns the following result:

  • Article A: (Supplier Y, Supplier X, Supplier Z)
  • Article B: (Supplier Z, Supplier Y, Supplier X)
  • Article C: (Supplier X, Supplier Y, Supplier Z)

The result without the DOSE:

  • Articles are reserved at the supplier with the most available stock.

Complete Reservation Including DOSE (ShopDO.isReservationWithDOSE = true)

The Shop Tries to Create a Complete Reservation for Article A (60) and Article B (40)

  • The DOSE returns a sorted supplier evaluation list for article A (Y, X, Z) and article B (Z, Y, X).
  • 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 ResultReservation
    Article A Quantity: 60Article B Quantity: 40
    First Stored SupplierSupplier YSupplier Z
    Second Stored SupplierSupplier XSupplier Y
    Third Stored SupplierSupplier ZSupplier X

The Shop Tries to Create a Complete Reservation for Article A (40) and Article B (60)

  • The DOSE returns a sorted supplier evaluation list for article A (Y, X, Z) and article B (Z, Y, 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 ResultReservation
    Article A Quantity: 40Article B Quantity: 60
    First Stored SupplierSupplier YSupplier Z
    Second Stored SupplierSupplier XSupplier Y
    Third Stored SupplierSupplier ZSupplier X

The Shop Tries to Create a Complete Reservation for Article A (60) , Article B (40) and Article C (101)

  • The DOSE returns a sorted supplier evaluation list for article A (Y, X, Z), article B (Z, Y, X) and article C (X, Y, Z).
  • The reservation is not possible, no supplier can fulfill article C with a quantity of 101.

    DOSE ResultReservation
    Article A Quantity: 40Article B Quantity: 60Article C Quantity : 101
    First Stored SupplierSupplier YSupplier ZSupplier X
    Second Stored SupplierSupplier XSupplier YSupplier Y
    Third Stored SupplierSupplier ZSupplier XSupplier Z

Partly Reservation Including DOSE (ShopDO.isReservationWithDOSE = true)

The Shop Tries to Create a Partly Reservation for Article A (60) and Article B (40)

  • The DOSE returns a sorted supplier evaluation list for article A (Y, X, Z) and article B (Z, Y, X).
  • 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 ResultReservation
    Article A Quantity: 60Article B Quantity: 40
    First Stored SupplierSupplier YSupplier Z
    Second Stored SupplierSupplier XSupplier Y
    Third Stored SupplierSupplier ZSupplier X

The Shop Tries to Create a Partly Reservation for Article A (40) and Article B (60)

  • The DOSE returns a sorted supplier evaluation list for article A (Y, X, Z) and article B (Z, Y, 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 ResultReservation
    Article A Quantity: 40Article B Quantity: 60
    First Stored SupplierSupplier YSupplier Z
    Second Stored SupplierSupplier XSupplier Y
    Third Stored SupplierSupplier ZSupplier X

The Shop Tries to Create a Partly Reservation for Article A (60), Article B (40) and Article C (101)

  • The DOSE returns a sorted supplier evaluation list for article A (Y, X, Z), article B (Z, Y, X) and article C (X, Y, Z).
  • 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 ResultReservation
    Article A Quantity: 40Article B Quantity: 60Article C Quantity: 101
    First Stored SupplierSupplier YSupplier ZSupplier X (100)
    Second Stored SupplierSupplier XSupplier YSupplier Y
    Third Stored SupplierSupplier ZSupplier XSupplier Z

Complete Reservation Without DOSE (ShopDO.isReservationWithDOSE = false)

The Shop Tries to Create a Complete Reservation for Article A (60) and Article B (40)

  • Articles are reserved at the supplier with the most available stock.
  • Article A is reserved at supplier X and article B is reserved at supplier X.

    NO DOSE ResultReservation
    Article A Quantity: 60Article B Quantity: 40
    Stored Supplier with the most available stockSupplier XSupplier X

The Shop Tries to Create a Complete Reservation for Article A (60), Article B (40) and Article C (101)

  • The reservation is not possible, no supplier can fulfill article C with a quantity of 101.

    NO DOSE ResultReservation
    Article A Quantity: 60Article B Quantity: 40Article C Quantity: 101
    Stored Supplier with the most available stockSupplier XSupplier XSupplier X

Partly Reservation Without DOSE (ShopDO.isReservationWithDOSE = false)

The Shop Tries to Create a Partly Reservation for Article A (60) and Article B (40)

  • Articles are reserved at the supplier with the most available stock.
  • Article A is reserved at supplier X and article B is reserved at supplier X.

    NO DOSE ResultReservation
    Article A Quantity: 60Article B Quantity: 40
    Stored Supplier with the most available stockSupplier XSupplier X

The Shop Tries to Create a Complete Reservation for Article A (60), Article B (40) and Article C (101)

  • Articles are reserved at the supplier with the most available stock.
  • 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 ResultReservation
    Article A Quantity: 60Article B Quantity: 40Article C Quantity: 101
    Stored Supplier with the most available stockSupplier XSupplier XSupplier X (100)

Failing Supplier Assignment


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.


The next table will show all the situations where this setting to Unsuccess may happen.
For each order position and for each OrderSupplierEvaluationDO of that positions several checks are made.
Important to know: If the product belonging to a order position has only 2 valid suppliers, this position will also have only 2 OrderSupplierEvaluationDOs.
#Reasonhow to check
1
isManuallyAssignedSupplierOrderPos AND 
eval has OrderEvaluationDefDO.SUCCESS BUT
supplier of current eval does not match supplier of position



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


TODO: checkAtp() method with getAvailableStockForReprocessing() (blocked stock)


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


Disclaimer
The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.
The Intershop Knowledge Portal uses only technically necessary cookies. We do not track visitors or have visitors tracked by 3rd parties. Please find further information on privacy in the Intershop Privacy Policy and Legal Notice.
Home
Knowledge Base
Product Releases
Log on to continue
This Knowledge Base document is reserved for registered customers.
Log on with your Intershop Entra ID to continue.
Write an email to supportadmin@intershop.de if you experience login issues,
or if you want to register as customer.