Document Properties
Kbid2E8344
Last Modified25-Sep-2020
Added to KB14-Jul-2017
Public AccessEveryone
StatusOnline
Doc TypeGuidelines, Concepts & Cookbooks
Product
  • IOM 2.2
  • IOM 2.9
  • IOM 2.15

Guide - IOM Shop Onboarding 2.2

Table of Contents

Product Version

2.2.1

Product To Version

 2.2
Status

final

1 Introduction

This guide describes the configuration steps to add a shop to an existing IOM instance with existing suppliers. It is addressed to IOM operators or consultants (e.g., an IOM administrator who has access to the whole system).

IOM Shop Onboarding

1.1 Glossary

TermDescription
B2BBusiness To Business
B2CBusiness To Consumer
CODCash On Delivery
DOData Object - used as persistence entities to represent stored values in the database
DOSEDynamic Order Supplier Evaluation, a process of IOM that evaluates one or more suppliers for an order. Possible evaluation rules are defined in Guide - IOM Shop Onboarding 2.2#OrderSupplierEvaluationRuleDefDO.
IOMThe abbreviation for Intershop Order Management
OMSThe abbreviation for Order Management System, the technical name of IOM
OMTThe abbreviation for Order Management Tool, the graphical management tool of the IOM
PSPPayment Service Provider
URLUniform Resource Locator

1.2 Prerequisite

To follow this guide and to do the shop on-boarding by yourself, you need good experience with SQL, XML, and CSV. A good understanding of the retailing model between the shop and suppliers is helpful.

An essential parameter for the shop configuration is the IOM internal ID of the IOM shop instance to which the new shop should be connected.

As follows this ID will be identified by $shopId.

2 Configurations

The following section describes how to add a new shop next to an existing shop instance with one or more existing suppliers. It lists all required tables of the IOM database with an example configuration.

2.1 ShopDO

The main entity of the shop configuration is the database table oms.“ShopDO”. All other shop related configurations refer to this table.

Existing Guide - IOM Shop Onboarding 2.2#ShopAddressDO and Guide - IOM Shop Onboarding 2.2#ShopOrderValidationDO configuration is needed to create a new ShopDO instance.

PropertyDescriptionExample
idID / primary key - from now on this ID will be identified by $shopId10000
nameName of shopinTRONICS
shopNameShop name as used by the shopinTRONICS
internalShopNameName of the shop for IOM internal technical purpose
  • Syntax: Spaces are not allowed and lowercase is recommended
inTRONICS
activeIndicates enabled / disabled shoptrue
availabilityToleranceAllowed delivery date deviation in days (without the order runs in the manual supplier selection)1 / null
isB2BIndicates whether it is a B2B shoptrue
countryDefRefCountry of the shop- reference to oms."CountryCodeDefDO"29
mapArticleIdIndicates whether the article IDs of a new order that has been transferred are shop-specific and therefore mapped to the IOM-internal article-IDtrue
orderOptimizeDefRefReference to the order optimization type oms."OrderOptimizeDefDO"1
overwriteSelectedSupplierAllowedIf true than the DOSE process can overwrite the selected supplier from shopTRUE
parentRefSpecifies the id of the parent shopnull
returnDeadlineNumber of days for a return deadline30
shopOrderSequenceNameName of the SQL sequencer, used to generate shop-specific OrderIDs if the OrderID was not set during order placementnull
shopAddressRefReferenced shop address oms."Guide - IOM Shop Onboarding 2.2#ShopAddressDO"10000
shopOrderValidationRefReference to order validation rules of the shop oms."Guide - IOM Shop Onboarding 2.2#ShopOrderValidationDO"10000
hasSupplierPrefixSpecifies whether the shop uses a supplier prefix, i.e., ShopArticleNo with SupplierId prefixfalse/true
shopCustomerSequenceNameName of the SQL sequencer, used to generate shop-specific CustomerIDs, if the CustomerID was not set during order placementnull
preferredSupplierOnlyIf true than the DOSE process can use suppliers from PreferredSupplierDO onlyTRUE
orderProcessingDelay

This pattern can be used to determine when orders of this shop are to be processed further in the system.
Allowed is a cron expression to either define the earliest time or a period of time as a delay after the order has been created.


shopOrderSequenceNumberFormatString

Pattern used to format the generated shop order number from shopOrderSequenceName

Example:
Generated shop order number = 1000234
Pattern: ORDER_{0}
Result: ORDER_1000234

'ORDER_{0}'
ceoName of CEO, used for documentsCEO
salesPriceCalculatorBeanDefRefReference to a custom sales price calculation bean10000
amountDaysForPaymentReminderMailOfPrepaidOrdersNumber of days for a payment reminder mail30
amountDaysForAutoCancellationOfPrepaidOrdersNumber of days for a auto cancellation in case of missing payments35
Example
INSERT INTO "ShopDO"(
            "id", "active", "availabilityTolerance", "isB2B", "countryDefRef", 
            "mapArticleId", "modificationDate", "name", "orderOptimizeDefRef", 
            "overwriteSelectedSupplierAllowed", "parentRef", 
            "returnDeadline", "shopName", "shopOrderSequenceName",
			"shopAddressRef", 
            "shopOrderValidationRef",
			"hasSupplierPrefix", 
            "internalShopName", "shopCustomerSequenceName", 
            "preferredSupplierOnly", "orderProcessingDelay", "shopOrderSequenceNumberFormatString", 
            "ceo", "salesPriceCalculatorBeanDefRef", 
            "amountDaysForPaymentReminderMailOfPrepaidOrders", "amountDaysForAutoCancellationOfPrepaidOrders")
    VALUES (5000, true, null, true, 2, 
            true, now(), 'inTRONICS', 2, 
            false, null,
            14, 'inTRONICS', null, 
			5000, 	--shopAddressRef; assumed 5000 is the referenced address
            200, 	--shopOrderValidationRef; assumed 200 is the referenced validation rule
			false, 
            'inTRONICS', null, 
            false, null, null, 
            'ceo', null, 
            14, 30);

2.2 ShopAddressDO

Contains the address properties of an shop. This information is mainly used in customer email templates.

PropertyDescriptionExample
idID / primary key10001
addressLine1First address lineIntershop Communications AG
addressLine2Second address lineIntershop Tower
addressLine3Third address line07740 Jena
addressLine4Fourth address lineGermany
addressLine5Fifth address linenull
shopUrlURL of the shophttp://www.intershop.com/
shopFaqLinkFAQ link of the shopnull
shopMyAccountLinkMy account link of the shopnull
shopRefundFaqLinkRefund FAQ link of the shopnull
shopCcarePhoneNoCustomer care phone number of the shopnull
shopCcareMailAddressCustomer care mail address of the shopnull
shopFaceBookLinkFacebook link of the shopnull
shopTwitterLinkTwitter link of the shopnull
shopYoutubeLinkYouTube link of the shopnull
shopInstagramLinkInstagram link of the shopnull
shopNewsletterSignupLinkNewsletter sign up link of the shopnull
shopIbanIBAN of the shopnull
shopBankAccountHolderAccount holder of the shopnull
shopOrderStateLinkOrder state link of the shopnull
Example
INSERT INTO "ShopAddressDO"(
            id, "addressLine1", "addressLine2", "addressLine3", "addressLine4", 
            "addressLine5", "shopUrl", "shopFaqLink", "shopMyAccountLink", 
            "shopRefundFaqLink", "shopCcarePhoneNo", "shopCcareMailAddress", 
            "shopFaceBookLink", "shopTwitterLink", "shopYoutubeLink", "shopInstagramLink", 
            "shopNewsletterSignupLink", "shopIban", "shopBankAccountHolder", 
            "shopOrderStateLink")
    VALUES (nextval('oms."ShopAddressDO_id_seq"'), 'Intershop', 'Intershop Tower', '07740 Jena', 'Germany', 
            null, 'http://www.intershop.com/', null, null, 
            null, null, null, 
            null, null, null, null, 
            null, null, null, 
            null);

2.3 ShopOrderValidationDO

The configuration table oms."ShopOrderValidationDO" contains a set of field names corresponding to the order message. It can be configured whether such field should be validated.

The configuration of Guide - IOM Shop Onboarding 2.2#Shop2OrderValidationRuleDefDO allows to switch between synchronous or asynchronous validation.

PropertyDescriptionExample
idID / primary key10001
nameName of the validation settest
articleIdCheck for article identifiertrue/false
commercialRegisterCheck for commercial register informationtrue/false
companyNameCheck for company nametrue/false
companyTypeCheck for company typetrue/false
costNoCheck for cost center informationtrue/false
departmentCheck for department informationtrue/false
eanCheck for EANtrue/false
lineOfBusinessCheck for line of business informationtrue/false
purchaseGrossCheck for purchase price grosstrue/false
purchaseNetCheck for purchase price nettrue/false
purchaseTaxCheck for purchase price taxtrue/false
salesGrossCheck for sales price grosstrue/false
salesNetCheck for sales price nettrue/false
salesTaxCheck for sales price taxtrue/false
shopCustomerNoCheck for shop customer numbertrue/false
shopOrderNoCheck for shop order numbertrue/false
shopSelectedSupplierIdCheck for selected supplier informationtrue/false
vatNoCheck for VAT number informationtrue/false
singlePositionArticleCheck for single position article informationtrue/false
orderAddressEmailRequiredCheck for email in the order addresstrue/false
Example
--B2C Invoicing Rules Set
INSERT INTO oms."ShopOrderValidationDO"
(
    id,
	"articleId",
	"commercialRegister", "companyName", "companyType", "costNo", "department",
	"ean", "lineOfBusiness", "purchaseGross", "purchaseNet", "purchaseTax",
	"salesGross",
	"salesNet", "salesTax",
	"shopCustomerNo", "shopOrderNo",
	"shopSelectedSupplierId", "vatNo", "singlePositionArticle",
	"name",
	"orderAddressEmailRequired"
)
VALUES 
(
	200,
	true,
	false, false, false, false, false,
	false, false, false, false, false,
	true,
	false, false,
	true, true,
	false, false, false,
	'B2C Invoicing Rules Set',
	true
);

2.4 Shop2SupplierDO

The database table oms."Shop2SupplierDO" includes the relationship between an IOM shop instance and an IOM supplier entity. It is the glue for the shop supplier relationship.

PropertyDescriptionExample
idID / primary key15000
activeIndicates enabled / disabled shop to supplier relationshipsTRUE
modificationDateTime stamp of the last modification - should be updated with each changenow()
reservationTimeInDays

The supplier holds a reservation for the shop for this number of days - should be 0

Note

Reservations are currently not supported by the IOM.
0
sendOffTimeInHoursdeprecated column - should be 0
In a future IOM version this column will be removed.
0
shopAccount

User account of the shop system for the placement of supplier response, dispatch, and return messages from the IOM to the shop system - set only if required.

Used by:

  • XML element User at storeResponse
  • XML element User at storeDispatch
  • XML element User at storeReturn
null
shopPassword

Password of the above mentioned shopAccount - set only if required.

Used by:

  • XML element Password at storeResponse
  • XML element Password at storeDispatch
  • XML element Password at storeReturn
null
shopSupplierName

Name (identifier) of the supplier as called by the the shop system - mandatory but no constraint at the DB

Used by:

  • Order placement shop system to OMS (selectedSupplier)
  • OrderStateService method getOrderStateReport (OrderStateReportMapperOutBean)
    - XML attribut name at element Supplier
  • ReverseService method returnSlipRequest (ReturnRequestResponseMapperOutBean)
    - XML attribut name at element Supplier
  • Outbound XML messages like response , dispatch , and return from the IOM 
  • Document creation (OrderDocumentsMapperBean) -  see OrderDocuments.xsd element SupplierData at OrderDocuments attribute shopSupplierName  
