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).
Term | Description |
---|---|
B2B | Business To Business |
B2C | Business To Consumer |
COD | Cash On Delivery |
DO | Data Object - used as persistence entities to represent stored values in the database |
DOSE | Dynamic 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. |
IOM | The abbreviation for Intershop Order Management |
OMS | The abbreviation for Order Management System, the technical name of IOM |
OMT | The abbreviation for Order Management Tool, the graphical management tool of the IOM |
PSP | Payment Service Provider |
URL | Uniform Resource Locator |
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.
$shopId
.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.
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.
Property | Description | Example |
---|---|---|
id | ID / primary key - from now on this ID will be identified by $shopId | 10000 |
name | Name of shop | inTRONICS |
shopName | Shop name as used by the shop | inTRONICS |
internalShopName | Name of the shop for IOM internal technical purpose
| inTRONICS |
active | Indicates enabled / disabled shop | true |
availabilityTolerance | Allowed delivery date deviation in days (without the order runs in the manual supplier selection) | 1 / null |
isB2B | Indicates whether it is a B2B shop | true |
countryDefRef | Country of the shop- reference to oms."CountryCodeDefDO" | 29 |
mapArticleId | Indicates whether the article IDs of a new order that has been transferred are shop-specific and therefore mapped to the IOM-internal article-ID | true |
orderOptimizeDefRef | Reference to the order optimization type oms."OrderOptimizeDefDO" | 1 |
overwriteSelectedSupplierAllowed | If true than the DOSE process can overwrite the selected supplier from shop | TRUE |
parentRef | Specifies the id of the parent shop | null |
returnDeadline | Number of days for a return deadline | 30 |
shopOrderSequenceName | Name of the SQL sequencer, used to generate shop-specific OrderIDs if the OrderID was not set during order placement | null |
shopAddressRef | Referenced shop address oms."Guide - IOM Shop Onboarding 2.2#ShopAddressDO" | 10000 |
shopOrderValidationRef | Reference to order validation rules of the shop oms."Guide - IOM Shop Onboarding 2.2#ShopOrderValidationDO" | 10000 |
hasSupplierPrefix | Specifies whether the shop uses a supplier prefix, i.e., ShopArticleNo with SupplierId prefix | false/true |
shopCustomerSequenceName | Name of the SQL sequencer, used to generate shop-specific CustomerIDs, if the CustomerID was not set during order placement | null |
preferredSupplierOnly | If true than the DOSE process can use suppliers from PreferredSupplierDO only | TRUE |
orderProcessingDelay | This pattern can be used to determine when orders of this shop are to be processed further in the system. | |
shopOrderSequenceNumberFormatString | Pattern used to format the generated shop order number from shopOrderSequenceName Example: | 'ORDER_{0}' |
ceo | Name of CEO, used for documents | CEO |
salesPriceCalculatorBeanDefRef | Reference to a custom sales price calculation bean | 10000 |
amountDaysForPaymentReminderMailOfPrepaidOrders | Number of days for a payment reminder mail | 30 |
amountDaysForAutoCancellationOfPrepaidOrders | Number of days for a auto cancellation in case of missing payments | 35 |
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);
Contains the address properties of an shop. This information is mainly used in customer email templates.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
addressLine1 | First address line | Intershop Communications AG |
addressLine2 | Second address line | Intershop Tower |
addressLine3 | Third address line | 07740 Jena |
addressLine4 | Fourth address line | Germany |
addressLine5 | Fifth address line | null |
shopUrl | URL of the shop | http://www.intershop.com/ |
shopFaqLink | FAQ link of the shop | null |
shopMyAccountLink | My account link of the shop | null |
shopRefundFaqLink | Refund FAQ link of the shop | null |
shopCcarePhoneNo | Customer care phone number of the shop | null |
shopCcareMailAddress | Customer care mail address of the shop | null |
shopFaceBookLink | Facebook link of the shop | null |
shopTwitterLink | Twitter link of the shop | null |
shopYoutubeLink | YouTube link of the shop | null |
shopInstagramLink | Instagram link of the shop | null |
shopNewsletterSignupLink | Newsletter sign up link of the shop | null |
shopIban | IBAN of the shop | null |
shopBankAccountHolder | Account holder of the shop | null |
shopOrderStateLink | Order state link of the shop | null |
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);
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
name | Name of the validation set | test |
articleId | Check for article identifier | true/false |
commercialRegister | Check for commercial register information | true/false |
companyName | Check for company name | true/false |
companyType | Check for company type | true/false |
costNo | Check for cost center information | true/false |
department | Check for department information | true/false |
ean | Check for EAN | true/false |
lineOfBusiness | Check for line of business information | true/false |
purchaseGross | Check for purchase price gross | true/false |
purchaseNet | Check for purchase price net | true/false |
purchaseTax | Check for purchase price tax | true/false |
salesGross | Check for sales price gross | true/false |
salesNet | Check for sales price net | true/false |
salesTax | Check for sales price tax | true/false |
shopCustomerNo | Check for shop customer number | true/false |
shopOrderNo | Check for shop order number | true/false |
shopSelectedSupplierId | Check for selected supplier information | true/false |
vatNo | Check for VAT number information | true/false |
singlePositionArticle | Check for single position article information | true/false |
orderAddressEmailRequired | Check for email in the order address | true/false |
--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 );
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 15000 |
active | Indicates enabled / disabled shop to supplier relationships | TRUE |
modificationDate | Time stamp of the last modification - should be updated with each change | now() |
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 |
sendOffTimeInHours | deprecated 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:
| null |
shopPassword | Password of the above mentioned shopAccount - set only if required. Used by:
| null |
shopSupplierName | Name (identifier) of the supplier as called by the the shop system - mandatory but no constraint at the DB Used by:
| SIM supplier - North |
splitShipmentAllowed | Indicates the allowance of the retailer / shop to split an order into multiple shipments. Used by:
| 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:
| null |
supplierPassword | Password of the above mentioned supplierAccount - set only if required. Used by:
| null |
supplierShopName | Name (identifier) of the retailer / shop as called by the the supplier. Used by:
| SIM |
shopRef | Reference to the IOM shop instance - references oms."ShopDO" - $shopId | 10000 |
supplierRef | Reference to the IOM supplier instance - references SupplierDO - $supplierId | 5000 |
supplierShopKey | deprecated 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. Used by:
| FALSE |
eolDetectionTimeInterval | Specifies 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.
Used by:
| 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. Used by:
| 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:
| FALSE |
immaterialArticleUrlValidityDuration | deprecated 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:
| null |
leadCode | Lead code of the supplier at the carrier for the return label Used by:
| null |
useSupplierArticleNoAsShopArticleNo | Indicates whether the product number of the supplier (see Product Import) should be used as the shop product number. Used by: | FALSE |
shopArticleNoPrefix | Only useful if property Guide - IOM Shop Onboarding 2.2#useSupplierArticleNoAsShopArticleNo is TRUE. 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.
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);
Tax type mapping for taxes used in order service.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
shopTaxTypeName | Name (identifier) of the tax type as used by the shop | FULL-TAX |
taxTypeDefRef | reference to oms."TaxTypeDefDO" | 5 |
shopRef | Reference to oms."ShopDO" - $shopId | 10000 |
Note
ID | taxType |
---|---|
1 | NO_TAX |
2 | VERY_LOW_TAX |
3 | LOW_TAX |
4 | INTERMEDIATE_TAX |
5 | NORMAL_TAX |
6 | SERVICE |
INSERT INTO "Shop2TaxTypeDefDO"( id, "shopTaxTypeName", "taxTypeDefRef", "shopRef", "modificationDate") VALUES (nextval('oms."Shop2TaxTypeDefDO_id_seq"'), 'FULL-TAX', 5, 5000, now());
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").
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
countryDefRef | see Guide - IOM Shop Onboarding 2.2#CountryDefDO | FULL-TAX |
tax | the tax value in % | 17.5 |
taxTypeDefRef | see Guide - IOM Shop Onboarding 2.2#TaxTypeDefDO | 5 |
validFrom | valid from date for this tax | '2012-01-01 00:00:00' |
validTo | valid to date for this tax | '2099-01-01 00:00:00' |
--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' );
Contains the distributors' freight managers with their characteristics.
Property | Description | Example |
---|---|---|
id | ID / primary key | 11 |
modificationDate | Timestamp of last modification | now() |
name | Name of the carrier | DHL |
trackingUrl | Tracking URL used by this carrier | http://nolp.dhl.de/nextt-online-public/report_popup.jsp |
cargoCompany | For return logistics, specification of the package center, used for return labels | Deutsche Post AG |
cargoCenter | For return logistics, name of the recipient, used for return labels | Paketzentrum 93 |
identCodeGenerationBeanDefRef | Reference to the identification code generation bean | 2 |
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);
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
shopCarrierName | Name (identifier) of the carrier as used by the shop | Deutsche Post DHL |
carrierRef | "shopCarrierName" mapped to an IOM internal carrier - reference to oms."CarrierDO" | 11 |
shopRef | reference to oms."ShopDO" - $shopId | 10000 |
Note
INSERT INTO oms."Shop2CarrierDO"( "id", "shopCarrierName", "carrierRef", "shopRef") VALUES (nextval('oms."Shop2CarrierDO_id_seq"'), 'Deutsche Post DHL', 11, 5000);
The configuration table oms."Shop2CountryDefDO" maps the IOM internal countries to shop specific identifier.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
countryDefRef | "shopCountryName" and "shopCurrencyName" mapped to an IOM internal country - reference to oms."CountryDefDO" | 9 |
shopCountryName | Name (identifier) of the country as used by the shop | BELGIUM |
shopCurrencyName | Name (identifier) of the currency as used by the shop | EURO |
shopRef | Reference to oms."ShopDO" - $shopId | 5000 |
Note
Id | Name | Currency | currencyName | currencySymbol | isoCode2 | isoCode3 | isoNumeric |
---|---|---|---|---|---|---|---|
1 | Jamaica | JMD | Jamaica Dollar | J$ | JM | JAM | 388 |
2 | Germany | EUR | Euro | € | DE | DEU | 276 |
3 | Austria | EUR | Euro | € | AT | AUT | 40 |
4 | Netherlands | EUR | Euro | € | NL | NLD | 528 |
5 | Switzerland | CHF | Schweizer Franken | SFr | CH | CHE | 756 |
6 | Poland | PLN | Złoty | zł | PL | POL | 616 |
7 | France | EUR | Euro | € | FR | FRA | 250 |
8 | Luxemburg | EUR | Euro | € | LU | LUX | 442 |
9 | Belgium | EUR | Euro | € | BE | BEL | 56 |
10 | Czech Republic | CZK | Koruna česká | Kč | CZ | CZE | 203 |
11 | Denmark | DKK | Danske kroner | DKr | DK | DNK | 208 |
12 | Great Britain | GBP | Pound | £ | GB | GBR | 826 |
13 | Greece | EUR | Euro | € | GR | GRC | 300 |
14 | Ireland | EUR | Euro | € | IE | IRL | 372 |
15 | Romania | RON | Lei | L | RO | ROU | 642 |
16 | Bulgaria | BGN | Lewa | lv | BG | BGR | 100 |
17 | Cyprus | EUR | Euro | € | CY | CYP | 196 |
18 | Latvia | LVL | Lati | Ls | LV | LVA | 428 |
19 | Estonia | EUR | Euro | € | EE | EST | 233 |
20 | Lithuania | LTL | Lit | Lt | LT | LTU | 440 |
21 | Italy | EUR | Euro | € | IT | ITA | 380 |
22 | Espana | EUR | Euro | € | ES | ESP | 724 |
23 | Sweden | SEK | Kronor | Skr | SE | SWE | 752 |
24 | Portugal | EUR | Euro | € | PT | PRT | 620 |
25 | Liechtenstein | CHF | Schweizer Franken | SFr | LI | LIE | 438 |
26 | Finland | EUR | Euro | € | FI | FIN | 246 |
27 | Slovakia | EUR | Euro | € | SK | SVK | 703 |
28 | Slovenia | EUR | Euro | € | SI | SVN | 705 |
29 | USA | USD | US-Dollar | $ | US | USA | 840 |
30 | Equatorial Guinea | XAF | Central African CFA franc | FCFA | GQ | GNQ | 226 |
31 | Argentina | ARS | Argentine Peso | $ | AR | ARG | 32 |
32 | Australia | AUD | Australian Dollar | A$ | AU | AUS | 36 |
33 | Brazil | BRL | Real | R$ | BR | BRA | 76 |
34 | Chile | CLP | Chilean Peso | $ | CL | CHL | 152 |
35 | China | CNY | Renminbi | ¥ | CN | CHN | 156 |
36 | Colombia | COP | Colombian Peso | $ | CO | COL | 170 |
37 | Croatia | HRK | Kuna | kn | HR | HRV | 191 |
38 | Cuba | CUP | Cuban Peso | $ | CU | CUB | 192 |
39 | Egypt | EGP | Egyptian pound | E£ | EG | EGY | 818 |
40 | Grenada | XCD | East Caribbean Dollar | $ | GD | GRD | 308 |
41 | Greenland | DKK | Danske kroner | DKK | GL | GRL | 304 |
42 | Haiti | HTG | Haitian gourde | G | HT | HTI | 332 |
43 | Vatican City State | EUR | Euro | € | VA | VAT | 336 |
44 | Honduras | HNL | Lempira | L | HN | HND | 340 |
45 | Hong Kong | HKD | Hong Kong Dollar | HK$ | HK | HKG | 344 |
46 | Hungary | HUF | Forint | Ft | HU | HUN | 348 |
47 | Iceland | ISK | íslensk króna | kr | IS | ISL | 352 |
48 | India | INR | Indian rupee | ₹ | IN | IND | 356 |
49 | Indonesia | IDR | Indonesian rupiah | Rp | ID | IDN | 360 |
50 | Israel | ILS | New Shekel | ₪ | IL | ISR | 376 |
51 | Japan | JPY | Yen | ¥ | JP | JPN | 392 |
52 | Malta | EUR | Euro | € | MT | MLT | 470 |
53 | Mexico | MXN | Mexican Peso | $ | MX | MEX | 484 |
54 | Montenegro | EUR | Euro | € | ME | MNE | 499 |
55 | New Zealand | NZD | New Zealand Dollar | $ | NZ | NZL | 554 |
56 | Norway | NOK | Norsk krone | kr | NO | NOR | 578 |
57 | Peru | PEN | Sol | S/ | PE | PER | 604 |
58 | Russian Federation | RUB | Rouble | руб | RU | RUS | 643 |
59 | Saudi Arabia | SAR | Riyal | ﷼ | SA | SAU | 682 |
60 | Serbia | RSD | Dinar | RSD | RS | SRB | 688 |
61 | Singapore | SGD | Singapore Dollar | S$ | SG | SGP | 702 |
62 | Sri Lanka | LKR | Sri Lankan rupee | Rs | LK | LKA | 144 |
63 | South Africa | ZAR | Rand | R | ZA | ZAF | 710 |
64 | South Korea | KRW | Won | ₩ | KR | KOR | 410 |
65 | Taiwan | TWD | Taiwan Dollar | NT$ | TW | TWN | 158 |
66 | Thailand | THB | Baht | ฿ | TH | THA | 764 |
67 | Tunisia | TND | Dinar | DT | TN | TUN | 788 |
68 | Turkey | TRY | Lira | TL | TR | TUR | 792 |
69 | Ukraine | UAH | Hryvnia | ₴ | UA | UKR | 804 |
70 | United Arab Emirates | AED | Dirham | د.إ | AE | ARE | 784 |
71 | United States Minor Outlying Islands | USD | Dollar | $ | UM | UMI | 581 |
72 | Uzbekistan | UZS | Som | som | UZ | UZB | 860 |
73 | Venezuela | VEF | Bolívar fuerte | Bs | VE | VEN | 862 |
74 | Vietnam | VND | Dong | ₫ | VN | VNM | 704 |
INSERT INTO oms."Shop2CountryDefDO"( "id", "countryDefRef", "shopCountryName", "shopCurrencyName", "shopRef") VALUES (nextval('oms."Shop2CountryDefDO_id_seq"'), 9, 'BELGIUM', 'EURO', 5000);
Includes the name of a charge type as used by the shop, with reference to the internal charge type.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
chargeTypeDefRef | Reference to the internal charge type Guide - IOM Shop Onboarding 2.2#ChargeTypeDefDO | 1 |
shopChargeTypeName | Name of the charge type used by the shop | 'delivery charge' |
shopRef | $shopId | 10000 |
ID | Name |
---|---|
1 | Cod Charge |
2 | Delivery Charge |
3 | Handling Charge |
4 | Payment Charge |
INSERT INTO "Shop2ChargeTypeDefDO"( id, "chargeTypeDefRef", "shopChargeTypeName", "shopRef") VALUES (nextval('oms."Shop2ChargeTypeDefDO_id_seq"'), 1, 'delivery charge', 10000);
Optional: Defines the approval steps for orders, a specific shop and an optional supplier/PSP
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
active | Indicates enabled / disabled this approval rule | true |
isAffectingDOSEonChange | Specifies whether a approval with changes can have an impact on the DOSE, and should therefore be re-cycled. | false |
approvalRank | Priority of an approval which determines in which order approvals are considered before or after others. | 1 |
approvalTypeDefRef | Reference to ApprovalTypeDefDO | 3 |
isOrderTransmission | Indicates whether the approval should be respected as approval transmission to the supplier additionally. | false |
supplierApprovalTypeName | Optional name of the approval type used at the supplier. | 'General Approval' |
shopRef | Reference to oms."ShopDO" - $shopId | 10000 |
supplierRef | Optional reference to a supplier - oms."SupplierDO" | 5000 |
paymentProviderRef | Optional reference to a PSP | null |
decisionBeanDefRef | Optional 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 |
supplierApprovalTypeDescription | Description of the approval type used at the supplier. Is included in the approval request | 'General Approval' |
manualApproval | Indicates whether the rule can offer a manual approval or not. | true |
ID | Name |
---|---|
1 | UnknownApprovaltype |
2 | Paymenttype |
3 | General |
4 | FraudPrevention |
5 | Payment |
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);
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
orderStatesDefRef | Reference to oms."OrderStatesDefDO" | 0 |
shopOrderStatesName | Name of the state used by the shop, depends the order state in the OrderStateService | initial |
shopRef | Reference to oms."ShopDO" - $shopId | 10001 |
ID | Name | Description |
---|---|---|
0 | INITIAL | Order initially stored in the database. |
500 | DO_CHECK | Order modified manually and ready to process. |
998 | NOT_CHECKED | Order has to be checked manually. |
999 | NOT_CHECKED_DO_CANCEL | Order canceled completely after order check. |
1000 | CHECKED | Order was checked. |
1501 | ORDER_APPROVAL_REQUIRED | @Deprecated -> Order approval required -> on-hold because there are already related entries in order history state tables. |
1540 | DO_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. |
1550 | CREATED_APPROVALTRANSMISSION | @Deprecated -> Transmission object for order approval was created -> on-hold because there are already related entries in order history state tables. |
1580 | DO_APPROVE | Validation failed. Manual approval required. |
1599 | NOT_APPROVED | Order approval was rejected. |
1600 | APPROVED | Order approved. |
2001 | DO_ANNOUNCE | Supplier has to be assigned. |
2095 | CHECK_ANNOUNCED | Supplier was assigned to order positions but does not respect the configured tolerances. Assigned suppliers has to be approved manually. |
2098 | NOT_ANNOUNCED | At least one order position could not be assigned to a supplier. Order has to be canceled manually. |
2099 | NOT_ANNOUNCED_DO_CANCEL | Assignment to a supplier failed, i.e., end of life (EOL) of an article -> automated cancellation of order is configured. |
2100 | ANNOUNCED | Suppliers are assigned to the order positions. |
2101 | DO_OPTIMIZE | Assigned suppliers has to be optimized. |
2200 | OPTIMIZED | Finished optimization of assigned suppliers. |
2401 | DO_PREPARE_RESPONSE | Temporary response to the shop will be created. |
2501 | DO_PREPARE_DOCUMENT | Required objects to create documents will be created. |
2600 | PREPARED_DOCUMENT | Finished creation of documents. |
4001 | DO_CREATE_TRANSMISSION | Order ready to be submitted to the supplier. Order transmission will be created. |
4099 | WAIT_FOR_TRANSMIT | Order is waiting to be submitted to the supplier. I.e., supplier does not support article reservation. |
4100 | CREATED_TRANSMISSION | Created order transmission of type SEND_ORDER or ORDER_RESERVATION. |
4200 | RESERVATED | 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). |
4210 | RESERVATION_PARTLY_RETURNED | Reservation paritally revoked. Waiting for return. |
4400 | PARTLY_COMMISSIONED | Order partially submitted. |
4420 | PARTLY_COMMISSIONED_PARTLY_DISPATCHED | Order partially submitted and partially dispatched. |
4440 | PARTLY_COMMISSIONED_PARTLY_RETURNED | Order partially submitted and partially canceled/ returned. |
4460 | PARTLY_COMMISSIONED_PARTLY_DISPATCHED_PARTLY_RETURNED | Order partially submitted and partially canceled/ returned. |
4500 | COMMISSIONED | Order entirely submitted. |
4520 | COMMISSIONED_PARTLY_DISPATCHED | Order entirely submitted and partially dispatched. |
4540 | COMMISSIONED_PARTLY_RETURNED | Order entirely submitted and partially canceled/ returned. |
4560 | COMMISSIONED_PARTLY_DISPATCHED_PARTLY_RETURNED | Order partially submitted, partially dispatched and partially canceled/ returned. |
4600 | PICKING | Order will be prepared for dispatch/ pickup. |
5000 | DISPATCHED | Order entirely dispatched. |
5100 | DISPATCHED_PARTLY_RETURNED | Order dispatched and partially returned. |
5200 | READY_FOR_PICK_UP | Order/ delivery is read for pickup. |
5300 | PICKED_UP | Order/ delivery was picked up. |
6000 | RETURNED | Order entirely returned. |
6200 | CANCELED | Order canceled before submission. |
10000 | WAIT_MERGE | Order/ delivery was stopped because of order merge. Status to wait without status transitions. |
20000 | DO_CUSTOM_PROCESS | Order/ delivery was stopped because of a custom process. Status to wait without status transitions. |
INSERT INTO "Shop2OrderStatesDefDO"( id, "orderStatesDefRef", "shopOrderStatesName", "shopRef") VALUES (nextval('oms."Shop2OrderStatesDefDO_id_seq"'), 0, 'initial', 10000);
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
orderPosStatesDefRef | Reference to oms."OrderPosStatesDefDO" | 0 |
shopOrderPosStatesName | Name of the position state used by the shop, depends the order state in the OrderStateService | initial |
shopRef | Reference to oms."ShopDO" - $shopId |
ID | Name | Description |
---|---|---|
0 | INITIAL | Order position initially stored in the database. |
500 | DO_CHECK | Order position modified manually and ready to process. |
998 | NOT_CHECKED | Order position has to be checked manually. |
999 | NOT_CHECKED_DO_CANCEL | Order position canceled after order check. |
1000 | CHECKED | Order position was checked. |
1501 | ORDER_APPROVAL_REQUIRED | Approval required. |
1540 | DO_CREATE_APPROVALTRANSMISSION | Transmission object for order approval has to be created. |
1550 | CREATED_APPROVALTRANSMISSION | Transmission object for order approval was created. |
1580 | DO_APPROVE | Validation failed. Manual approval required. |
1599 | NOT_APPROVED | Approval was rejected. |
1600 | APPROVED | Approved. |
2001 | DO_ANNOUNCE | Supplier has to be assigned. |
2095 | CHECK_ANNOUNCED | Supplier was assigned to order positions but does not respect the configured tolerances. Assigned suppliers has to be approved manually. |
2098 | NOT_ANNOUNCED | Order position could not be assigned to a supplier. Order has to be canceled manually. |
2099 | NOT_ANNOUNCED_DO_CANCEL | Assignment to a supplier failed, i.e., end of life (EOL) of an article -> automated cancellation of order is configured. |
2100 | ANNOUNCED | Supplier was assigned to the order positions. |
2101 | DO_OPTIMIZE | Assigned supplier has to be optimized. |
2200 | OPTIMIZED | Finished optimization of assigned suppliers. |
2301 | DO_CHECK_ORDER_APPROVAL_REQUIRED | Check for order approval. |
2401 | DO_PREPARE_RESPONSE | Temporary response to the shop will be created. |
2501 | DO_PREPARE_DOCUMENT | Required objects to create documents will be created. |
2600 | PREPARED_DOCUMENT | Finished creation of documents. |
4001 | DO_CREATE_TRANSMISSION | Order position ready to be submitted to the supplier. Order transmission will be created. |
4099 | WAIT_FOR_TRANSMIT | Order position is waiting to be submitted to the supplier. I.e., supplier does not support article reservation. |
4100 | CREATED_TRANSMISSION | Created transmission of type SEND_ORDER or ORDER_RESERVATION. |
4110 | TRANSMISSION_FAILED | Failed to submit order position to supplier. Transient state for interfaces. |
4200 | RESERVATED | Reservation was submitted to the supplier. |
4210 | RESERVATION_PARTLY_RETURNED | Reservation revoked. Waiting for return. |
4500 | COMMISSIONED | Order position submitted to the supplier. |
4510 | COMMISSIONED_CONFIRMED | Submitted order position to supplier and was confirmed by the supplier (response). Transient state for interfaces. |
4520 | COMMISSIONED_PARTLY_RETURNED | Order position submitted and partially dispatched. |
4540 | COMMISSIONED_PARTLY_DISPATCHED | Order position submitted and partially dispatched. |
4560 | COMMISSIONED_PARTLY_DISPATCHED_PARTLY_RETURNED | Order position partially submitted, partially dispatched and partially canceled/ returned. |
4600 | PICKING | Order position will be prepared for dispatch/ pickup. |
5000 | DISPATCHED | Order position dispatched. |
5100 | DISPATCHED_PARTLY_RETURNED | Order position/ delivery dispatched and partially returned. |
5200 | READY_FOR_PICK_UP | Order position/ delivery is read to pickup. |
5300 | PICKED_UP | Order position/ delivery was picked up. |
6000 | RETURNED | Order position returned. |
6200 | CANCELED | Order position canceled before submission. |
10000 | WAIT_MERGE | Order position/ delivery was stopped because of order merge. Status to wait without status transitions. |
INSERT INTO "Shop2OrderPosStatesDefDO"( id, "orderPosStatesDefRef", "shopOrderPosStatesName", "shopRef") VALUES (nextval('oms."Shop2CarrierDO_id_seq"'), 0, 'initial', 10000);
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
errorForcesAutomaticCancelation | Indicates whether an error causes the order to be automatically canceled | true |
orderSupplierEvaluationRuleDefRef | Reference to the evaluation rule in oms."OrderSupplierEvaluationRuleDefDO" | 900 |
shopRef | Reference to oms."ShopDO" - $shopId | 10000 |
Property | Description |
---|---|
id | ID / primary key |
name | The name of the rule. |
description | The description of the rule. |
mandatory | Whether the rule is mandatory to be checked. |
rank | Priority/ rank the rules should be checked before and after others. |
ID | Name | Description | Rank | Mandatory |
---|---|---|---|---|
1 | Availability and delivery time check | Availability and delivery time check | 100 | FALSE |
4 | Sales price | Sales price checck | 180 | FALSE |
5 | Purchase price | Purchase price check | 200 | FALSE |
6 | Delivery date | Delivery date check | 220 | FALSE |
7 | COD | Check for COD can be full filled | 900 | TRUE |
8 | Preferred supplier check | Preferred supplier check | 950 | FALSE |
9 | Selected supplier check | Selected supplier check | 940 | FALSE |
999 | Status update to FINISHED | All evaluations have the status FINISHED | 999 | TRUE |
INSERT INTO "Shop2OrderSupplierEvaluationRuleDefDO"( id, "errorForcesAutomaticCancelation", "orderSupplierEvaluationRuleDefRef", "shopRef") VALUES (nextval('oms."Shop2OrderSupplierEvaluationRuleDefDO_id_seq"'), true, 900, 10000);
Includes the validation rules configured for a shop for an incoming order
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
orderValidationRuleDefRef | Reference to oms."OrderValidationRuleDefDO" | 1 |
runSynchron | If true validation is carried out synchronously at the time of order acceptance | true |
shopRef | Reference to oms."ShopDO" - $shopId | 10000 |
Property | Description |
---|---|
id | ID / primary key |
name | The name of the rule. |
mandatory | Whether the rule is mandatory to be checked. |
rank | Priority/ rank the rules should be checked before and after others. |
ID | Name | Rank | Mandatory |
---|---|---|---|
1 | Validation according to configurations of Guide - IOM Shop Onboarding 2.2#ShopOrderValidationDO | 1000 | FALSE |
2 | Validation sum of prices, positions, etc. | 180 | FALSE |
3 | Check if sales price is given if payment is cash on delivery (cod). | 200 | TRUE |
4 | Check if article-ids are known within the application. | 140 | TRUE |
5 | Set addition to the order if required. | 220 | TRUE |
6 | Check if validation of prices should be proccessed during the supplier assigment process (DOSE). | 240 | FALSE |
8 | Checks if an order was created manually. Prices order, prices of positions and customer information will be completed. | 100 | FALSE |
9 | Validates that parameters of the order fits to the given basket. | 250 | FALSE |
10 | Creates an ImmaterialItemDO for non-physical articles if not exists. | 260 | FALSE |
11 | Valildation of delivery address. | 270 | FALSE |
12 | Validation of billing address. | 280 | FALSE |
13 | Creates a new customer from an order if not exists in the application. | 290 | FALSE |
14 | Set selected supplier from reservation. | 150 | FALSE |
INSERT INTO "Shop2OrderValidationRuleDefDO"( id, "orderValidationRuleDefRef", "runSynchron", "shopRef") VALUES (nextval('oms."Shop2OrderValidationRuleDefDO_id_seq"'), 1, true, 10000);
Includes the supported payment types in a shop and their properties.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
active | Indicates enabled / disabled this payment method | true |
initOrderStateDefRef | Reference to the status oms."OrderStatesDefDO" in which the order for this payment type is initially set | 0 |
paymentDefRef | Reference to oms."PaymentDefDO" | 5 |
shopPaymentName | Name as used by the shop in the order service | 'invoice' |
shopRef | Reference to oms."ShopDO" - $shopId | 10000 |
safePayment | Indicates whether the payment method is considered to be secure | true |
payment2ProcessStageDefRef | Process step of the order an invoice or payment can be done, i.e., after submitting an order from the shop | 20 |
useAutomaticAuthorizationExtension | Indicates whether the authorization is automatically extended before expiration. | false |
authizationDurationInDays | Specifies 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 |
timeForPaymentAllowed | Payment period - given in days | 14 |
ID | Name | Description |
---|---|---|
1 | no payment | Unkown payment method |
2 | pre payment | Prepayment |
3 | credit card | Credit card |
4 | cash on delivery | Cash on delivery (cod) |
5 | on account | On account |
6 | hire purchase | Hire purchase, installment plan |
7 | electronic direct debit | Electronic direct debit |
8 | leasing | Leasing |
9 | direct transfer | Direct transfer |
10 | paypal | PayPal |
11 | klarna | Klarna |
12 | coupon | Coupon |
13 | personal check | Personal check |
14 | credit card via phone fax | Credit card via phone or fax |
15 | visa | Visa |
16 | american express | American Express |
17 | eurocard | EuroCard |
18 | mastercard | MasterCard |
19 | eBay payment | Ebay payment |
20 | store payment | Payment in store |
21 | giropay | Giropay |
22 | billpay | Billpay |
23 | cash on pickup | Cash on pickup |
24 | ISH Fast Pay | ISH dummy payment method |
30 | ideal | iDEAL |
31 | maestro card | Maestro card |
40 | manual refund | Manual refund |
100 | no payment required | No payment required because order amount is zero |
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);
Optional: Describes the characteristics of a PSP
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
modificationDate | Timestamp of last modification | now() |
name | Name of the payment provider | Klarna |
INSERT INTO "PaymentProviderDO"( id, "modificationDate", name) VALUES (nextval('oms."PaymentProviderDO_id_seq"'), now(), 'Klarna');
Relationship between shop, payment provider and payment method
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
shopRef | 'Reference to oms."ShopDO" - $shopId | 10000 |
paymentProviderRef | Reference to oms."PaymentProviderDO" | 1 |
paymentDefRef | Reference to oms."PaymentDefDO" | 1 |
creationDate | Creation date of this configuration | now() |
INSERT INTO "Shop2PaymentProvider2PaymentDefDO"( id, "shopRef", "paymentProviderRef", "paymentDefRef", "creationDate") VALUES (nextval('oms."Shop2PaymentProvider2PaymentDefDO_id_seq"'), 10000, 10000, 11, now());
Optional: Describes the characteristics of a finance controller
Property | Description | Example |
---|---|---|
id | ID / primary key | 10000 |
name | Name of the finance controller | FC |
INSERT INTO "FinanceControllerDO"( id, name) VALUES (10000, 'FC');
Optional: Includes the mapping of the payment methods used by the debtor management systems to PaymentDefDO
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
financeControllerRef | Reference to oms."FinanceControllerDO" | 10001 |
financeControllerPaymentExportName | Payment method name used by IOM for export to the finance controller. Used for export of open amounts, sales order or purchase orders. | PayPal |
financeControllerPaymentImportName | Payment method name used by IOM for imports from the finance controller. Used for import of open amounts, sales order or purchase orders. | PayPal |
paymentDefRef | Reference to oms."PaymentDefDO" | 10 |
INSERT INTO "FinanceController2PaymentDefDO"( id, "financeControllerRef", "financeControllerPaymentExportName", "financeControllerPaymentImportName", "paymentDefRef") VALUES (nextval('oms."FinanceController2PaymentDefDO_id_seq"'), 10000, 'PayPal', 'PayPal', 10);
Optional: Includes the mapping of the tax types used by the debtor management systems to TaxTypeDefDO
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
financeControllerRef | Reference to oms."FinanceControllerDO" | 10001 |
financeControllerTaxTypeExportName | Taxtype name used by IOM for export to the finance controller. Used for export of open amounts, sales order or purchase orders. | FullTax |
financeControllerTaxTypeImportName | Taxtype name used by IOM for imports from the finance controller. Used for import of open amounts, sales order or purchase orders. | FullTax |
taxTypeDefRef | reference to oms."TaxTypeDefDO" | 5 |
INSERT INTO "FinanceController2TaxTypeDefDO"( id, "financeControllerRef", "financeControllerTaxTypeExportName", "financeControllerTaxTypeImportName", "taxTypeDefRef") VALUES (nextval('oms."FinanceController2PaymentDefDO_id_seq"'), 10000, 'FullTax', 'FullTax', 5);
Optional: Relationship between shop and finance controller
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
financeControllerRef | Reference to oms."FinanceControllerDO" | 10001 |
shopRef | Reference to oms."ShopDO" - $shopId | 10000 |
financeControllerShopName | Shop name as used by the finance controller | inSPIRED |
description | Description | inSPIRED |
INSERT INTO "Shop2FinanceControllerDO"( id, "financeControllerRef", "shopRef", "financeControllerShopName", description) VALUES (nextval('oms."Shop2FinanceControllerDO_id_seq"'), 10000, 10000, 'inSPIRED', 'inSPIRED');
Optional: Includes the name of a return state as used by the shop, reference to the internal return state.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
returnStatesDefRef | Reference to oms."ReturnStatesDefDO" | 0 |
shopReturnStatesName | Name of the return state used by the shop, depends the order state in the OrderStateService | 'initial' |
shopRef | Reference to oms."ShopDO" - $shopId | 10000 |
ID | Name | Description |
---|---|---|
0 | INITIAL | Return initially stored in the database. |
500 | DO_CHECK | Modified manually and ready to process. |
995 | NOT_CHECKED_DO_APPROVE | Validation of return failed. The return has to be checked manually by the shop. |
999 | NOT_CHECKED | Validation of return failed. The return has to be checked manually (IOM). |
1000 | CHECKED | Return was checked. |
2001 | DO_APPROVE | Validation failed. Return has to be approved. |
2099 | APPROVE_MANUAL | Return has to be approved manually. |
2500 | APPROVED | Return approved. |
3001 | DO_PROCESS | Return is ready to process. |
4001 | DO_ANNOUNCE | Announcement of return information has to be done. |
4100 | ANNOUNCED | Finished announcement of return information. |
4701 | DO_COMPOSE_RESPONSE | Response to shop has to be created from return. |
4800 | COMPOSED_RESPONSE | Created response to the shop. |
6000 | PROCESSED | Return processed. |
7001 | DO_PREPARE_DOCUMENT | Required objects to create documents will be created. |
7100 | PREPARED_DOCUMENT | Finished creation of documents. |
7901 | DO_CLOSE | Return process can be closed. |
8000 | CLOSED | Closed return processing. |
8500 | APPROVAL_REJECTED | Rejected approval. |
8900 | IN_EXTERNAL_PROCESSING | Return is in external processing. |
9000 | FAILED | Processing of return failed. |
9999 | COPIED_FOR_MANUAL_EDIT | Created copy of the message to be edited manually. |
10000 | WAIT_MERGE | Return was stopped because of order merge. Status to wait without status transitions. |
11000 | WAIT_PENDING | Return was stopped after creation of new return by interface. Status to wait without status transitions. |
INSERT INTO "Shop2ReturnStatesDefDO"( id, "returnStatesDefRef", "shopReturnStatesName", "shopRef") VALUES (nextval('oms."Shop2ReturnStatesDefDO_id_seq"'), 0, 'initial', 10000);
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
returnReasonDefRef | "shopReturnReasonName" mapped to an IOM internal return reason - reference to oms."ReturnReasonDefDO" | 307 |
shopReturnReasonName | Name (identifier) of the return reason as used by the shop | WRONG_ITEM |
shopRef | Reference to oms."ShopDO" - $shopId | 10000 |
ID | Name | Description | Return type |
---|---|---|---|
1 | CAN010 | Cancellation on customer demand | Cancellation |
2 | CAN020 | Cancellation due to EOL | Cancellation |
3 | CAN030 | Payment not received | Cancellation |
4 | CAN031 | Leasing denied | Cancellation |
5 | CAN040 | Payment by installment denied | Cancellation |
6 | CAN050 | Purchase on account denied | Cancellation |
7 | CAN060 | Credit card order without feedback | Cancellation |
8 | CAN070 | Credit card order with foreign credit card | Cancellation |
9 | CAN080 | Cancellation due to suspicion of defraud| | Cancellation |
10 | CAN090 | Cancellation due to erroneous pricing | Cancellation |
11 | CAN200 | Cancellation due to distributor switch | Cancellation |
12 | CAN990 | Other reasons | Cancellation |
100 | RCL010 | Cancellation on customer demand | Recall |
101 | RCL015 | Cancellation on shop demand | Recall |
102 | RCL020 | Cancellation due to EOL | Recall |
103 | RCL023 | Cancellation due to erroneous article assignment | Recall |
104 | RCL024 | Cancellation due to missing sales price | Recall |
105 | RCL025 | Cancellation due to erroneous pricing | Recall |
106 | RCL030 | Erroneous approval | Recall |
107 | RCL200 | Cancellation due to missing distributor assignment | Recall |
108 | RCL980 | Cancellation due to suspicion of defraud | Recall |
109 | RCL990 | Other reasons | Recall |
110 | RCL300 | Cancellation due to an erroneous order | Recall |
111 | RCL050 | Purchase on account denied | Recall |
112 | RCL040 | Approval rejected | Recall |
113 | RCL400 | Cancellation due to erroneous distributor processes | Recall |
114 | RCL045 | Payment not received | Recall |
115 | RCL041 | Approval rejected due to EOL | Recall |
116 | RCL021 | Cancellation due to missing stock | Recall |
200 | INV010 | Refusal of acceptance by consignee | Inversion |
201 | INV020 | Consignee not me | Inversion |
202 | INV030 | Wrong shipping address | Inversion |
203 | NV040 | Loss during shipment | Inversion |
204 | INV990 | Other reasons | Inversion |
300 | RET010 | Return of goods / general | Return |
301 | RET020 | Return of goods because of bad workmanship | Return |
302 | RET030 | Return of goods because of missing product attributes | Return |
303 | RET040 | Return of goods because of better offer | Return |
304 | RET050 | Return of goods because delivery time too long | Return |
305 | RET060 | Defect within return period, DOA | Return |
306 | RET070 | Item incomplete, missing parts | Return |
307 | RET080 | Shop delivered wrong item | Return |
308 | RET090 | Distributor delivers wrong item | Return |
309 | RET100 | Transport damage | Return |
310 | RET110 | Return on goodwill | Return |
311 | RET120 | Unauthorized return | Return |
312 | RET990 | Other reasons | Return |
313 | RET045 | Return of goods because of inadequate price | Return |
314 | RET046 | Return of goods because of wrong price | Return |
315 | RET055 | Return of goods because of duplicate delivery | Return |
316 | RET075 | Order incomplete, missing position | Return |
317 | RET130 | Return of stained goods | Return |
318 | RET140 | Return of goods because customer does not like the design | Return |
319 | RET150 | Return of goods because customer ordered several sizes/colors | Return |
320 | RET160 | Return of goods because customer does not like the material | Return |
321 | RET170 | Return of goods because customer does not like pattern/color | Return |
322 | RET180 | Return of replacement | Return |
323 | RET190 | Return of goods because product does not meet customer expectations | Return |
324 | RET035 | Return of goods because picture differs from item | Return |
325 | RET057 | Return of goods because wrong quantity delivered | Return |
326 | RET142 | Return of goods because item too large/wide | Return |
327 | RET144 | Return of goods because item too small/tight | Return |
328 | RET145 | Return of goods because item too long | Return |
329 | RET146 | Return of goods because item too short | Return |
330 | RET147 | Return of goods because item squeezes | Return |
331 | RET148 | Return of goods because item has too much compression | Return |
332 | RET149 | Return of goods because item has not enough compression | Return |
333 | RET200 | Return rejected | Return |
400 | DEF010 | DOA, replacement through distributor | Defect |
401 | DEF020 | DOA, credit note from distributor | Defect |
402 | DEF030 | DOA, replacement through shop | Defect |
403 | DEF040 | Credit note with 6 months warranty | Defect |
404 | DEF050 | Credit note after 6 months warranty | Defect |
405 | DEF060 | Warranty with repair/replacement through distributor | Defect |
406 | DEF070 | Warranty with repair/replacement through shop | Defect |
407 | DEF080 | Guarantee with credit note | Defect |
408 | DEF090 | Guarantee with repair/replacement | Defect |
409 | DEF100 | Unauthorized return of defective item | Defect |
410 | DEF990 | Other reasons | Defect |
INSERT INTO oms."Shop2ReturnReasonDefDO"( "id", "returnReasonDefRef", "shopReturnReasonName", "shopRef", "shop2ReturnReasonDefSpecRef") VALUES (nextval('oms."Shop2ReturnReasonDefDO_id_seq"'), 307, 'WRONG_ITEM', 10000, null);
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
approvalStateCodeReasonDefRef | Reference to the internal approval reason | 1 |
shop2ReturnReasonDefRef | Reference to oms."Guide - IOM Shop Onboarding 2.2#Shop2ReturnReasonDefDO" | 10000 |
ID | Name | Description | approvalStateCodeDefRef |
---|---|---|---|
1010 | payment approved | Payment was approved. | 1 |
1990 | other | Other reasons. | 1 |
2010 | payment changed | The payment was changed. | 2 |
2990 | other | Other reasons. | 2 |
3010 | payment approval pending | Payment approval is pending. | 4 |
3990 | other | Other reasons. | 4 |
4010 | payment not approved | Payment was rejected. | 3 |
4050 | validation error | Rejected because of validation errors. | 3 |
4060 | not approved due to EOL (end of life) | Rejected because of EOL (end of life). | 3 |
4100 | payment not received | Recjected because of not received payment. | 3 |
4980 | suspicion of fraud | Rejected because suspicion of fraud. | 3 |
4990 | other | Other reasons. | 3 |
ID | Name |
---|---|
1 | approved |
2 | approved with changes |
3 | not approved |
4 | pending |
5 | waiting for approval |
INSERT INTO "Shop2ReturnReason2ApprovalStateCodeReasonDefDO"( id, "approvalStateCodeReasonDefRef", "shop2ReturnReasonDefRef") VALUES (nextval('oms."Shop2ReturnReason2ApprovalStateCodeReasonDefDO_id_seq"'), 1, 10000);
Optional: The configuration table oms."Shop2SalesChannelDefDO" maps the IOM internal sales channels to shop specific identifier.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
salesChannelDefRef | "shopSalesChannelName" mapped to an IOM internal sales channel - reference to oms."SalesChannelDefDO" | 1 |
shopSalesChannelName | Name (identifier) of the sales channel as used by the shop | SALE |
shopRef | Reference to oms."ShopDO" - $shopId | 10000 |
ID | Name |
---|---|
1 | channel 1 |
2 | channel 2 |
3 | channel 3 |
4 | channel 4 |
5 | channel 5 |
6 | channel 6 |
7 | channel 7 |
8 | channel 8 |
9 | channel 9 |
10 | channel 10 |
11 | additional business |
Note
INSERT INTO oms."Shop2SalesChannelDefDO"( "id", "salesChannelDefRef", "shopSalesChannelName", "shopRef") VALUES (nextval('oms."Shop2SalesChannelDefDO_id_seq"'), 1, 'SALE', 10000);
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
deliveryFormDefRef | "shopDeliveryFormName" mapped to an IOM internal delivery form - reference to oms."DeliveryFormDefDO" | 20 |
shopDeliveryFormName | Name (identifier) of the delivery form as used by the shop | FF |
shopRef | Reference to oms."ShopDO" - $shopId | 5000 |
ID | Name |
---|---|
10 | Standard |
20 | Freight forwarding |
30 | Immaterial goods |
Note
INSERT INTO oms."Shop2DeliveryFormDefDO"( "id", "deliveryFormDefRef", "shopDeliveryFormName", "shopRef") VALUES (nextval('oms."Supplier2DeliveryFormDefDO_id_seq"'), 20, 'FF', 10000);
Optional: Contains the names of delivery options , as used by the shop , with reference to the IOM internal delivery options.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10000 |
deliveryOptionDefRef | "shopDeliveryOptionName" mapped to an IOM internal delivery option - reference to oms."DeliveryOptionDefDO" | 8 |
shopDeliveryOptionName | name (identifier) of the delivery form as used by the shop | OVERNIGHT |
shopRef | reference to oms."ShopDO" - $shopId | 5000 |
ID | Name |
---|---|
1 | Cash on delivery |
2 | Island delivery |
3 | Delivery on Saturday |
4 | Delivery with gift wrap paper |
5 | Delivery with special attachment |
6 | Delivery to container freight station |
7 | Pick items up in store |
8 | Night shipping |
Note
INSERT INTO oms."Shop2DeliveryOptionDefDO"( "id", "deliveryOptionDefRef", "shopDeliveryOptionName", "shopRef") VALUES (nextval('oms."Supplier2DeliveryOptionDefDO_id_seq"'), 8, 'OVERNIGHT', 10000);
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10000 |
responseStateCodeDefRef | "supplierResponseStateCodeName" mapped to an IOM internal response state code - reference to oms."ResponseStateCodeDefDO" | 1 |
supplierResponseStateCodeName | Name (identifier) of the response state code as used by the supplier | OK |
supplierRef | Reference to oms."SupplierDO" - $supplierId | 10000 |
ID | Name |
---|---|
1 | Accepted |
2 | Accepted with change |
3 | Canceled |
4 | Unchanged |
5 | Changed |
6 | Added |
INSERT INTO oms."Shop2ResponseStateCodeDefDO"( "id", "responseStateCodeDefRef", "shopResponseStateCodeName", "shopRef") VALUES (nextval('oms."Supplier2ResponseStateCodeDefDO_id_seq"'), 1, 'OK', 10000);
This configuration table contains the return types supported by the shop.
Note
Best practice: at least configure the return type Recall, Return and Inversion.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
returnTypeDefRef | "shopReturnTypeName" mapped to an IOM internal return type - reference to oms."ReturnTypeDefDO" | 4 |
shopReturnTypeName | Name (identifier) of the return type as used by the shop | RET |
shopRef | Reference to oms."ShopDO" - $supplierId | 5000 |
ID | Name |
---|---|
1 | Cancellation |
2 | Recall |
3 | Inversion |
4 | Return |
5 | Defect |
INSERT INTO oms."Shop2ReturnTypeDefDO"( "id", "returnTypeDefRef", "shopReturnTypeName", "shopRef") VALUES (nextval('oms."Shop2ReturnTypeDefDO_id_seq"'), 4, 'RET', 10000);
Note
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
reductionUnitDefRef | "supplierReductionUnitName" mapped to an IOM internal reduction unit - reference to oms."ReductionUnitDefDO" | 3 |
supplierReductionUnitName | Name (identifier) of the reduction unit as used by the supplier | MO |
supplierRef | Reference to oms."SupplierDO" - $supplierId | 5000 |
ID | Name |
---|---|
1 | Unknown reduction unit |
2 | Percentage |
3 | Monetary |
Note
INSERT INTO oms."Shop2ReductionUnitDefDO"( "id", "reductionUnitDefRef", "shopReductionUnitName", "shopRef") VALUES (nextval('oms."Supplier2ReductionUnitDefDO_id_seq"'), 3, 'MO', 10000);
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
shopReduceReason | name (identifier) of reduce reason by retailer / shop | default |
supplierReduceReason | name (identifier) of reduce reason by supplier | no reduction |
shop2SupplierRef | reference to oms."Shop2SupplierDO" | 15000 |
isDefault | Specifies the default value for the IOM. Ensure that only one row per "shop2SupplierRef" has the value TRUE. | TRUE |
Note
INSERT INTO oms."Shop2Supplier2ReduceReasonDO"( "id", "shopReduceReason", "supplierReduceReason", "shop2SupplierRef", "isDefault") VALUES (nextval('oms."Shop2Supplier2ReduceReasonDO_id_seq"'), 'default', 'no reduction', 15000, TRUE);
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.
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
version | Object version for version control | 1 |
creationDate | Date of creation | now() |
modificationDate | Date of modification | now() |
processesRef | Business process where the event has to be thrown, e.g., CheckOrder | SELECT p.id FROM "ProcessesDO" p JOIN "ProcessDefDO" pd ON p."processDefRef" = pd.id AND pd."queueName" = 'CheckOrderQueue' |
eventDefRef | Type of the event 3 = Invoicing event | 3 |
shopRef | ID of the shop from ShopDO | 10000 |
description | description | 'Invoicing Events on CheckOrder' |
-- 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' );
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
active | Flag to enable/disable this event | true |
version | Object version for version control | 1 |
creationDate | Date of creation | now() |
modificationDate | Date of modification | now() |
decisionBeanDefRef | Determines 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 |
invoicingTypeDefRef | 1 = invoice, 2 = credit note | 1 |
paymentDefRef | Specific payment method, NULL means for all payment methods | null |
eventRegistryEntryRef | ID of the EventRegistryEntryDO for this event | SELECT id FROM "EventRegistryEntryDO" WHERE description = 'Invoicing Events on CheckOrder' |
-- 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 );
Property | Description | Example |
---|---|---|
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 | 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 |
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);
Creation of documents for sending partner and receiving partner. The receiving partner is NULL in this case, because it is an unknown customer.
Property | Description | Example |
---|---|---|
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 | 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 |
-- 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 );
Invoicing Type | process | description |
---|---|---|
Invoice | CheckOrderQueue | Create invoice at order received |
PrepareOrderResponseQueue | Create invoice if order is approved | |
CheckDispatchQueue | Create invoice at dispatch received | |
CloseDispatchQueue | Create invoice if dispatch is successfully processed | |
Credit Note | CheckReturnQueue | Create invoice at return received |
CloseReturnQueue | Create invoice if return is successfully processed |
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
version | Object version for version control | 1 |
creationDate | Date of creation | now() |
modificationDate | Date of modification | now() |
processesRef | Business process where the event has to be thrown, e.g., CloseInvoicing, | SELECT p.id FROM "ProcessesDO" p JOIN "ProcessDefDO" pd ON p."processDefRef" = pd.id AND pd."queueName" = 'CloseInvoicingQueue' |
eventDefRef | Type of the event 2 = payment event | 2 |
shopRef | ID of the shop from ShopDO | null |
description | Description | 'Payment Events on CloseInvoicingQueue' |
-- 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' );
Property | Description | Example |
---|---|---|
id | ID / primary key | 10001 |
active | Flag to enable/disable this event | true |
version | Object version for version control | 1 |
creationDate | Date of creation | now() |
modificationDate | Date of modification | now() |
decisionBeanDefRef | Determines 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 |
paymentNotificationActionDefRef | 1 = authorize, 2 = reverse, 3 = capture, 4 = refund | 3 |
paymentDefRef | Specific payment method, NULL means for all payment methods, e.g., 3 = Creditcard | 3 |
eventRegistryEntryRef | ID of the EventRegistryEntryDO for this event | SELECT id FROM "EventRegistryEntryDO" WHERE description = 'Payment Events on CloseInvoicingQueue' |
-- 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 );
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10000 |
doProcess | Defines if the payment notification needs a transmission or not. | true |
doManualApprove | Set to true if a manual approval necessary. | false |
paymentNotificationActionDefRef | 1 = authorize, 2 = reverse, 3 = capture, 4 = refund | 3 |
shop2PaymentProvider2PaymentRef | Reference to Shop2PaymentProvider2PaymentDefDO | 10000 |
-- Function: admin.add_payment_action_approval(paymentNotificationActionDefRef, shop2PaymentProvider2PaymentRef, doProcess, doManualApprove) SELECT admin.add_payment_action_approval( 3, 10000, true, false );
Create a new CommunicationDO entry with customized decision bean and execution bean as message sender.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10000 |
active | Enable or disable this configuration | true |
key | Unique key | 'SEND_PAYMENT_NOTIFICATION' |
documentFormatDefRef | Supported is only 2 | 2 |
executionBeanDefRef | Custom bean to deal with payment notification transmissions | 1000 |
transmissionTypeDefRef | ID of the transmission type, only 320 is supported (PAYMENTJOB) | 320 |
communicationVersionDefRef | Only 1 is supported ( v1_0 ) | 1 |
transmissionFormDefRef | Only 10 is supported (PUSH) | 10 |
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);
Define the communication partner where the payment notification needs to transmit. Sending partner is the shop, receiving partner is the payment provider.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10000 |
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. | false |
communicationRef | ID from CommunicationDO | SELECT id FROM "CommunicationDO" WHERE "key" = 'SEND_PAYMENT_NOTIFICATION' |
receivingPartnerReferrerRef | ID of the receiving partner, null for payment events | SELECT "id" FROM "PartnerReferrerDO" WHERE "paymentProviderRef" = 10000 |
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 for payment | null |
-- 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) );
Payment Action | Process | Description |
---|---|---|
capture/refund | CloseInvoicingQueue | Capture/refund if invoice/credit note is successfully created |
capture | CheckOrderQueue | Capture at order received |
PrepareOrderResponseQueue | Capture if order is approved | |
CheckDispatch | Capture at dispatch received | |
CloseDispatch | Capture if dispatch is successfully processed | |
refund | CheckReturnQueue | Create refund at return received |
CloseReturnQueue | Create refund if return is successfully processed |
See also
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.
Property | Description | Example |
---|---|---|
id | ID / primary key | 10000 |
version | Object version for version control | 1 |
creationDate | Date of creation | now() |
modificationDate | Date of modification | now() |
processesRef | Business process where the event has to be thrown, e.g., CheckOrder | SELECT p.id FROM "ProcessesDO" p JOIN "ProcessDefDO" pd ON p."processDefRef" = pd.id AND pd."queueName" = 'CheckOrderQueue' |
eventDefRef | Type of the event 1 = Mail event | 1 |
shopRef | ID of the shop from ShopDO | 10000 |
description | Description | 'Mail Events on CheckOrder' |
-- 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');
Property | Description | Example |
---|---|---|
id | ID / primary key | 10000 |
active | Flag to enable/disable this event | true |
version | Object version for version control | 1 |
creationDate | Date of creation | now() |
modificationDate | Date of modification | now() |
decisionBeanDefRef | Determines 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,
Possible transmission types: 500 = SEND_CUSTOMER_MAIL_ORDER | 500 |
eventRegistryEntryRef | ID of the EventRegistryEntryDO for this event | SELECT id FROM "EventRegistryEntryDO" WHERE description = 'Mail Events on CheckOrder' |
-- 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);
Property | Description | Example |
---|---|---|
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. | 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 |
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 |
-- 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 );
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 key | Parameter ID | Exemplary parameter value | Required | Description |
---|---|---|---|---|
messageTemplate | 1205 | orderMessage.vm | true | Template name used to generate the mail body |
subjectTemplate | 1204 | orderSubject.vm | true | Template name used to generate the subject |
mimeType | 1207 | text/html | false | Mime type of the mail |
shopEmailAddress | 1200 | info@myShop.com | true | The from address |
shopEmailSenderName | 1201 | My Shop | false | The from name |
bccEmailAddress | 1202 | mail@example.domian | false | Address used for a blind copy |
Property | Description | Example |
---|---|---|
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 |
-- 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) );
Mail transmission type | Kind of email | Process | Description |
---|---|---|---|
SEND_CUSTOMER_MAIL_ORDER | Order confirmation | CheckOrderQueue | Send customer mail at order received |
Order confirmation | PrepareOrderResponseQueue | Send customer mail if order is approved | |
SEND_CUSTOMER_MAIL_ORDER_COMMISSIONED | Order commissioned confirmation | OrderTransmissionedQueue | Send customer mail if order is successfully exported for suppliers |
SEND_CUSTOMER_MAIL_DISPATCH | Delivery confirmation | CloseDispatchQueue | Send customer mail for delivery confirmation |
SEND_CUSTOMER_MAIL_DISPATCH_IMMATERIAL | Immaterial item download mail | Send customer mail with download links for immaterial items | |
SEND_CUSTOMER_MAIL_RETURN_CAN | Cancellation mail | CloseReturnQueue | Send customer mail with cancellation confirmation |
SEND_CUSTOMER_MAIL_RETURN_RCL | Recall mail | Send customer mail with recall confirmation | |
SEND_CUSTOMER_MAIL_RETURN_INV | Inversion mail | Send customer mail in case of inversion (e.g. wrong shipping address) | |
SEND_CUSTOMER_MAIL_RETURN_RET | Return to sender mail | Send customer mail for general return | |
SEND_CUSTOMER_MAIL_RETURN_DEF | Return of defect items mail | Send customer mail in case of defects | |
SEND_CUSTOMER_MAIL_RETURN_RCL010 | Cancellation on customer demand | Send customer mail for cancellation on customer demand | |
SEND_CUSTOMER_MAIL_RETURN_RCL020 | Cancellation due to EOL | Send customer mail for cancellation due to EOL | |
SEND_CUSTOMER_MAIL_RETURN_RCL021 | Cancellation due to missing stock | Send customer mail for cancellation due to missing stock | |
SEND_CUSTOMER_MAIL_RETURN_RCL045 | Payment not received | Send customer mail if payment not received | |
SEND_CUSTOMER_MAIL_RETURN_RCL980 | Cancellation due to suspicion of defraud | Send customer mail for cancellation due to suspicion of defraud | |
SEND_CUSTOMER_MAIL_RETURN_REJECTED | Return rejected mail | Send customer mail if return was rejected | |
SEND_CUSTOMER_MAIL_RETURN_REFUNDED | Return refunded mail | Send customer mail if refund for return was done | |
SEND_CUSTOMER_MAIL_INVOICE | Invoice mail | InvoicingTransmissionSyncQueue | Send customer mail with invoice document as attachment |
SEND_CUSTOMER_MAIL_DISPATCH_INVOICE | Delivery confirmation with attached invoice document | Send customer mail for delivery confirmation with invoice as attachment | |
SEND_CUSTOMER_MAIL_CREDITNOTE | Credit note mail | Send customer mail with credit note document as attachment | |
SEND_CUSTOMER_MAIL_RETURN_CAN_CREDITNOTE | Return mails with credit note document as attachment | Send 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_REMINDER | Payment reminder mail | - | This kind of mail is triggered via quartz-job after a time interval configured at ShopDO.amountDaysForPaymentReminderMailOfPrepaidOrders |
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.