Prozedur, um für eine Verkaufs-Aktion eine „EINFACH AUFGEBAUTE“, d.h. nur aus einem „Bedingungs-Teil“ (s.u.) bestehende, „erweiterte ARTIKEL-BEDINGUNG“ zu erstellen.
Zum Verständnis :
Jeder „Verkaufs-Aktion“ (einer sogenannten „Campaign“) können Bedingungen zugeordnet werden, die erfüllt sein müssen, damit der Kunde die „Benefits“ der Aktion nutzen kann. (Genau) Eine dieser Bedingungen kann eine sogenannte „Erweiterte Artikel-Bedingung“ sein.
Dieser Bedingung ist genau eine (einfache) Artikel-Bedingung zugeordnet (deren Aufbau detailliert in im_GetItemConditions_Ad beschrieben ist), die kurz gesagt aus Bedingungs-Gruppen besteht, die ihrerseits aus Bedingungs-Teilen bestehen.
Die gesamte Artikel-Bedingung und/oder ihre „Bestandteile“ können (jeweils) „erweitert“ werden, und zwar um Mengen- und/oder Warenwert-Kriterien. So wird beispielsweise aus einem (Artikel-)Bedingungs-Teil „Schuhe der Marke X“ der erweiterte (Artikel-)Bedingungs-Teil „mind. 2 Schuhe der Marke X im Wert von 250 Euro“ oder aus einer einer (einfachen Gesamt-)Artikel-Bedingung „Schuhe der Marke X ODER grüne Hosen“ eine „vollständige Bedingung“ wie „mind. 2 Schuhe der Marke X ODER 3 grüne Hosen im Gesamt-Wert von 250 Euro“.
Das Vorgehen, eine solche „erweiterte Artikel-Bedingung“ für eine Verkaufs-Aktion zu erstellen, wäre normalerweise wie folgt :
Zunächst gilt es, mit den folgenden Prozedur-Aufrufen eine Artikel-Bedingung zu definieren :
Anschließend müßte diese Bedingung dann durch die folgenden Aufrufe zu einer für Verkaufs-Aktionen zu verwendenden Bedingung des Typs „extended item condition“ erweitert werden :
Und schließlich würde man die so erzeugte „erweiterte Artikel-Bedingung“ dann durch den Aufruf von …
… der Verkaufs-Aktion zuweisen.
Häufig kommt man für eine Aktion aber mit einer „einfach gestrickten“ Bedingung aus, d.h. man hat z.B. nur eine einzige Eigenschafts-Bedingung (etwa „Artikel der Marke X“), die vielleicht um eine Warenwert-Bedingung (etwa „im Wert von mindestens 100 Euro“) zu ergänzen ist (wenn überhaupt). Genau für diesen Fall gibt es diese Prozedur, d.h. man spart sich die genannten
9 Prozedur-Aufrufe, und außerdem findet das gesamte Prozedere in einer Transaktion statt (was die Fehlerbehandlung erleichtert, weil keine „halb angelegte Bedingung“ entstehen kann).
HTTP-Method | POST |
HTTP-Auth | Optional |
Alias | om_CreateSimpleCampaignItemCondition_Ad |
Tags | |
Engine-Kategorie | order management |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
CampaignID | ID einer Verkaufs-Aktion, zu der eine „einfach aufgebaute, erweiterte Artikel-Bedingung“ erzeugt und hinterlegt werden soll | integer | 6.0.7 | |
ConditionDescription | Beschreibung des (einzigen) Bedingungs-Teils und damit auch der gesamten Artikel-Bedingung. Hinweis : Eine hinsichtlich Mengen- und/oder Warenwert-Kriterien „erweiterte Beschreibung“ ist in „ExtendedConditionDescription“ anzugeben. | varchar(255) | 6.0.7 | |
LevelIDs | ',,' | Durch „,“ getrennte IDs von Hierarchiestufen („,“ muß auch am Anfang und am Ende sein !). Definiert die möglichen Hierarchien, denen die Artikel-Elemente angehören müssen, um die Bedingung zu erfüllen. Besonderheit : „,,“ bedeutet „KEINE Einschränkung“. | varchar(255) | 6.0.7 |
DomainTreeNodeIDs | ',,' | Durch „,“ getrennte IDs von Elementen im Artikel-Baum („,“ muß auch am Anfang und am Ende sein !). Definiert die möglichen Vorgänger, die Artikel-Elemente haben müssen, um die Bedingung zu erfüllen. Besonderheit : „,,“ bedeutet „KEINE Einschränkung“. | varchar(200) | 6.0.7 |
NodeCharacteristicID | -1 | Entweder „-1“ (⇒ Artikel-Elemente müssen KEINE Eigenschafts-Bedingung erfüllen) oder die ID des Artikel-Merkmals zu dem die Elemente eine Eigenschaft besitzen müssen, die der durch die restlichen Einstellungen definierten Bedingung entsprechen. | smallint | 6.0.7 |
Operator1 | NULL | Operator für die Bedingung „Condition1“. Mögliche Werte : - „=„ - “!=“ / „<>“ - „~“ / „!~“ (LIKE / NOT LIKE) - „>„ - “<„ - “>=„ - “⇐„ - „IN“ / “!I“ (in / NICHT in Menge von „Value“-Werten) - „E“ / „!E“ (IRGENDEINE / KEINE Eigenschaft) | varchar(2) | 6.0.7 |
Condition1 | NULL | Bedingung, die in Verbindung mit „Operator1“ anzuwenden ist („NULL“, falls „Operator1“ den Wert „E“ oder „!E“ hat) | varchar(255) | 6.0.7 |
Operator2 | NULL | Operator für die Bedingung „Condition2“. Mögliche Werte : - „<“ oder „⇐“, falls „Operator1“ „>“ oder „>=“ enthält - bel. Zeichen (Trennzeichen für Werte-Menge), falls „Operator1“ „IN“ oder „!I“ enthält | varchar(2) | 6.0.7 |
Condition2 | NULL | Bedingung, die in Verbindung mit „Operator2“ anzuwenden ist (nur belegt, wenn „Operator2“ den Wert „<“ oder „⇐“ enthält) | varchar(255) | 6.0.7 |
InheritDepth | NULL | Welche Eigenschaften zu „NodeCharacteristicID“ hinsichtlich Vererbung sollen bei Prüfung der Eigenschafts-Bedingung beachtet werden : „-1“ : Alle „0“ : unvererbte „1“ : direkte u. einfach geerbte „2“ : direkte u. einfach oder zweifach geerbte usw. | smallint | 6.0.7 |
RecursiveEvaluation | NULL | Was soll zwecks Prüfung der Bedingung zu „NodeCharacteristicID“ (wenn rekursiv) gewählt werden ? „0“ : direkte Eigenschaft (also eine Merkmal-ID) „1“ : rekursiv ausgewertete Eigenschaft „2“ : zugehör. Beschreibung der Eigenschaft (also der Merkmal-ID) | tinyint | 6.0.7 |
Country | 'german' | Gibt an, in welchem Format „Condition1“ bzw. „Condition2“ ist, falls zu „NodeCharacteristicID“ nur Datums-Angaben erlaubt sind (Groß-/Kleinschreibung wird nicht beachtet) : 'german', 'germany' : Tag-Monat-Jahr 'english', 'england' : Monat-Tag-Jahr | varchar(10) | 6.0.7 |
ExtendedConditionDescription | NULL | Beschreibung für die erweiterte Bedingung. Angeben (und nur dann) falls die Artikel-Bedingung um Mengen- und/oder Warenwert-Kriterien erweitert werden soll (Parameter „…NumberOfItems“, „…Quantity“ „…Price…“) | varchar(255) | 6.0.7 |
MinNumberOfItems | NULL | Wird nur beachtet, wenn „ExtendedConditionDescription“ NICHT „NULL“ ist ! Bedeutet (sofern nicht „NULL“) : Die Anzahl VERSCHIEDENER Artikel-Elemente, die den Bedingungs-Teil erfüllen, muß zwischen diesem Wert und „MaxNumberOfItems“ liegen. | integer | 6.0.7 |
MaxNumberOfItems | NULL | Wird nur beachtet, wenn „ExtendedConditionDescription“ NICHT „NULL“ ist ! Bedeutet (sofern nicht „NULL“) : Die Anzahl VERSCHIEDENER Artikel-Elemente, die den Bedingungs-Teil erfüllen, muß zwischen „MinNumberOfItems“ und diesem Wert liegen. | integer | 6.0.7 |
FromQuantity | NULL | Wird nur beachtet, wenn „ExtendedConditionDescription“ NICHT „NULL“ ist ! Bedeutet (sofern nicht „NULL“) : Die Gesamt-Menge (Summe „Quantity“) ALLER Artikel-Elemente, die den Bedingungs-Teil erfüllen, muß zwischen diesem Wert und „ToQuantity“ liegen. | integer | 6.0.7 |
ToQuantity | NULL | Wird nur beachtet, wenn „ExtendedConditionDescription“ NICHT „NULL“ ist ! Bedeutet (sofern nicht „NULL“) : Die Gesamt-Menge (Summe „Quantity“) ALLER Artikel-Elemente, die den Bedingungs-Teil erfüllen, muß zwischen „FromQuantity“ und diesem Wert liegen. | integer | 6.0.7 |
FromItemBasicPrice | NULL | Wird nur beachtet, wenn „ExtendedConditionDescription“ NICHT „NULL“ ist ! Bedeutet (falls nicht „NULL“) : Der durch „_om_GetBasicPrices“ best. EINZEL-Preis für ein den Bed.-Teil erfüll. Artikel-Element muß zw. diesem Wert und „ToItemBasicPrice“ liegen. | money | 6.0.7 |
ToItemBasicPrice | NULL | Wird nur beachtet, wenn „ExtendedConditionDescription“ NICHT „NULL“ ist ! Bedeutet (falls nicht „NULL“) : Der durch „_om_GetBasicPrices“ best. EINZEL-Preis für ein den Bed.-Teil erfüll. Artikel-Element muß zw. „FromItemBasicPrice“ u. diesem Wert liegen. | money | 6.0.7 |
FromBasicPriceSum | NULL | Wird nur beacht., wenn „ExtendedConditionDescription“ NICHT „NULL“ ist ! Bedeutet (wenn nicht „NULL“) : Die Summe der durch „_om_GetBasicPrices“ best. EINZEL-Preise für den Bed.-Teil erfüll. Artikel-Elem. muß zw. diesem Wert u. „ToBasicPriceSum“ liegen. | money | 6.0.7 |
ToBasicPriceSum | NULL | Wird nur beacht., wenn „ExtendedConditionDescription“ NICHT „NULL“ ist ! Bedeutet (wenn n. „NULL“) : Die Summe der durch „_om_GetBasicPrices“ best. EINZEL-Preise für den Bed.-Teil erfüll. Artikel-Elem. muß zw. „FromBasicPriceSum“ u. diesem Wert liegen. | money | 6.0.7 |
CombineGroupsWithANDOperator | 0 | Gibt an, wie der anzulegenden Artikel-Bedingung zugeordnete Bedingungs-Gruppen verknüpft werden sollen : „0“ : Oder-Verknüpfung (mind. eine Bedingungs-Gruppe muß erfüllt sein) „1“ : Und-Verknüpfung (alle Bedingungs-Gruppen müssen erfüllt sein) | bit | 6.0.7 |
CombinePartsWithANDOperator | 1 | Gibt an, wie der anzulegenden (Artikel-)Bedingungs-Gruppe zugeordnete Bedingungs-Teile verknüpft werden sollen : „0“ : Oder-Verknüpfung (mind. ein Bedingungs-Teil muß erfüllt sein) „1“ : Und-Verknüpfung (alle Bedingungs-Teile müssen erfüllt sein) | bit | 6.0.7 |
Die Prozedur hat keine Rückgaben.
ConditionID | Ausgabeparameter für die ID der „erweiterten Artikel-Bedingung“, die angelegt wurde |
ItemConditionID | Ausgabeparameter für die ID der angelegten Artikel-Bedingung (auf die „ConditionID“ aufgebaut ist) |
ItemConditionGroupID | Ausgabeparameter für die ID der (einzigen) Bedingungs-Gruppe von „ItemConditionID“ |
ItemConditionPartID | ID des (einzigen) Bedingungs-Teils von „ItemConditionGroupID“ |
Code | Beschreibung | Quelle 4) |
---|---|---|
-1203 | Die Bedingung kann nicht gelöscht werden, da sie einer inaktiven Campaign zugeordnet ist | nur indirekt |
-1202 | Die Campaign kann nicht mehr geändert werden, weil sie aktiv ist | direkt und indirekt |
-1201 | Die Bedingung kann nicht geändert/gelöscht werden, da sie in einer aktiven Campaign verwendet wird | nur indirekt |
-569 | Der Benutzer hat kein Ausführungsrecht für die Prozedur | nur indirekt |
-567 | Die Prozedur darf z. Zt. nicht ausgeführt werden | nur indirekt |
-566 | Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werden | nur indirekt |
-535 | Das Datum liegt nicht in der Vergangenheit | nur indirekt |
-530 | Der Wert ist nicht konvertierbar | nur indirekt |
-510 | Der Benutzer ist nicht registriert | nur indirekt |
-504 | Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochen | nur indirekt |
-502 | Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen) | nur indirekt |
-500 | Falsche Parameter | direkt und indirekt |
-163 | Einer Bedingung können maximal 256 Bedingungs-Gruppen zugeordnet werden | nur indirekt |
-162 | Hinzufügen oder Entfernen einer Bedingungs-Gruppe nicht erlaubt, da die Bedingung bereits verw. wird | nur indirekt |
-161 | Die Bedingung darf nicht mehr gelöscht werden, da sie bereits verwendet wird | nur indirekt |
-160 | Der Verknüpfungs-Operator für die Bedingung kann nicht mehr geändert werden | nur indirekt |
-153 | Einer Bedingungs-Gruppe können maximal 256 Bedingungs-Teile zugeordnet werden | nur indirekt |
-152 | Hinzufügen oder Entfernen eines Bedingungs-Teils nicht erlaubt, da die Gruppe bereits verwendet wird | nur indirekt |
-151 | Die Bedingungs-Gruppe darf nicht mehr gelöscht werden, da sie bereits verwendet wird | nur indirekt |
-150 | Der Verknüpfungs-Operator für die Bedingungs-Gruppe kann nicht mehr geändert werden | nur indirekt |
-141 | Es existiert bereits ein Bedingungs-Teil mit denselben Einstellungen | nur indirekt |
-140 | Der Bedingungs-Teil darf nicht mehr geändert/gelöscht werden, da er bereits verwendet wird | nur indirekt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
7.0.7 | 2015-01-29 | Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf] |
6.5.4 | 2013-04-29 | „StartProcedure“-Call u.A. wg. UTF-8 Unterstützung angepasst |
6.0.7 | 2012-05-08 | Erstmalig in dieser Version erstellt |
Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
Unformatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/om_CreateSimpleCampItemCond_Ad?CampaignID=<value>&ConditionDescription=<value>'
Mit xmllint 5) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/om_CreateSimpleCampItemCond_Ad?CampaignID=<value>&ConditionDescription=<value>' | xmllint --format -
use dStore_php\WebService; $service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80); $request = new WebService\Requests\Engine\Procedure\Request( new WebService\Requests\AccessData('default'), 'om_CreateSimpleCampItemCond_Ad', array( 'CampaignID' => <value>, 'ConditionDescription' => '<value>', // 'LevelIDs' => ',,', // 'DomainTreeNodeIDs' => ',,', // 'NodeCharacteristicID' => -1, // 'Operator1' => NULL, // 'Condition1' => NULL, // 'Operator2' => NULL, // 'Condition2' => NULL, // 'InheritDepth' => NULL, // 'RecursiveEvaluation' => NULL, // 'Country' => 'german', // 'ExtendedConditionDescription' => NULL, // 'MinNumberOfItems' => NULL, // 'MaxNumberOfItems' => NULL, // 'FromQuantity' => NULL, // 'ToQuantity' => NULL, // 'FromItemBasicPrice' => NULL, // 'ToItemBasicPrice' => NULL, // 'FromBasicPriceSum' => NULL, // 'ToBasicPriceSum' => NULL, // 'CombineGroupsWithANDOperator' => 0, // 'CombinePartsWithANDOperator' => 1 ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray(); $OutputParams = $xml_result->getOutputParametersAsArray();
XML zur Ausführung mit der Methode engine/execute, z.B. per
curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?> <ListOfBatches> <Batch No="0"> <Procedure Name="om_CreateSimpleCampItemCond_Ad"> <Parameters> <Parameter Name="CampaignID"><!-- integer value --></Parameter> <Parameter Name="ConditionDescription"><!-- varchar value --></Parameter> <!-- <Parameter Name="LevelIDs">',,'</Parameter> --> <!-- <Parameter Name="DomainTreeNodeIDs">',,'</Parameter> --> <!-- <Parameter Name="NodeCharacteristicID">-1</Parameter> --> <!-- <Parameter Name="Operator1">NULL</Parameter> --> <!-- <Parameter Name="Condition1">NULL</Parameter> --> <!-- <Parameter Name="Operator2">NULL</Parameter> --> <!-- <Parameter Name="Condition2">NULL</Parameter> --> <!-- <Parameter Name="InheritDepth">NULL</Parameter> --> <!-- <Parameter Name="RecursiveEvaluation">NULL</Parameter> --> <!-- <Parameter Name="Country">'german'</Parameter> --> <!-- <Parameter Name="ExtendedConditionDescription">NULL</Parameter> --> <!-- <Parameter Name="MinNumberOfItems">NULL</Parameter> --> <!-- <Parameter Name="MaxNumberOfItems">NULL</Parameter> --> <!-- <Parameter Name="FromQuantity">NULL</Parameter> --> <!-- <Parameter Name="ToQuantity">NULL</Parameter> --> <!-- <Parameter Name="FromItemBasicPrice">NULL</Parameter> --> <!-- <Parameter Name="ToItemBasicPrice">NULL</Parameter> --> <!-- <Parameter Name="FromBasicPriceSum">NULL</Parameter> --> <!-- <Parameter Name="ToBasicPriceSum">NULL</Parameter> --> <!-- <Parameter Name="CombineGroupsWithANDOperator">0</Parameter> --> <!-- <Parameter Name="CombinePartsWithANDOperator">1</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>