SIM supplier - North
splitShipmentAllowed

Indicates the allowance of the retailer / shop to split an order into multiple shipments.

Used by:

  • Order placement - IOM to supplier (this configuration property is used when no corresponding value at the order is present   )
TRUE
supplierAccount

User account of the supplier system for the placement of order messages from the IOM to the supplier system - set only if required.

Used by:

  • Order placement - IOM to supplier (Shop2SupplierTransmissionWrapper)
    XML element User at storeOrder
null
supplierPassword

Password of the above mentioned supplierAccount - set only if required.

Used by:

  • Order placement - IOM to supplier (Shop2SupplierTransmissionWrapper)
    XML element Password at storeOrder
null
supplierShopName

Name (identifier) of the retailer / shop as called by the the supplier.

Used by:

  • IOM SOAP Web service ShopService (Response transmission and Dispatch transmission, see Reference - IOM SOAP Web Services)
  • Document creation (OrderDocumentsMapperBean) -  see OrderDocuments.xsd element ShopData at OrderDocuments  attribute supplierShopName
  • Order placement (FileSenderBean) - IOM to supplier for the wildcard SHOP at the filename
SIM
shopRefReference to the IOM shop instance - references oms."ShopDO" - $shopId10000
supplierRefReference to the IOM supplier instance - references SupplierDO - $supplierId5000
supplierShopKeydeprecated column - should be null
In a future IOM version this column will be removed.
null
sendOrderCoupon

Indicates whether existing order coupons (oms.”OrderCouponDO”) are sent to the supplier alongside with the order.

Used by:

FALSE
supplierSupportsCOD

Indicates whether the supplier supports payment method COD in relation to the retailer / shop.
If FALSE   the supplier is not considered in the DOSE process for orders with payment method COD.    

Used by:

  • Dynamic Order Supplier Evaluation
FALSE
eolDetectionTimeIntervalSpecifies the time in minutes to determine when a product that was not available at the last successfully imported dynamic data file (see Product import) is set to EOL by the IOM. 
  • null = The IOM default EOL detection time interval of seven days
  • 0 = The next EOL detection run (triggered by a quartz job) sets the concerned products immediately to EOL

Used by:

  • IOM article management - function / stored procedure "product.article_eol_detection"
null
resetStockOnImport

Specifies whether to set the inventory of a product to 0 if   the product is no longer included in the product data files from the supplier . This determination is made only when the property "checkMissingInLastDatapack"   at the import configuration (see product."ImportConfigurationDO") for the related supplier is set to TRUE.

Used by:

FALSE
flatRateShipping

Specifies the delivery charge, which has been agreed between the retailer / shop and the supplier. This delivery charge is used in the optional IOM sales price calculation.
This charge is added to the purchase price to determine the selling price . If this property is NULL, 0 is added.

Used by:

  • DB function / stored procedure "product.process_salesprice_calculation"
null
isDropShipment

Indicates if the supplier provides drop shipment for the retailer / shop. This property has an impact on business processes. If the property supplierTypeDefRef = 3 of the related supplier, then this property should be TRUE.

Used by:

  • This property has  an impact on business processes - DropshipperExecutionDeciderBean
FALSE
immaterialArticleUrlValidityDurationdeprecated column - should be null
In a future IOM version this column will be removed.
null
returnCarrierRef

Specifies the carrier, which is used in the return processes between this shop and this supplier. - references oms."CarrierDO"

Used by:

  • Creation of return label according to the configured carrier  
null
leadCode

Lead code of the supplier at the carrier for the return label
 

Used by:

  • creation of return label (complexType "ReturnLabel", element "LeadCode")
null
useSupplierArticleNoAsShopArticleNo 

Indicates whether the product number of the supplier (see Product Import) should be used as the shop product number.
If TRUE no further mapping of supplier product numbers to shop SKU is necessary. The OMS creates the necessary import file (so-called N-File) during product import processing.

Used by:

FALSE
shopArticleNoPrefix

Only useful if property Guide - IOM Shop Onboarding 2.2#useSupplierArticleNoAsShopArticleNo is TRUE.
The shop product numbers can be created by the IOM using the supplier product numbers enriched with  this prefix value.

 Used by:

null

Note

A unique constraint ensures that the relationship of a specific shop (property shopRef) to a specific supplier (property supplierRef) only occurs once.
Another unique constraint ensures that for a specific shop (property shopRef) the shop supplier name (property shopSupplierName) only occurs once.
And still another unique constraint ensures that for a specific supplier (property supplierRef) the supplier shop name (property supplierShopName) only occurs once.
A relationship between the shop an the internal supplier (id = 1) is needed for IOM internal processes.

Example
INSERT INTO oms."Shop2SupplierDO"(
            "id", "active", "modificationDate", "reservationTimeInDays", "sendOffTimeInHours", 
            "shopAccount", "shopPassword", "shopSupplierName", "splitShipmentAllowed", 
            "supplierAccount", "supplierPassword", "supplierShopName", "shopRef", 
            "supplierRef", "supplierShopKey", "sendOrderCoupon", "supplierSupportsCOD", 
            "eolDetectionTimeInterval", "resetStockOnImport", "flatRateShipping", 
            "isDropShipment", "immaterialArticleUrlValidityDuration", "returnCarrierRef", 
            "leadCode", "useSupplierArticleNoAsShopArticleNo", "shopArticleNoPrefix")
    VALUES (15000, TRUE, now(), 0, 0, 
            null, null, 'SIM supplier - North', FALSE, 
            null, null, 'SIM', 10000, 
            5000, null, FALSE, FALSE, 
            null, FALSE, null, 
            FALSE, null, null, 
            null, FALSE, null);

2.5 Shop2TaxTypeDefDO

Tax type mapping for taxes used in order service.

PropertyDescriptionExample
idID / primary key10001
shopTaxTypeNameName (identifier) of the tax type as used by the shopFULL-TAX
taxTypeDefRefreference to oms."TaxTypeDefDO"5
shopRefReference to oms."ShopDO" - $shopId10000

Note

A unique constraint ensures that for a specific shop any tax type occurs only once.

2.5.1 Tax Types (oms."TaxTypeDefDO")

IDtaxType
1NO_TAX
2VERY_LOW_TAX
3LOW_TAX
4INTERMEDIATE_TAX
5NORMAL_TAX
6SERVICE
Example
INSERT INTO "Shop2TaxTypeDefDO"(
            id, "shopTaxTypeName", "taxTypeDefRef", "shopRef", "modificationDate")
    VALUES (nextval('oms."Shop2TaxTypeDefDO_id_seq"'), 'FULL-TAX', 5, 5000, now());

2.6 TaxDO

Contains the effective rates per country for the diverse tax type and their dates of validity. Common rates are already  defined there, but you should verify for their correctness and possibly add missing one.

The taxes applied in a shop depends hence from the country it is attached to ("ShopDO"."countryDefRef").

PropertyDescriptionExample
idID / primary key10001
countryDefRefsee Guide - IOM Shop Onboarding 2.2#CountryDefDOFULL-TAX
taxthe tax value in %17.5
taxTypeDefRefsee Guide - IOM Shop Onboarding 2.2#TaxTypeDefDO5
validFromvalid from date for this tax'2012-01-01 00:00:00'
validTovalid to date for this tax'2099-01-01 00:00:00'
Example
--assign major tax type to a shop
INSERT INTO "TaxDO"
(
	id, "countryDefRef", "tax", "taxTypeDefRef", "validFrom", validUntil)
)
VALUES
(
	nextval('oms."TaxDO_id_seq"'), 7, 17.5, 6, '2012-01-01 00:00:00', '2099-01-01 00:00:00'
);

2.7 CarrierDO

Contains the distributors' freight managers with their characteristics.

PropertyDescriptionExample
idID / primary key11
modificationDateTimestamp of last modificationnow()
nameName of the carrierDHL
trackingUrlTracking URL used by this carrier http://nolp.dhl.de/nextt-online-public/report_popup.jsp
cargoCompanyFor return logistics, specification of the package center, used for return labelsDeutsche Post AG
cargoCenterFor return logistics, name of the recipient, used for return labelsPaketzentrum 93
identCodeGenerationBeanDefRefReference to the identification code generation bean2
Example
INSERT INTO "CarrierDO"(
            id, "modificationDate", name, "trackingUrl", version, "cargoCompany", 
            "cargoCenter", "identCodeGenerationBeanDefRef")
    VALUES (nextval('oms."CarrierDO_id_seq"'), now(), 'DHL', 'http://nolp.dhl.de/nextt-online-public/report_popup.jsp', 1, null, 
            null, 2);

2.8 Shop2CarrierDO

Optional - Use this table to configure, if the shop insists on its own values for the carrier. Otherwise the property name from table oms."CarrierDO" must be used.  

PropertyDescriptionExample
idID / primary key10001
shopCarrierNameName (identifier) of the carrier as used by the shopDeutsche Post DHL
carrierRef"shopCarrierName" mapped to an IOM internal carrier - reference to oms."CarrierDO"11
shopRefreference to oms."ShopDO" - $shopId 10000

Note

A unique constraint ensures that for a specific shop any carrier name (property supplierCarrierName) occurs only once.
Example
INSERT INTO oms."Shop2CarrierDO"(
            "id", "shopCarrierName", "carrierRef", "shopRef")
    VALUES (nextval('oms."Shop2CarrierDO_id_seq"'), 'Deutsche Post DHL', 11, 5000);

2.9 Shop2CountryDefDO

The configuration table oms."Shop2CountryDefDO" maps the IOM internal countries to shop specific identifier.

PropertyDescriptionExample
idID / primary key10001
countryDefRef"shopCountryName" and "shopCurrencyName" mapped to an IOM internal country - reference to oms."CountryDefDO"9
shopCountryNameName (identifier) of the country  as used by the shopBELGIUM
shopCurrencyNameName (identifier) of the currency  as used by the shopEURO
shopRefReference to oms."ShopDO" - $shopId5000

Note

A unique constraint ensures that for a specific shop any country occurs only once.

2.9.1 Countries (oms."CountryDefDO")

IdNameCurrencycurrencyNamecurrencySymbolisoCode2isoCode3isoNumeric
1JamaicaJMDJamaica DollarJ$JMJAM388
2GermanyEUREuroDEDEU276
3AustriaEUREuroATAUT40
4NetherlandsEUREuroNLNLD528
5SwitzerlandCHFSchweizer FrankenSFrCHCHE756
6PolandPLNZłotyPLPOL616
7FranceEUREuroFRFRA250
8LuxemburgEUREuroLULUX442
9BelgiumEUREuroBEBEL56
10Czech RepublicCZKKoruna českáCZCZE203
11DenmarkDKKDanske kronerDKrDKDNK208
12Great BritainGBPPound£GBGBR826
13GreeceEUREuroGRGRC300
14IrelandEUREuroIEIRL372
15RomaniaRONLeiLROROU642
16BulgariaBGNLewalvBGBGR100
17CyprusEUREuroCYCYP196
18LatviaLVLLatiLsLVLVA428
19EstoniaEUREuroEEEST233
20LithuaniaLTLLitLtLTLTU440
21ItalyEUREuroITITA380
22EspanaEUREuroESESP724
23SwedenSEKKronorSkrSESWE752
24PortugalEUREuroPTPRT620
25LiechtensteinCHFSchweizer FrankenSFrLILIE438
26FinlandEUREuroFIFIN246
27SlovakiaEUREuroSKSVK703
28SloveniaEUREuroSISVN705
29USAUSDUS-Dollar$USUSA840
30Equatorial GuineaXAFCentral African CFA francFCFAGQGNQ226
31ArgentinaARSArgentine Peso$ARARG32
32AustraliaAUDAustralian DollarA$AUAUS36
33BrazilBRLRealR$BRBRA76
34ChileCLPChilean Peso$CLCHL152
35ChinaCNYRenminbi¥CNCHN156
36ColombiaCOPColombian Peso$COCOL170
37CroatiaHRKKunaknHRHRV191
38CubaCUPCuban Peso$CUCUB192
39EgyptEGPEgyptian poundEGEGY818
40GrenadaXCDEast Caribbean Dollar$GDGRD308
41GreenlandDKKDanske kronerDKKGLGRL304
42HaitiHTGHaitian gourdeGHTHTI332
43Vatican City StateEUREuroVAVAT336
44HondurasHNLLempiraLHNHND340
45Hong KongHKDHong Kong DollarHK$HKHKG344
46HungaryHUFForintFtHUHUN348
47IcelandISKíslensk krónakrISISL352
48IndiaINRIndian rupeeININD356
49IndonesiaIDRIndonesian rupiahRpIDIDN360
50IsraelILSNew ShekelILISR376
51JapanJPYYen¥JPJPN392
52MaltaEUREuroMTMLT470
53MexicoMXNMexican Peso$MXMEX484
54MontenegroEUREuroMEMNE499
55New ZealandNZDNew Zealand Dollar$NZNZL554
56NorwayNOKNorsk kronekrNONOR578
57PeruPENSolS/PEPER604
58Russian FederationRUBRoubleрубRURUS643
59Saudi ArabiaSARRiyalSASAU682
60SerbiaRSDDinarRSDRSSRB688
61SingaporeSGDSingapore DollarS$SGSGP702
62Sri LankaLKRSri Lankan rupeeRsLKLKA144
63South AfricaZARRandRZAZAF710
64South KoreaKRWWonKRKOR410
65TaiwanTWDTaiwan DollarNT$TWTWN158
66ThailandTHBBaht฿THTHA764
67TunisiaTNDDinarDTTNTUN788
68TurkeyTRYLiraTLTRTUR792
69UkraineUAHHryvniaUAUKR804
70United Arab EmiratesAEDDirhamد.إAEARE784
71United States Minor Outlying IslandsUSDDollar$UMUMI581
72UzbekistanUZSSomsomUZUZB860
73VenezuelaVEFBolívar fuerteBsVEVEN862
74VietnamVNDDongVNVNM704
Example
INSERT INTO oms."Shop2CountryDefDO"(
            "id", "countryDefRef", "shopCountryName", "shopCurrencyName", "shopRef")
    VALUES (nextval('oms."Shop2CountryDefDO_id_seq"'), 9, 'BELGIUM', 'EURO', 5000);

2.10 Shop2ChargeTypeDefDO

Includes the name of a charge type as used by the shop, with reference to the internal charge type.

PropertyDescriptionExample
idID / primary key10001
chargeTypeDefRefReference to the internal charge type Guide - IOM Shop Onboarding 2.2#ChargeTypeDefDO1
shopChargeTypeNameName of the charge type used by the shop'delivery charge'
shopRef$shopId10000

2.10.1 Charge Types (oms."ChargeTypeDefDO")

IDName
1Cod Charge
2Delivery Charge
3Handling Charge
4Payment Charge
Example
INSERT INTO "Shop2ChargeTypeDefDO"(
            id, "chargeTypeDefRef", "shopChargeTypeName", "shopRef")
    VALUES (nextval('oms."Shop2ChargeTypeDefDO_id_seq"'), 1, 'delivery charge', 10000);

2.11 Shop2Supplier2ApprovalTypeDefDO

Optional: Defines the approval steps for orders, a specific shop and an optional supplier/PSP

PropertyDescriptionExample
idID / primary key10001
activeIndicates enabled / disabled this approval ruletrue
isAffectingDOSEonChangeSpecifies whether a approval with changes can have an impact on the DOSE, and should therefore be re-cycled.false
approvalRankPriority of an approval which determines in which order approvals are considered before or after others.1
approvalTypeDefRefReference to ApprovalTypeDefDO3
isOrderTransmissionIndicates whether the approval should be respected as approval transmission to the supplier additionally.false
supplierApprovalTypeNameOptional name of the approval type used at the supplier.'General Approval'
shopRefReference to oms."ShopDO" - $shopId10000
supplierRefOptional reference to a supplier  - oms."SupplierDO"5000
paymentProviderRefOptional reference to a PSPnull
decisionBeanDefRefOptional reference to a decision bean which checks whether the configured approval is necessary for the given order. If this is not available, the approval is always necessary.null
sendOrderApproval

Specifies whether to create a approval request for this configuration. This can be send to the supplier.

false
supplierApprovalTypeDescriptionDescription of the approval type used at the supplier. Is included in the approval request'General Approval'
manualApprovalIndicates whether the rule can offer a manual approval or not.true

2.11.1 Approval Types (oms."ApprovalTypeDefDO")

IDName
1UnknownApprovaltype
2Paymenttype
3General
4FraudPrevention
5Payment
Example
INSERT INTO "Shop2Supplier2ApprovalTypeDefDO"(
            id, active, "isAffectingDOSEonChange", "approvalRank", "approvalTypeDefRef", 
            "isOrderTransmission", "supplierApprovalTypeName", "shopRef", 
            "supplierRef", "paymentProviderRef", "decisionBeanDefRef", "sendOrderApproval", 
            "supplierApprovalTypeDescription", "manualApproval")
    VALUES (nextval('oms."Shop2Supplier2ApprovalTypeDefDO_id_seq"'), true, false, 1, 3, 
            false, 'General Approval', 10000, 
            10000, null, null, false, 
            'General Approval', true);

2.12 Shop2OrderStatesDefDO

Optional: Includes the name of order statuses as used by the shop and the reference to internal order status. It is used in the OrderState webservice to inform the shop of the order status. 

PropertyDescriptionExample
idID / primary key10001
orderStatesDefRefReference to oms."OrderStatesDefDO"0
shopOrderStatesNameName of the state used by the shop, depends the order state in the OrderStateServiceinitial
shopRefReference to oms."ShopDO" - $shopId10001

2.12.1 Order States (oms."OrderStatesDefDO")

IDNameDescription
0INITIALOrder initially stored in the database.
500DO_CHECKOrder modified manually and ready to process.
998NOT_CHECKEDOrder has to be checked manually.
999NOT_CHECKED_DO_CANCELOrder canceled completely after order check.
1000CHECKEDOrder was checked.
1501ORDER_APPROVAL_REQUIRED@Deprecated -> Order approval required -> on-hold because there are already related entries in order history state tables.
1540DO_CREATE_APPROVALTRANSMISSION@Deprecated -> Transmission object for order approval has to be created -> on-hold because there are already related entries in order history state tables.
1550CREATED_APPROVALTRANSMISSION@Deprecated -> Transmission object for order approval was created -> on-hold because there are already related entries in order history state tables.
1580DO_APPROVEValidation failed. Manual approval required.
1599NOT_APPROVEDOrder approval was rejected.
1600APPROVEDOrder approved.
2001DO_ANNOUNCESupplier has to be assigned.
2095CHECK_ANNOUNCED

Supplier was assigned to order positions but does not respect the configured tolerances. Assigned suppliers has to be approved manually.

2098NOT_ANNOUNCEDAt least one order position could not be assigned to a supplier. Order has to be canceled manually.
2099NOT_ANNOUNCED_DO_CANCELAssignment to a supplier failed, i.e., end of life (EOL) of an article -> automated cancellation of order is configured.
2100ANNOUNCEDSuppliers are assigned to the order positions.
2101DO_OPTIMIZEAssigned suppliers has to be optimized.
2200OPTIMIZEDFinished optimization of assigned suppliers.
2401DO_PREPARE_RESPONSETemporary response to the shop will be created.
2501DO_PREPARE_DOCUMENTRequired objects to create documents will be created.
2600PREPARED_DOCUMENTFinished creation of documents.
4001DO_CREATE_TRANSMISSIONOrder ready to be submitted to the supplier. Order transmission will be created.
4099WAIT_FOR_TRANSMITOrder is waiting to be submitted to the supplier. I.e., supplier does not support article reservation.
4100CREATED_TRANSMISSIONCreated order transmission of type SEND_ORDER or ORDER_RESERVATION.
4200RESERVATED

Reservation was submitted to the supplier OR entirely on-hold OR partially submitted and partially on-hold OR partially canceled (see status of order positions).

4210RESERVATION_PARTLY_RETURNEDReservation paritally revoked. Waiting for return.
4400PARTLY_COMMISSIONEDOrder partially submitted.
4420PARTLY_COMMISSIONED_PARTLY_DISPATCHEDOrder partially submitted and partially dispatched.
4440PARTLY_COMMISSIONED_PARTLY_RETURNEDOrder partially submitted and partially canceled/ returned.
4460PARTLY_COMMISSIONED_PARTLY_DISPATCHED_PARTLY_RETURNEDOrder partially submitted and partially canceled/ returned.
4500COMMISSIONEDOrder entirely submitted.
4520COMMISSIONED_PARTLY_DISPATCHEDOrder entirely submitted and partially dispatched.
4540COMMISSIONED_PARTLY_RETURNEDOrder entirely submitted and partially canceled/ returned.
4560COMMISSIONED_PARTLY_DISPATCHED_PARTLY_RETURNEDOrder partially submitted, partially dispatched and partially canceled/ returned.
4600PICKINGOrder will be prepared for dispatch/ pickup.
5000DISPATCHEDOrder entirely dispatched.
5100DISPATCHED_PARTLY_RETURNEDOrder dispatched and partially returned.
5200READY_FOR_PICK_UPOrder/ delivery is read for pickup.
5300PICKED_UPOrder/ delivery was picked up.
6000RETURNEDOrder entirely returned.
6200CANCELEDOrder canceled before submission.
10000WAIT_MERGEOrder/ delivery was stopped because of order merge. Status to wait without status transitions.
20000DO_CUSTOM_PROCESSOrder/ delivery was stopped because of a custom process. Status to wait without status transitions.
Example
INSERT INTO "Shop2OrderStatesDefDO"(
            id, "orderStatesDefRef", "shopOrderStatesName", "shopRef")
    VALUES (nextval('oms."Shop2OrderStatesDefDO_id_seq"'), 0, 'initial', 10000);

2.13 Shop2OrderPosStatesDefDO

Optional: Includes the name of order position states as used by the shop and reference to internal order status.
Is used in the OrderState webservice to inform the shop of the order position status.  

PropertyDescriptionExample
idID / primary key10001
orderPosStatesDefRefReference to oms."OrderPosStatesDefDO"0
shopOrderPosStatesNameName of the position state used by the shop, depends the order state in the OrderStateServiceinitial
shopRefReference to oms."ShopDO" - $shopId

2.13.1 Order Position States (oms."OrderPosStatesDefDO")

IDNameDescription
0INITIALOrder position initially stored in the database.
500DO_CHECKOrder position modified manually and ready to process.
998NOT_CHECKEDOrder position has to be checked manually.
999NOT_CHECKED_DO_CANCELOrder position canceled after order check.
1000CHECKEDOrder position was checked.
1501ORDER_APPROVAL_REQUIREDApproval required.
1540DO_CREATE_APPROVALTRANSMISSIONTransmission object for order approval has to be created.
1550CREATED_APPROVALTRANSMISSIONTransmission object for order approval was created.
1580DO_APPROVEValidation failed. Manual approval required.
1599NOT_APPROVEDApproval was rejected.
1600APPROVEDApproved.
2001DO_ANNOUNCESupplier has to be assigned.
2095CHECK_ANNOUNCEDSupplier was assigned to order positions but does not respect the configured tolerances. Assigned suppliers has to be approved manually.
2098NOT_ANNOUNCED

Order position could not be assigned to a supplier. Order has to be canceled manually.

2099NOT_ANNOUNCED_DO_CANCELAssignment to a supplier failed, i.e., end of life (EOL) of an article -> automated cancellation of order is configured.
2100ANNOUNCEDSupplier was assigned to the order positions.
2101DO_OPTIMIZEAssigned supplier has to be optimized.
2200OPTIMIZEDFinished optimization of assigned suppliers.
2301DO_CHECK_ORDER_APPROVAL_REQUIREDCheck for order approval.
2401DO_PREPARE_RESPONSETemporary response to the shop will be created.
2501DO_PREPARE_DOCUMENTRequired objects to create documents will be created.
2600PREPARED_DOCUMENTFinished creation of documents.
4001DO_CREATE_TRANSMISSIONOrder position ready to be submitted to the supplier. Order transmission will be created.
4099WAIT_FOR_TRANSMITOrder position is waiting to be submitted to the supplier. I.e., supplier does not support article reservation.
4100CREATED_TRANSMISSIONCreated transmission of type SEND_ORDER or ORDER_RESERVATION.
4110TRANSMISSION_FAILEDFailed to submit order position to supplier. Transient state for interfaces.
4200RESERVATEDReservation was submitted to the supplier.
4210RESERVATION_PARTLY_RETURNEDReservation revoked. Waiting for return.
4500COMMISSIONEDOrder position submitted to the supplier.
4510COMMISSIONED_CONFIRMEDSubmitted order position to supplier and was confirmed by the supplier (response). Transient state for interfaces.
4520COMMISSIONED_PARTLY_RETURNEDOrder position submitted and partially dispatched.
4540COMMISSIONED_PARTLY_DISPATCHEDOrder position submitted and partially dispatched.
4560COMMISSIONED_PARTLY_DISPATCHED_PARTLY_RETURNEDOrder position partially submitted, partially dispatched and partially canceled/ returned.
4600PICKINGOrder position will be prepared for dispatch/ pickup.
5000DISPATCHEDOrder position dispatched.
5100DISPATCHED_PARTLY_RETURNEDOrder position/ delivery dispatched and partially returned.
5200READY_FOR_PICK_UPOrder position/ delivery is read to pickup.
5300PICKED_UPOrder position/ delivery was picked up.
6000RETURNEDOrder position returned.
6200CANCELEDOrder position canceled before submission.
10000WAIT_MERGEOrder position/ delivery was stopped because of order merge. Status to wait without status transitions.
Example
INSERT INTO "Shop2OrderPosStatesDefDO"(
            id, "orderPosStatesDefRef", "shopOrderPosStatesName", "shopRef")
    VALUES (nextval('oms."Shop2CarrierDO_id_seq"'), 0, 'initial', 10000);

2.14 Shop2OrderSupplierEvaluationRuleDefDO

Describes the intended order-supplier evaluation rules for a shop and determines whether, in the event of a fault, this leads to an automatic cancellation of the order.

PropertyDescriptionExample
idID / primary key10001
errorForcesAutomaticCancelationIndicates whether an error causes the order to be automatically canceledtrue
orderSupplierEvaluationRuleDefRefReference to the evaluation rule in oms."OrderSupplierEvaluationRuleDefDO"900
shopRefReference to oms."ShopDO" - $shopId10000

2.14.1 Evaluation Rules (oms."OrderSupplierEvaluationRuleDefDO")

PropertyDescription
idID / primary key
nameThe name of the rule.
descriptionThe description of the rule.
mandatoryWhether the rule is mandatory to be checked.
rankPriority/ rank the rules should be checked before and after others.

2.14.2 Data

IDNameDescriptionRankMandatory
1Availability and delivery time checkAvailability and delivery time check100FALSE
4Sales priceSales price checck180FALSE
5Purchase pricePurchase price check200FALSE
6Delivery dateDelivery date check220FALSE
7CODCheck for COD can be full filled900TRUE
8Preferred supplier checkPreferred supplier check950FALSE
9Selected supplier checkSelected supplier check940FALSE
999Status update to FINISHEDAll evaluations have the status FINISHED999TRUE
Example
INSERT INTO "Shop2OrderSupplierEvaluationRuleDefDO"(
            id, "errorForcesAutomaticCancelation", "orderSupplierEvaluationRuleDefRef", 
            "shopRef")
    VALUES (nextval('oms."Shop2OrderSupplierEvaluationRuleDefDO_id_seq"'), true, 900, 
            10000);

2.15 Shop2OrderValidationRuleDefDO 

Includes the validation rules configured for a shop for an incoming order

PropertyDescriptionExample
idID / primary key10001
orderValidationRuleDefRefReference to oms."OrderValidationRuleDefDO"1
runSynchron

If true validation is carried out synchronously at the time of order acceptance
If false, then it is executed asynchronously after accepting the order

true
shopRefReference to oms."ShopDO" - $shopId10000

2.15.1 Validation Rules (oms."OrderValidationRuleDefDO")

PropertyDescription
idID / primary key
nameThe name of the rule.
mandatoryWhether the rule is mandatory to be checked.
rankPriority/ rank the rules should be checked before and after others.

2.15.2 Data

IDNameRankMandatory
1Validation according to configurations of Guide - IOM Shop Onboarding 2.2#ShopOrderValidationDO1000FALSE
2Validation sum of prices, positions, etc.180FALSE
3Check if sales price is given if payment is cash on delivery (cod).200TRUE
4Check if article-ids are known within the application.140TRUE
5Set addition to the order if required.220TRUE
6Check if validation of prices should be proccessed during the supplier assigment process (DOSE).240FALSE
8Checks if an order was created manually. Prices order, prices of positions and customer information will be completed.100FALSE
9Validates that parameters of the order fits to the given basket.250FALSE
10Creates an ImmaterialItemDO for non-physical articles if not exists.260FALSE
11Valildation of delivery address.270FALSE
12Validation of billing address.280FALSE
13Creates a new customer from an order if not exists in the application.290FALSE
14Set selected supplier from reservation.150FALSE
Example
INSERT INTO "Shop2OrderValidationRuleDefDO"(
            id, "orderValidationRuleDefRef", "runSynchron", "shopRef")
    VALUES (nextval('oms."Shop2OrderValidationRuleDefDO_id_seq"'), 1, true, 10000);

2.16 Shop2PaymentDefDO

Includes the supported payment types in a shop and their properties.

PropertyDescriptionExample
idID / primary key10001
activeIndicates enabled / disabled this payment methodtrue
initOrderStateDefRefReference to the status  oms."OrderStatesDefDO" in which the order for this payment type is initially set0
paymentDefRefReference to oms."PaymentDefDO"5
shopPaymentNameName as used by the shop in the order service'invoice'
shopRefReference to oms."ShopDO" - $shopId10000
safePaymentIndicates whether the payment method is considered to be securetrue
payment2ProcessStageDefRefProcess step of the order an invoice or payment can be done, i.e., after submitting an order from the shop20
useAutomaticAuthorizationExtension

Indicates whether the authorization is automatically extended before expiration.
However, the automatic authorization extension is limited to max. AuthizationDurationInDays days.

false
authizationDurationInDaysSpecifies how long an authorization persists, in days
NULL, 0 or a negative value means that the authorization will never expire.
A value > 0 leads to a automatic authorization extension or a automatic capture, 8 hours before the authorization will be expired.
30
timeForPaymentAllowedPayment period - given in days14

2.16.1 Payment Definitions (oms."PaymentDefDO")

IDNameDescription
1no paymentUnkown payment method
2pre paymentPrepayment
3credit cardCredit card
4cash on deliveryCash on delivery (cod)
5on accountOn account
6hire purchaseHire purchase, installment plan
7electronic direct debitElectronic direct debit
8leasingLeasing
9direct transferDirect transfer
10paypalPayPal
11klarnaKlarna
12couponCoupon
13personal checkPersonal check
14credit card via phone faxCredit card via phone or fax
15visaVisa
16american expressAmerican Express
17eurocardEuroCard
18mastercardMasterCard
19eBay paymentEbay payment
20store paymentPayment in store
21giropayGiropay
22billpayBillpay
23cash on pickupCash on pickup
24ISH Fast PayISH dummy payment method
30idealiDEAL
31maestro cardMaestro card
40manual refundManual refund
100no payment requiredNo payment required because order amount is zero
Example
INSERT INTO "Shop2PaymentDefDO"(
            id, active, "initOrderStateDefRef", "paymentDefRef", "shopPaymentName", 
            "shopRef", "safePayment", "payment2ProcessStageDefRef", "useAutomaticAuthorizationExtension", 
            "authizationDurationInDays", "timeForPaymentAllowed")
    VALUES (nextval('oms."Shop2CarrierDO_id_seq"'), true, 0, 5, 'invoice', 
            10000, true, 20, false, 
            null, null);

2.17 PaymentProviderDO

Optional: Describes the characteristics of a PSP

PropertyDescriptionExample
idID / primary key10001
modificationDate Timestamp of last modification now()
name Name of the payment providerKlarna 
Example
INSERT INTO "PaymentProviderDO"(
            id, "modificationDate", name)
    VALUES (nextval('oms."PaymentProviderDO_id_seq"'), now(), 'Klarna');

2.18 Shop2PaymentProvider2PaymentDefDO

Relationship between shop, payment provider and payment method

PropertyDescriptionExample
idID / primary key10001
shopRef'Reference to oms."ShopDO" - $shopId10000
paymentProviderRefReference to oms."PaymentProviderDO"1
paymentDefRefReference to oms."PaymentDefDO"1
creationDateCreation date of this configurationnow()
Example
INSERT INTO "Shop2PaymentProvider2PaymentDefDO"(
            id, "shopRef", "paymentProviderRef", "paymentDefRef", "creationDate")
    VALUES (nextval('oms."Shop2PaymentProvider2PaymentDefDO_id_seq"'), 10000, 10000, 11, now());

2.19 FinanceControllerDO

Optional: Describes the characteristics of a finance controller

PropertyDescriptionExample
idID / primary key10000
nameName of the finance controllerFC
Example
INSERT INTO "FinanceControllerDO"(
            id, name)
    VALUES (10000, 'FC');

2.20 FinanceController2PaymentDefDO

Optional: Includes the mapping of the payment methods used by the debtor management systems to PaymentDefDO

PropertyDescriptionExample
idID / primary key10001
financeControllerRefReference to oms."FinanceControllerDO"10001 
financeControllerPaymentExportNamePayment method name used by IOM for export to the finance controller. Used for export of open amounts, sales order or purchase orders.PayPal
financeControllerPaymentImportNamePayment method name used by IOM for imports from the finance controller. Used for import of open amounts, sales order or purchase orders.

PayPal

paymentDefRefReference to oms."PaymentDefDO"10
Example
INSERT INTO "FinanceController2PaymentDefDO"(
            id, "financeControllerRef", "financeControllerPaymentExportName", 
            "financeControllerPaymentImportName", "paymentDefRef")
    VALUES (nextval('oms."FinanceController2PaymentDefDO_id_seq"'), 10000, 'PayPal', 
            'PayPal', 10);

2.21 FinanceController2TaxTypeDefDO

Optional: Includes the mapping of the tax types used by the debtor management systems to TaxTypeDefDO

PropertyDescriptionExample
idID / primary key10001
financeControllerRefReference to oms."FinanceControllerDO"10001 
financeControllerTaxTypeExportNameTaxtype name used by IOM for export to the finance controller. Used for export of open amounts, sales order or purchase orders.FullTax
financeControllerTaxTypeImportNameTaxtype name used by IOM for imports from the finance controller. Used for import of open amounts, sales order or purchase orders.FullTax 
taxTypeDefRefreference to oms."TaxTypeDefDO"5
Example
INSERT INTO "FinanceController2TaxTypeDefDO"(
            id, "financeControllerRef", "financeControllerTaxTypeExportName", 
            "financeControllerTaxTypeImportName", "taxTypeDefRef")
    VALUES (nextval('oms."FinanceController2PaymentDefDO_id_seq"'), 10000, 'FullTax', 
            'FullTax', 5);

2.22 Shop2FinanceControllerDO

Optional: Relationship between shop and finance controller

PropertyDescriptionExample
idID / primary key10001
financeControllerRefReference to oms."FinanceControllerDO"10001
shopRefReference to oms."ShopDO" - $shopId10000
financeControllerShopNameShop name as used by the finance controller
inSPIRED
descriptionDescription
inSPIRED
Example
INSERT INTO "Shop2FinanceControllerDO"(
            id, "financeControllerRef", "shopRef", "financeControllerShopName", 
            description)
    VALUES (nextval('oms."Shop2FinanceControllerDO_id_seq"'), 10000, 10000, 'inSPIRED', 
            'inSPIRED');

2.23 Shop2ReturnStatesDefDO

Optional: Includes the name of a return state as used by the shop, reference to the internal return state.

PropertyDescriptionExample
idID / primary key10001
returnStatesDefRefReference to oms."ReturnStatesDefDO"0
shopReturnStatesNameName of the return state used by the shop, depends the order state in the OrderStateService'initial'
shopRefReference to oms."ShopDO" - $shopId10000

2.23.1 Return States (oms."ReturnStatesDefDO")

IDNameDescription
0INITIALReturn initially stored in the database.
500DO_CHECKModified manually and ready to process.
995NOT_CHECKED_DO_APPROVEValidation of return failed. The return has to be checked manually by the shop.
999NOT_CHECKEDValidation of return failed. The return has to be checked manually (IOM).
1000CHECKEDReturn was checked.
2001DO_APPROVEValidation failed. Return has to be approved.
2099APPROVE_MANUALReturn has to be approved manually.
2500APPROVEDReturn approved.
3001DO_PROCESSReturn is ready to process.
4001DO_ANNOUNCEAnnouncement of return information has to be done.
4100ANNOUNCEDFinished announcement of return information.
4701DO_COMPOSE_RESPONSEResponse to shop has to be created from return.
4800COMPOSED_RESPONSECreated response to the shop.
6000PROCESSEDReturn processed.
7001DO_PREPARE_DOCUMENTRequired objects to create documents will be created.
7100PREPARED_DOCUMENTFinished creation of documents.
7901DO_CLOSEReturn process can be closed.
8000CLOSEDClosed return processing.
8500APPROVAL_REJECTEDRejected approval.
8900IN_EXTERNAL_PROCESSINGReturn is in external processing.
9000FAILEDProcessing of return failed.
9999COPIED_FOR_MANUAL_EDITCreated copy of the message to be edited manually.
10000WAIT_MERGEReturn was stopped because of order merge. Status to wait without status transitions.
11000WAIT_PENDINGReturn was stopped after creation of new return by interface. Status to wait without status transitions.
Example
INSERT INTO "Shop2ReturnStatesDefDO"(
            id, "returnStatesDefRef", "shopReturnStatesName", "shopRef")
    VALUES (nextval('oms."Shop2ReturnStatesDefDO_id_seq"'), 0, 'initial', 10000);

2.24 Shop2ReturnReasonDefDO

Optional: This configuration table contains the return reasons supported by the shop. This table is used only for configuration, if the shop does not use the IOM internal return reasons. If nothing is configured, all IOM internal return reasons are possible and displayed in a choice grouped by the return type at the OMT.

PropertyDescriptionExample
idID / primary key10001
returnReasonDefRef"shopReturnReasonName" mapped to an IOM internal return reason - reference to oms."ReturnReasonDefDO"307
shopReturnReasonNameName (identifier) of the return reason as used by the shopWRONG_ITEM
shopRefReference to oms."ShopDO" - $shopId10000

2.24.1 Return Reasons (oms." ReturnReasonDefDO")

IDNameDescriptionReturn type
1CAN010Cancellation on customer demandCancellation
2CAN020Cancellation due to EOLCancellation
3CAN030Payment not receivedCancellation
4CAN031Leasing deniedCancellation
5CAN040Payment by installment deniedCancellation
6CAN050Purchase on account deniedCancellation
7CAN060Credit card order without feedbackCancellation
8CAN070Credit card order with foreign credit cardCancellation
9CAN080Cancellation due to suspicion of defraud|Cancellation
10CAN090Cancellation due to erroneous pricingCancellation
11CAN200Cancellation due to distributor switchCancellation
12CAN990Other reasonsCancellation
100RCL010Cancellation on customer demandRecall
101RCL015Cancellation on shop demandRecall
102RCL020Cancellation due to EOLRecall
103RCL023Cancellation due to erroneous article assignmentRecall
104RCL024Cancellation due to missing sales priceRecall
105RCL025Cancellation due to erroneous pricingRecall
106RCL030Erroneous approvalRecall
107RCL200Cancellation due to missing distributor assignmentRecall
108RCL980Cancellation due to suspicion of defraudRecall
109RCL990Other reasonsRecall
110RCL300Cancellation due to an erroneous orderRecall
111RCL050Purchase on account deniedRecall
112RCL040Approval rejectedRecall
113RCL400Cancellation due to erroneous distributor processesRecall
114RCL045Payment not receivedRecall
115RCL041Approval rejected due to EOLRecall
116RCL021Cancellation due to missing stockRecall
200INV010Refusal of acceptance by consigneeInversion
201INV020Consignee not meInversion
202INV030Wrong shipping addressInversion
203NV040Loss during shipmentInversion
204INV990Other reasonsInversion
300RET010Return of goods / generalReturn
301RET020Return of goods because of bad workmanshipReturn
302RET030Return of goods because of missing product attributesReturn
303RET040Return of goods because of better offerReturn
304RET050Return of goods because delivery time too longReturn
305RET060Defect within return period, DOAReturn
306RET070Item incomplete, missing partsReturn
307RET080Shop delivered wrong itemReturn
308RET090Distributor delivers wrong itemReturn
309RET100Transport damageReturn
310RET110Return on goodwillReturn
311RET120Unauthorized returnReturn
312RET990Other reasonsReturn
313RET045Return of goods because of inadequate priceReturn
314RET046Return of goods because of wrong priceReturn
315RET055Return of goods because of duplicate deliveryReturn
316RET075Order incomplete, missing positionReturn
317RET130Return of stained goodsReturn
318RET140Return of goods because customer does not like the designReturn
319RET150Return of goods because customer ordered several sizes/colorsReturn
320RET160Return of goods because customer does not like the materialReturn
321RET170Return of goods because customer does not like pattern/colorReturn
322RET180Return of replacementReturn
323RET190Return of goods because product does not meet customer expectationsReturn
324RET035Return of goods because picture differs from itemReturn
325RET057Return of goods because wrong quantity deliveredReturn
326RET142Return of goods because item too large/wideReturn
327RET144Return of goods because item too small/tightReturn
328RET145Return of goods because item too longReturn
329RET146Return of goods because item too shortReturn
330RET147Return of goods because item squeezesReturn
331RET148Return of goods because item has too much compressionReturn
332RET149Return of goods because item has not enough compressionReturn
333RET200Return rejectedReturn
400DEF010DOA, replacement through distributorDefect
401DEF020DOA, credit note from distributorDefect
402DEF030DOA, replacement through shopDefect
403DEF040Credit note with 6 months warrantyDefect
404DEF050Credit note after 6 months warrantyDefect
405DEF060Warranty with repair/replacement through distributorDefect
406DEF070Warranty with repair/replacement through shopDefect
407DEF080Guarantee with credit noteDefect
408DEF090Guarantee with repair/replacementDefect
409DEF100Unauthorized return of defective itemDefect
410DEF990Other reasonsDefect
Example
INSERT INTO oms."Shop2ReturnReasonDefDO"(
            "id", "returnReasonDefRef", "shopReturnReasonName", "shopRef", "shop2ReturnReasonDefSpecRef")
    VALUES (nextval('oms."Shop2ReturnReasonDefDO_id_seq"'), 307, 'WRONG_ITEM', 10000, null);

2.25 Shop2ReturnReason2ApprovalStateCodeReasonDefDO

Optional: Includes the assignments of approval reasons to the shop return reason. The approval reason can be transmitted in as a negative approval, i.e., refusal by the service provider. The shop return reason configured here is then set in the return, which is created due to the rejection.

PropertyDescriptionExample
idID / primary key10001
approvalStateCodeReasonDefRefReference to the internal approval reason1
shop2ReturnReasonDefRefReference to oms."Guide - IOM Shop Onboarding 2.2#Shop2ReturnReasonDefDO"10000

2.25.1 Approval State Code Reasons (oms." ApprovalStateCodeReasonDefDO")

IDNameDescriptionapprovalStateCodeDefRef
1010payment approvedPayment was approved.1
1990otherOther reasons.1
2010payment changedThe payment was changed.2
2990otherOther reasons.2
3010payment approval pendingPayment approval is pending.4
3990otherOther reasons.4
4010payment not approvedPayment was rejected.3
4050validation errorRejected because of validation errors.3
4060not approved due to EOL (end of life)Rejected because of EOL (end of life).3
4100payment not receivedRecjected because of not received payment.3
4980suspicion of fraudRejected because suspicion of fraud.3
4990otherOther reasons.3

2.25.2 Approval State Codes (oms." ApprovalStateCodeDefDO")

IDName
1approved
2approved with changes
3not approved
4pending
5waiting for approval
Example
INSERT INTO "Shop2ReturnReason2ApprovalStateCodeReasonDefDO"(
            id, "approvalStateCodeReasonDefRef", "shop2ReturnReasonDefRef")
    VALUES (nextval('oms."Shop2ReturnReason2ApprovalStateCodeReasonDefDO_id_seq"'), 1, 10000);

2.26 Shop2SalesChannelDefDO

Optional: The configuration table oms."Shop2SalesChannelDefDO" maps the IOM internal sales channels to shop specific identifier.

PropertyDescriptionExample
idID / primary key10001
salesChannelDefRef"shopSalesChannelName" mapped to an IOM internal sales channel - reference to oms."SalesChannelDefDO"1
shopSalesChannelNameName (identifier) of the sales channel  as used by the shopSALE
shopRefReference to oms."ShopDO" - $shopId10000

2.26.1 Internal Sales Channels (oms."SalesChannelDefDO")

IDName
1channel 1
2channel 2
3channel 3
4channel 4
5channel 5
6channel 6
7channel 7
8channel 8
9channel 9
10channel 10
11additional business

Note

A unique constraint ensures that for a specific shop any sales channel occurs only once.
Example
INSERT INTO oms."Shop2SalesChannelDefDO"(
            "id", "salesChannelDefRef", "shopSalesChannelName", "shopRef")
    VALUES (nextval('oms."Shop2SalesChannelDefDO_id_seq"'), 1, 'SALE', 10000);

2.27 Shop2DeliveryFormDefDO

Optional:Contains the name of a delivery form, as used by the shop, with reference to the IOM  internal delivery form. Used by: No usage by the IOM itself, but this table can be useful for customization.

PropertyDescriptionExample
idID / primary key10001
deliveryFormDefRef"shopDeliveryFormName" mapped to an IOM internal delivery form - reference to oms."DeliveryFormDefDO"20
shopDeliveryFormNameName (identifier) of the delivery form as used by the shopFF
shopRefReference to oms."ShopDO" - $shopId5000

2.27.1 Delivery Forms (oms."DeliveryFormDefDO")

IDName
10Standard
20Freight forwarding
30Immaterial goods

Note

A unique constraint ensures that for a specific shop any delivery form occurs only once.
Example
INSERT INTO oms."Shop2DeliveryFormDefDO"(
            "id", "deliveryFormDefRef", "shopDeliveryFormName", "shopRef")
    VALUES (nextval('oms."Supplier2DeliveryFormDefDO_id_seq"'), 20, 'FF', 10000);

2.28 Shop2DeliveryOptionDefDO

Optional: Contains the names of delivery options , as used by the shop , with reference to the IOM internal delivery options.    

PropertyDescriptionExample
idID / primary key10000
deliveryOptionDefRef"shopDeliveryOptionName" mapped to an IOM internal delivery option
- reference to oms."DeliveryOptionDefDO"
8
shopDeliveryOptionNamename (identifier) of the delivery form as used by the shopOVERNIGHT
shopRefreference to oms."ShopDO" - $shopId5000

2.28.1 Delivery Options (oms."DeliveryOptionDefDO")

IDName
1Cash on delivery
2Island delivery
3Delivery on Saturday
4Delivery with gift wrap paper
5Delivery with special attachment
6Delivery to container freight station
7Pick items up in store
8Night shipping

Note

A unique constraint ensures that for a specific shop any delivery option occurs only once.
Example
INSERT INTO oms."Shop2DeliveryOptionDefDO"(
            "id", "deliveryOptionDefRef", "shopDeliveryOptionName", "shopRef")
    VALUES (nextval('oms."Supplier2DeliveryOptionDefDO_id_seq"'), 8, 'OVERNIGHT', 10000);

2.29 Shop2ResponseStateCodeDefDO

Optional: This table is relevant if the shop supports order responses and if the shop insists on its own values for response state codes. Otherwise the property name from table oms."ResponseStateCodeDefDO" must be used. Used by Guide - IOM Shop Onboarding 2.2#Response transmission.

PropertyDescriptionExample
idID / primary key10000
responseStateCodeDefRef"supplierResponseStateCodeName" mapped to an IOM internal response state code - reference to oms."ResponseStateCodeDefDO"1
supplierResponseStateCodeNameName (identifier) of the response state code as used by the supplierOK
supplierRefReference to oms."SupplierDO" - $supplierId10000

2.29.1 Response State Codes (oms."ResponseStateCodeDefDO")

IDName
1Accepted
2Accepted with change
3Canceled
4Unchanged
5Changed
6Added
Example
INSERT INTO oms."Shop2ResponseStateCodeDefDO"(
            "id", "responseStateCodeDefRef", "shopResponseStateCodeName", "shopRef")
    VALUES (nextval('oms."Supplier2ResponseStateCodeDefDO_id_seq"'), 1, 'OK', 10000);

2.30 Shop2ReturnTypeDefDO

This configuration table contains the return types supported by the shop.

Note

Best practice: at least configure the return type Recall, Return and Inversion.

PropertyDescriptionExample
idID / primary key10001
returnTypeDefRef"shopReturnTypeName" mapped to an IOM internal return type - reference to oms."ReturnTypeDefDO"4
shopReturnTypeNameName (identifier) of the return type as used by the shopRET
shopRefReference to oms."ShopDO" - $supplierId5000

2.30.1 Return Types (oms." ReturnTypeDefDO")

IDName
1Cancellation
2Recall
3Inversion
4Return
5Defect
Example
INSERT INTO oms."Shop2ReturnTypeDefDO"(
            "id", "returnTypeDefRef", "shopReturnTypeName", "shopRef")
    VALUES (nextval('oms."Shop2ReturnTypeDefDO_id_seq"'), 4, 'RET', 10000);

Note

A unique constraint ensures that for a specific shop any return type occurs only once.

2.31 Shop2ReductionUnitDefDO

Optional: Use this table to configure if the property sendOrderCoupon of related Shop2Supplier is TRUE and the supplier insists on its own identifier for reduction units instead of the IOM internal reduction units. 

PropertyDescriptionExample
idID / primary key10001
reductionUnitDefRef"supplierReductionUnitName" mapped to an IOM internal reduction unit - reference to oms."ReductionUnitDefDO" 3
supplierReductionUnitNameName (identifier) of the reduction unit as used by the supplierMO
supplierRefReference to oms."SupplierDO" - $supplierId5000

2.31.1 Reduction Units (oms."ReductionUnitDefDO")

IDName
1Unknown reduction unit
2Percentage
3Monetary

Note

A unique constraint ensures that for a specific supplier any reduction unit occurs only once.
Example
INSERT INTO oms."Shop2ReductionUnitDefDO"(
            "id", "reductionUnitDefRef", "shopReductionUnitName", "shopRef")
    VALUES (nextval('oms."Supplier2ReductionUnitDefDO_id_seq"'), 3, 'MO', 10000);

2.32 Shop2Supplier2ReduceReasonDO

The configuration table oms."Shop2Supplier2ReduceReasonDO" c ontains the reduce reasons for returns agreed between the retailer / shop and the supplier (return reduction matrix). At least one configuration is required per Shop2Supplier relation.

PropertyDescriptionExample
idID / primary key10001
shopReduceReasonname (identifier) of reduce reason by retailer / shopdefault
supplierReduceReasonname (identifier) of reduce reason by supplierno reduction
shop2SupplierRefreference to oms."Shop2SupplierDO"15000
isDefaultSpecifies the default value for the IOM.
Ensure that only one row per "shop2SupplierRef" has the value TRUE.
TRUE

Note

A unique constraint ensures that a supplier reduce reason exists only once per Shop2Supplier configuration.
Example
INSERT INTO oms."Shop2Supplier2ReduceReasonDO"(
            "id", "shopReduceReason", "supplierReduceReason", "shop2SupplierRef", "isDefault")
    VALUES (nextval('oms."Shop2Supplier2ReduceReasonDO_id_seq"'), 'default', 'no reduction', 15000, TRUE);

3 Product Import

Currently the IOM must know about the products of the supplier which should be sold by a particular shop / retailer. The IOM needs a product import configuration and the relevant product data files from the supplier. The product import process, its files and configuration steps are described in a separate guide . If you are using an IOM until version 2.0 you can find the related information under Guide - IOM Product Import 2.0 otherwise Guide - IOM Product Import 2.2.

4 Invoicing

4.1 Event Configuration

The invoice creation is an event that must be configured. By default, after the initial setup of IOM, there is no configuration that uses invoicing events. The following list shows the major steps of how to configure invoicing events and properties to enable a customized invoicing event. 

  1. In the Event Registry Configuration, define a listener that will act each time the business process event occurs.
    The event listener has to be of the type InvoicingEventManager (INVOICING_EVENT_MANAGER), which will listen especially for invoicing events only.
  2. The InvoicingEvent Registry Configuration defines which type of invoice should be created and which decision bean should be executed, i.e., no invoice for customer with invoice aggregation.
  3. The InvoiceNo Configuration defines the number range to use for Invoice and Credit note number generation

4.1.1 EventRegistryEntryDO

PropertyDescriptionExample
idID / primary key10001
versionObject version for version control1
creationDateDate of creationnow()
modificationDateDate of modificationnow()
processesRef

Business process where the event has to be thrown, e.g., CheckOrder

see Possible processes for invoicing events.

SELECT p.id FROM "ProcessesDO" p JOIN "ProcessDefDO" pd ON p."processDefRef" = pd.id AND pd."queueName" = 'CheckOrderQueue'
eventDefRefType of the event
3 = Invoicing event
3
shopRefID of the shop from ShopDO10000
descriptiondescription'Invoicing Events on CheckOrder'
Example
-- FUNCTION: admin.add_event_registry_entry(processesRef, shopRef, eventDefRef, description)
 
SELECT admin.add_event_registry_entry(
	(SELECT p.id FROM "ProcessesDO" p JOIN "ProcessDefDO" pd ON p."processDefRef" = pd.id AND pd."queueName" = 'CheckOrderQueue'), 
	10000, 
	3, 
	'Invoicing Events on CheckOrder'
);

4.1.2 InvoicingEventRegistryEntryDO

PropertyDescriptionExample
idID / primary key10001
activeFlag to enable/disable this eventtrue
versionObject version for version control1
creationDateDate of creationnow()
modificationDateDate of modificationnow()
decisionBeanDefRefDetermines which decision bean should be executed, provided is only 120 = INVOICING_DECIDER_BEAN;
can be customized via ExpandedDecisionBeanDefDO.
null
invoicingEventDefRef

Supported is only 1 = CREATE_INVOICING

1
invoicingTypeDefRef1 = invoice, 2 = credit note1
paymentDefRefSpecific payment method, NULL means for all payment methodsnull
eventRegistryEntryRefID of the EventRegistryEntryDO for this eventSELECT id FROM "EventRegistryEntryDO" WHERE description = 'Invoicing Events on CheckOrder'
Example
-- Function: admin.add_invoicing_event_registry_entry(eventRegistryEntryRef, invoicingEventDefRef, paymentDefRef, invoicingTypeDefRef, decisionBeanDefRef)
 
SELECT admin.add_invoicing_event_registry_entry(
	(SELECT id FROM "EventRegistryEntryDO" WHERE description = 'Invoicing Events on CheckOrder'), 
	1, 
	null, 
	1, 
	null
);

4.1.3 InvoicingNoConfigDO

PropertyDescriptionExample

id

ID / primary key

10000

name

Name of this config

'Invoice and Credit note numbers'

countGenerated

Amount of newly generated numbers during the last generation process

0

creationDate

Date of creation

now()

enabled

Flag to enable/disable

true

generationDate

Date of last invoice number generation

null

startNumber

First number

'2017000000'

endNumber

Last number, NULL means no limit

'2017999999'

numberRangeFormatterDefRef

ID of the number range formatter, provided is only 5 = simple long sequencer
can be customized via ExpandedNumberRangeFormatterDefDO.

5

invoicingTypeDefRef

1 = invoice, 2 = credit note, NULL means for both

null

maxNotAllocatedInvoiceNo

Maximum amount of numbers to be generated in advance

5

modificationDate

Date of modification

now()

startDate

Date from when these configuration numbers can be generated

now()

shopRef

ID of the Shop

10000

version

Object version for version control

1

Example
INSERT INTO "InvoicingNoConfigDO"(
		id, 
		"name", 
		"countGenerated", 
		"creationDate", 
		enabled, 
		"generationDate",
		"startNumber",
		"endNumber", 
		"numberRangeFormatterDefRef", 
		"invoicingTypeDefRef",
		"maxNotAllocatedInvoiceNo", 
		"modificationDate", 
		"startDate",
		"shopRef", 
		version)
    VALUES (
		nextval('"InvoicingNoConfigDO_id_seq"'), 
		'Billing number and credit note number',
		0, 
		now(), 
		true, 
		null, 
		'2017000000', 
		'2017999999', 
		5, 
		null, 
		5, 
		now(),
		now(),
		10000, 
		1);

4.2 Document Creation Configuration

Creation of documents for sending partner and receiving partner. The receiving partner is NULL in this case, because it is an unknown customer.

4.2.1 CommunicationPartnerDO

PropertyDescriptionExample

id

ID / primary key

10000

decisionBeanDefRef

Determines which decision bean should be executed, provided is only 25 = DOCUMENT_EXECUTION_SYNC_DECIDER_BEAN ;

can be customized via ExpandedDecisionBeanDefDO.

25

splitTransmission

Determines whether a message is to be split, e.g., if the service can process only one line item per order
Default is false for invoicing

false

communicationRef

Only 100049 is supported

100049

receivingPartnerReferrerRef

ID of the receiving partner, NULL for invoicing

null

sendingPartnerReferrerRef

ID of the sending partner, e.g., the shop

SELECT "id" FROM "PartnerReferrerDO" WHERE "shopRef" = 10000

maxNoOfRetries

Maximum count of retries on failure

5

retryDelay

Specifies the period between two sending attempts, e.g., 30m for 30 minutes

30m

mergeTypeDefRef

Only NULL is provided

null

Example
-- Function: admin.add_communication_partner(decisionBeanDefRef, splitTransmission, communicationRef, sendingPartnerReferrerRef, receivingPartnerReferrerRef)
 
SELECT admin.add_communication_partner(
	25, 
	false, 
	100049, 
	(SELECT "id" FROM "PartnerReferrerDO" WHERE "shopRef" = 10000), 
	null
);
 

4.2.2 Possible Processes for Invoicing Events 

Invoicing Typeprocessdescription
InvoiceCheckOrderQueueCreate invoice at order received
PrepareOrderResponseQueue  Create invoice if order is approved
CheckDispatchQueueCreate invoice at dispatch received
CloseDispatchQueueCreate invoice if dispatch is successfully processed
Credit NoteCheckReturnQueueCreate invoice at return received
CloseReturnQueueCreate invoice if return is successfully processed

5 Payment

5.1 Event Configuration

The creation of payment notifications is an event that must be configured. By default, after the initial setup of IOM, there is no configuration that uses payment events. The following list shows the major steps of how to configure payment events and properties to enable a customized payment event. 

  1. In the Event Registry Configuration, define a listener that will act each time the business process event occurs.
    The event listener has to be of the type PaymentEventManager (PAYMENT_EVENT_MANAGER), which will listen for payment events only.
  2. The Payment Event Registry Configuration defines which type of action (authorization, capture, refund) should be executed for a specific payment method and which decision bean should be executed.
  3. Payment Approval Configuration
  4. Communication and Partner Configuration

5.1.1 EventRegistryEntryDO

PropertyDescriptionExample
idID / primary key10001
versionObject version for version control1
creationDateDate of creationnow()
modificationDateDate of modificationnow()
processesRef

Business process where the event has to be thrown, e.g., CloseInvoicing,

see Possible processes for payment events.

SELECT p.id FROM "ProcessesDO" p JOIN "ProcessDefDO" pd ON p."processDefRef" = pd.id AND pd."queueName" = 'CloseInvoicingQueue'
eventDefRefType of the event
2 = payment event
2
shopRefID of the shop from ShopDOnull
descriptionDescription'Payment Events on CloseInvoicingQueue'
Example
-- FUNCTION: admin.add_event_registry_entry(processesRef, shopRef, eventDefRef, description)
 
SELECT admin.add_event_registry_entry(
	(SELECT p.id FROM "ProcessesDO" p JOIN "ProcessDefDO" pd ON p."processDefRef" = pd.id AND pd."queueName" = 'CloseInvoicingQueue'), 
	10000, 
	2, 
	'Payment Events on CheckOrder'
);

5.1.2 PaymentEventRegistryEntryDO

PropertyDescriptionExample
idID / primary key10001
activeFlag to enable/disable this eventtrue
versionObject version for version control1
creationDateDate of creationnow()
modificationDateDate of modificationnow()
decisionBeanDefRefDetermines which decision bean should be executed, provided is only 70 = PAYMENT_ACTION_DECIDER_BEAN ;
can be customized via ExpandedDecisionBeanDefDO
70
paymentEventDefRef

Supported is only 10 = CREATE_PAYMENTNOTIFICATION

10
paymentNotificationActionDefRef1 = authorize, 2 = reverse, 3 = capture, 4 = refund3
paymentDefRefSpecific payment method, NULL means for all payment methods, e.g., 3 = Creditcard3
eventRegistryEntryRefID of the EventRegistryEntryDO for this eventSELECT id FROM "EventRegistryEntryDO" WHERE description = 'Payment Events on CloseInvoicingQueue'
Example
-- Function: admin.add_payment_event_registry_entry(eventRegistryEntryRef, paymentEventDefRef, paymentDefRef, paymentNotificationActionDefRef, decisionBeanDefRef)
 
SELECT admin.add_payment_event_registry_entry(
	(SELECT id FROM "EventRegistryEntryDO" WHERE description = 'Payment Events on CloseInvoicingQueue'), 
	10, 
	3, 
	3, 
	70
);

5.2 Payment Approval

The payment approval configuration defines if a payment method in combination with a specific payment provider needs a manual approval and a transmission of the payment notification.

5.2.1 PaymentActionApprovalDefDO

PropertyDescriptionExample
idID / primary key10000
doProcess

Defines if the payment notification needs a transmission or not.
E.g., false if the shop does the capturing and the OMS just creates a payment notification at checkOrder without informing the payment provider

true
doManualApproveSet to true if a manual approval necessary.false
paymentNotificationActionDefRef1 = authorize, 2 = reverse, 3 = capture, 4 = refund3
shop2PaymentProvider2PaymentRefReference to Shop2PaymentProvider2PaymentDefDO10000
Example
-- Function: admin.add_payment_action_approval(paymentNotificationActionDefRef, shop2PaymentProvider2PaymentRef, doProcess, doManualApprove)


SELECT admin.add_payment_action_approval(
	3, 
	10000, 
	true, 
	false
);

5.3 Communication and Partner

5.3.1 CommunicationDO

Create a new CommunicationDO entry with customized decision bean and execution bean as message sender.

PropertyDescriptionExample
idID / primary key10000
active

Enable or disable this configuration

true
keyUnique key'SEND_PAYMENT_NOTIFICATION'
documentFormatDefRefSupported is only 22
executionBeanDefRefCustom bean to deal with payment notification transmissions1000
transmissionTypeDefRefID of the transmission type, only 320 is supported (PAYMENTJOB)320
communicationVersionDefRefOnly 1 is supported ( v1_0 )1
transmissionFormDefRefOnly 10 is supported (PUSH)10
Example
INSERT INTO "CommunicationDO" (
		id, 
		active, 
		key, 
		"documentFormatDefRef", 
		"executionBeanDefRef", 
		"transmissionTypeDefRef", 
		"communicationVersionDefRef", 
		"transmissionFormDefRef") 
	values (
		nextval('"CommunicationDO_id_seq"'), 
		true, 
		'SEND_PAYMENT_NOTIFICATION', 
		2, 
		10000, 
		320, 
		1, 
		10);

5.3.2 CommunicationPartnerDO

Define the communication partner where the payment notification needs to transmit. Sending partner is the shop, receiving partner is the payment provider.

PropertyDescriptionExample
idID / primary key10000
decisionBeanDefRef
Determines which decision bean should be executed, default is NULL;
can be customized via ExpandedDecisionBeanDefDO.
null
splitTransmission

Determines whether a message needs to be split, e.g., if the service can process only one line item per order.
Default is false for payment.

false
communicationRef
ID from CommunicationDOSELECT id FROM "CommunicationDO" WHERE "key" = 'SEND_PAYMENT_NOTIFICATION'
receivingPartnerReferrerRef
ID of the receiving partner, null for payment eventsSELECT "id" FROM "PartnerReferrerDO" WHERE "paymentProviderRef" = 10000
sendingPartnerReferrerRef
ID of the sending partner, e.g., the shopSELECT "id" FROM "PartnerReferrerDO" WHERE "shopRef" = 10000
maxNoOfRetries

Maximum count of retries on failure

5
retryDelay
Specifies the period between two sending attempts, e.g., 30m for 30 minutes
30m
mergeTypeDefRef

Only NULL is provided for payment

null
Example
-- Function: admin.add_communication_partner(decisionBeanDefRef, splitTransmission, communicationRef, sendingPartnerReferrerRef, receivingPartnerReferrerRef)
  
SELECT admin.add_communication_partner(
    null,
    false,
    (SELECT id FROM "CommunicationDO" WHERE "key" = 'SEND_PAYMENT_NOTIFICATION'),
    (SELECT "id" FROM "PartnerReferrerDO" WHERE "shopRef" = 10000),
    (SELECT "id" FROM "PartnerReferrerDO" WHERE "paymentProviderRef" = 10000)
);

5.3.3 Possible Processes for Payment Events

Payment ActionProcessDescription
capture/refundCloseInvoicingQueueCapture/refund if invoice/credit note is successfully created
captureCheckOrderQueueCapture at order received
PrepareOrderResponseQueue Capture if order is approved
CheckDispatchCapture at dispatch received
CloseDispatchCapture if dispatch is successfully processed
refundCheckReturnQueueCreate refund at return received
CloseReturnQueueCreate refund if return is successfully processed

6 Customer E-mails

6.1 Event Configuration

The invoice creation is an event that must be configured. By default, after the initial setup of IOM, there is no configuration that uses invoicing events. The following list shows the major steps of how to configure invoicing events and properties to enable a customized invoicing event. 

  1. In the Event Registry Configuration, define a listener that will act each time the business process event occurs.
    The event listener has to be of the type MailEventManager (MAIL_EVENT_MANAGER), which will listen especially for mail events only.
  2. The MailEvent Registry Configuration defines which type of e-mail should be send depending on the transmission type and which decision bean should be executed.
  3. The Communication Partner Configuration defines the execution bean indirectly and the transmission type to use on the basis of CommunictaionDO
  4. The Execution Bean Value Configuration defines a set of parameters that are used within the e-mail creation. This includes the sender's email address, the sender's name as well as the template names for subject, email content and more. The registered Mail Template Locations will be referenced here for the selected type of e-mail, i.e., orderSubject.vm and orderMessage.vm for the processed order. This configurations has to be linked to a Communication Partner exclusively, a shop in this case.

6.1.1 EventRegistryEntryDO

PropertyDescriptionExample
idID / primary key10000
versionObject version for version control1
creationDateDate of creationnow()
modificationDateDate of modificationnow()
processesRef

Business process where the event has to be thrown, e.g., CheckOrder

see Possible processes for mail events

SELECT p.id FROM "ProcessesDO" p JOIN "ProcessDefDO" pd ON p."processDefRef" = pd.id AND pd."queueName" = 'CheckOrderQueue'
eventDefRefType of the event
1 = Mail event
1
shopRefID of the shop from ShopDO10000
descriptionDescription'Mail Events on CheckOrder'
Example
-- FUNCTION: admin.add_event_registry_entry(processesRef, shopRef, eventDefRef, description)
 
SELECT admin.add_event_registry_entry(
	(SELECT p.id FROM "ProcessesDO" p JOIN "ProcessDefDO" pd ON p."processDefRef" = pd.id AND pd."queueName" = 'CheckOrderQueue'), 
	10000, 
	1, 
	'Mail Events on CheckOrder');

6.1.2 MailEventRegistryEntryDO

PropertyDescriptionExample
idID / primary key10000
activeFlag to enable/disable this eventtrue
versionObject version for version control1
creationDateDate of creationnow()
modificationDateDate of modificationnow()
decisionBeanDefRefDetermines which decision bean should be executed, provided is only 50 = SEND_EMAIL_DECIDER_BEAN ;
can be customized via ExpandedDecisionBeanDefDO.
50
mailEventDefRef

Supported is only 1 = SEND_SHOP_CUSTOMER_MAIL_PC

1
transmissionTypeDefRef

Transmission type of the email to send,

  • Can be used in the decision bean, e.g., return mail at CloseReturn: Only send mails with transmission type SEND_CUSTOMER_MAIL_RETURN_RCL010 if the return reason is RCL010 (cancellation on customer demand)
  • It's possible to define a specific mail template for this transmission type, see CommunicationPartnerDO and ExecutionBeanValuDO

Possible transmission types:

500 = SEND_CUSTOMER_MAIL_ORDER
503 = SEND_CUSTOMER_MAIL_ORDER_COMMISSIONED
530 = SEND_CUSTOMER_MAIL_DISPATCH
531 = SEND_CUSTOMER_MAIL_DISPATCH_IMMATERIAL
540 = SEND_CUSTOMER_MAIL_RETURN_CAN
541 = SEND_CUSTOMER_MAIL_RETURN_RCL
542 = SEND_CUSTOMER_MAIL_RETURN_INV
543 = SEND_CUSTOMER_MAIL_RETURN_RET
544 = SEND_CUSTOMER_MAIL_RETURN_DEF
550 = SEND_CUSTOMER_MAIL_PAYMENT_REMINDER
570 = SEND_CUSTOMER_MAIL_INVOICE
571 = SEND_CUSTOMER_MAIL_CREDITNOTE
600 = SEND_CUSTOMER_MAIL_RETURN_RCL010
602 = SEND_CUSTOMER_MAIL_RETURN_RCL020
603 = SEND_CUSTOMER_MAIL_RETURN_RCL021
614 = SEND_CUSTOMER_MAIL_RETURN_RCL045
615 = SEND_CUSTOMER_MAIL_RETURN_RCL980
616 = SEND_CUSTOMER_MAIL_RETURN_REJECTED
700 = SEND_CUSTOMER_MAIL_DISPATCH_INVOICE
701 = SEND_CUSTOMER_MAIL_RETURN_CREDITNOTE),
702 = SEND_CUSTOMER_MAIL_RETURN_CAN_CREDITNOTE
703 = SEND_CUSTOMER_MAIL_RETURN_RCL_CREDITNOTE
704 = SEND_CUSTOMER_MAIL_RETURN_INV_CREDITNOTE
705 = SEND_CUSTOMER_MAIL_RETURN_RET_CREDITNOTE
706 = SEND_CUSTOMER_MAIL_RETURN_DEF_CREDITNOTE
707 = SEND_CUSTOMER_MAIL_RETURN_RCL010_CREDITNOTE
708 = SEND_CUSTOMER_MAIL_RETURN_RCL020_CREDITNOTE
709 = SEND_CUSTOMER_MAIL_RETURN_RCL045_CREDITNOTE
710 = SEND_CUSTOMER_MAIL_RETURN_REFUNDED
711 = SEND_CUSTOMER_MAIL_RETURN_RCL980_CREDITNOTE
712 = SEND_CUSTOMER_MAIL_RETURN_RCL021_CREDITNOTE

500
eventRegistryEntryRefID of the EventRegistryEntryDO for this eventSELECT id FROM "EventRegistryEntryDO" WHERE description = 'Mail Events on CheckOrder'
Example
-- Function: admin.add_mail_event_registry_entry(eventRegistryEntryRef, mailEventDefRef, decisionBeanDefRef, transmissionTypeDefRef)
 
SELECT admin.add_mail_event_registry_entry(
	(SELECT id FROM "EventRegistryEntryDO" WHERE description = 'Mail Events on CheckOrder'), 
	1, 
	50, 
	500);

6.1.3 CommunicationPartnerDO

PropertyDescriptionExample

id

ID / primary key

10000

decisionBeanDefRef

Determines which decision bean should be executed, default is NULL for mail events;

can be customized via ExpandedDecisionBeanDefDO.

null

splitTransmission

Determines whether a message is to be split, e.g., if the service can process only one line item per order.
Default is false for mails.

false

communicationRef

Depends on the transmission type to use:

E.g., transmission type SEND_CUSTOMER_MAIL_ORDER (500):
SELECT id FROM "CommunicationDO" WHERE "transmissionTypeDefRef" = 500

SELECT id FROM "CommunicationDO" WHERE "transmissionTypeDefRef" = 500

receivingPartnerReferrerRef

ID of the receiving partner, NULL for mails

null

sendingPartnerReferrerRef

ID of the sending partner, e.g., the shop

SELECT "id" FROM "PartnerReferrerDO" WHERE "shopRef" = 10000

maxNoOfRetries

Maximum count of retries on failure

5

retryDelay

Specifies the period between two sending attempts, e.g., 30m for 30 minutes

30m

mergeTypeDefRef

Only NULL is provided

null

Example
-- Function: admin.add_communication_partner(decisionBeanDefRef, splitTransmission, communicationRef, sendingPartnerReferrerRef, receivingPartnerReferrerRef)
 
SELECT admin.add_communication_partner(
	null, 
	false, 
	(SELECT id FROM "CommunicationDO" WHERE "transmissionTypeDefRef" = 500), 
	(SELECT "id" FROM "PartnerReferrerDO" WHERE "shopRef" = 10000), 
	null
);

6.1.4 ExecutionBeanValueDO

The final sending requires a configuration that maps sender e-mail address, templates and more key parameters to a communication partner.

The following keys are available:

Parameter keyParameter IDExemplary parameter valueRequiredDescription
messageTemplate1205orderMessage.vmtrueTemplate name used to generate the mail body
subjectTemplate1204orderSubject.vmtrueTemplate name used to generate the subject 
mimeType1207text/htmlfalseMime type of the mail
shopEmailAddress1200info@myShop.comtrueThe from address
shopEmailSenderName1201My ShopfalseThe from name
bccEmailAddress1202mail@example.domianfalseAddress used for a blind copy
PropertyDescriptionExample

id

ID / primary key

10000

executionBeanKeyDefRef

ID to the ExecutionBeanKeyDefDO, see Parameter ID in table above

1205

parameterValue

The value

'orderMessage.vm'

communicationPartnerRef

ID to the communication partner defined in the step before

10000

Example
-- Function: admin.add_execution_bean_value(executionBeanKeyDefRef, parameterValue, communicationPartnerRef)
 
SELECT admin.add_execution_bean_value(
	1205, 
	'orderMessage.vm', 
	(SELECT id FROM "CommunicationPartnerDO" WHERE 
		"communicationRef" = (SELECT id FROM "CommunicationDO" WHERE "transmissionTypeDefRef" = 500) AND 
		"sendingPartnerReferrerRef" = (SELECT id FROM "PartnerReferrerDO" WHERE "shopRef" = 10000) AND 
		"receivingPartnerReferrerRef" isNull)
);

6.2 Possible Processes for E-mail Events

Mail transmission typeKind of emailProcessDescription
SEND_CUSTOMER_MAIL_ORDER  Order confirmationCheckOrderQueueSend customer mail at order received
Order confirmationPrepareOrderResponseQueue  Send customer mail if order is approved
SEND_CUSTOMER_MAIL_ORDER_COMMISSIONEDOrder commissioned confirmationOrderTransmissionedQueueSend customer mail if order is successfully exported for suppliers
SEND_CUSTOMER_MAIL_DISPATCHDelivery confirmationCloseDispatchQueue

Send customer mail for delivery confirmation

SEND_CUSTOMER_MAIL_DISPATCH_IMMATERIALImmaterial item download mailSend customer mail with download links for immaterial items
SEND_CUSTOMER_MAIL_RETURN_CANCancellation mailCloseReturnQueueSend customer mail with cancellation confirmation
SEND_CUSTOMER_MAIL_RETURN_RCLRecall mailSend customer mail with recall confirmation
SEND_CUSTOMER_MAIL_RETURN_INVInversion mailSend customer mail in case of inversion (e.g. wrong shipping address)
SEND_CUSTOMER_MAIL_RETURN_RETReturn to sender mailSend customer mail for general return
SEND_CUSTOMER_MAIL_RETURN_DEFReturn of defect items mailSend customer mail in case of defects
SEND_CUSTOMER_MAIL_RETURN_RCL010Cancellation on customer demandSend customer mail for cancellation on customer demand
SEND_CUSTOMER_MAIL_RETURN_RCL020Cancellation due to EOLSend customer mail for cancellation due to EOL
SEND_CUSTOMER_MAIL_RETURN_RCL021Cancellation due to missing stockSend customer mail for cancellation due to missing stock
SEND_CUSTOMER_MAIL_RETURN_RCL045Payment not receivedSend customer mail if payment not received
SEND_CUSTOMER_MAIL_RETURN_RCL980Cancellation due to suspicion of defraudSend customer mail for cancellation due to suspicion of defraud
SEND_CUSTOMER_MAIL_RETURN_REJECTEDReturn rejected mailSend customer mail if return was rejected
SEND_CUSTOMER_MAIL_RETURN_REFUNDEDReturn refunded mailSend customer mail if refund for return was done
SEND_CUSTOMER_MAIL_INVOICEInvoice mailInvoicingTransmissionSyncQueueSend customer mail with invoice document as attachment
SEND_CUSTOMER_MAIL_DISPATCH_INVOICEDelivery confirmation with attached invoice documentSend customer mail for delivery confirmation with invoice as attachment
SEND_CUSTOMER_MAIL_CREDITNOTECredit note mailSend customer mail with credit note document as attachment
SEND_CUSTOMER_MAIL_RETURN_CAN_CREDITNOTEReturn mails with credit note document as attachmentSend return mails with credit note document as attachment
SEND_CUSTOMER_MAIL_RETURN_CAN_CREDITNOTE
SEND_CUSTOMER_MAIL_RETURN_RCL_CREDITNOTE
SEND_CUSTOMER_MAIL_RETURN_INV_CREDITNOTE
SEND_CUSTOMER_MAIL_RETURN_RET_CREDITNOTE
SEND_CUSTOMER_MAIL_RETURN_DEF_CREDITNOTE
SEND_CUSTOMER_MAIL_RETURN_RCL010_CREDITNOTE
SEND_CUSTOMER_MAIL_RETURN_RCL020_CREDITNOTE
SEND_CUSTOMER_MAIL_RETURN_RCL045_CREDITNOTE
SEND_CUSTOMER_MAIL_RETURN_RCL980_CREDITNOTE
SEND_CUSTOMER_MAIL_RETURN_RCL021_CREDITNOTE
SEND_CUSTOMER_MAIL_PAYMENT_REMINDERPayment reminder mail-This kind of mail is triggered via quartz-job after a time interval configured at ShopDO.amountDaysForPaymentReminderMailOfPrepaidOrders

Reference to oms."ShopDO" - $shopId

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.

Customer Support
Knowledge Base
Product Resources
Support Tickets