Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:om_createsimplecampitemcond_ad

om_CreateSimpleCampItemCond_Ad

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 :

  • im_ModifyConditionParts_Ad
  • im_ModifyConditionGroups_Ad
  • im_ModifyCondPartsInGroups_Ad
  • im_ModifyConditions_Ad
  • im_ModifyGroupsPerItemCond_Ad

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 :

  • om_ModifyCampaignItemConds_Ad
  • Evtl. : om_ModifyCampItemCondParts_Ad
  • Evtl. : om_ModifyCampItemConGroups_Ad

Und schließlich würde man die so erzeugte „erweiterte Artikel-Bedingung“ dann durch den Aufruf von …

  • om_ModifyCampaignConditions_Ad

… 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-MethodPOST
HTTP-AuthOptional
Aliasom_CreateSimpleCampaignItemCondition_Ad
Tags
Engine-Kategorieorder management
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

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
integer6.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.
smallint6.0.7
Operator1NULL 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
Condition1NULL Bedingung, die in Verbindung mit „Operator1“ anzuwenden ist („NULL“, falls „Operator1“ den Wert „E“ oder „!E“ hat)
varchar(255)6.0.7
Operator2NULL 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
Condition2NULL Bedingung, die in Verbindung mit „Operator2“ anzuwenden ist (nur belegt, wenn „Operator2“ den Wert „<“ oder „⇐“ enthält)
varchar(255)6.0.7
InheritDepthNULL 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.
smallint6.0.7
RecursiveEvaluationNULL 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)
tinyint6.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
ExtendedConditionDescriptionNULL 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
MinNumberOfItemsNULL 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.
integer6.0.7
MaxNumberOfItemsNULL 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.
integer6.0.7
FromQuantityNULL 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.
integer6.0.7
ToQuantityNULL 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.
integer6.0.7
FromItemBasicPriceNULL 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.
money6.0.7
ToItemBasicPriceNULL 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.
money6.0.7
FromBasicPriceSumNULL 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.
money6.0.7
ToBasicPriceSumNULL 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.
money6.0.7
CombineGroupsWithANDOperator0 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)
bit6.0.7
CombinePartsWithANDOperator1 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)
bit6.0.7

Rückgabe

Die Prozedur hat keine Rückgaben.

Output-Parameter

ConditionIDAusgabeparameter für die ID der „erweiterten Artikel-Bedingung“, die angelegt wurde
ItemConditionIDAusgabeparameter für die ID der angelegten Artikel-Bedingung (auf die „ConditionID“ aufgebaut ist)
ItemConditionGroupIDAusgabeparameter für die ID der (einzigen) Bedingungs-Gruppe von „ItemConditionID“
ItemConditionPartIDID des (einzigen) Bedingungs-Teils von „ItemConditionGroupID“

Mögliche Return-Codes

Code Beschreibung Quelle 4)
-1203Die Bedingung kann nicht gelöscht werden, da sie einer inaktiven Campaign zugeordnet istnur indirekt
-1202Die Campaign kann nicht mehr geändert werden, weil sie aktiv istdirekt und indirekt
-1201Die Bedingung kann nicht geändert/gelöscht werden, da sie in einer aktiven Campaign verwendet wirdnur indirekt
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochennur indirekt
-502Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)nur indirekt
-500Falsche Parameterdirekt und indirekt
-163Einer Bedingung können maximal 256 Bedingungs-Gruppen zugeordnet werdennur indirekt
-162Hinzufügen oder Entfernen einer Bedingungs-Gruppe nicht erlaubt, da die Bedingung bereits verw. wirdnur indirekt
-161Die Bedingung darf nicht mehr gelöscht werden, da sie bereits verwendet wirdnur indirekt
-160Der Verknüpfungs-Operator für die Bedingung kann nicht mehr geändert werdennur indirekt
-153Einer Bedingungs-Gruppe können maximal 256 Bedingungs-Teile zugeordnet werdennur indirekt
-152Hinzufügen oder Entfernen eines Bedingungs-Teils nicht erlaubt, da die Gruppe bereits verwendet wirdnur indirekt
-151Die Bedingungs-Gruppe darf nicht mehr gelöscht werden, da sie bereits verwendet wirdnur indirekt
-150Der Verknüpfungs-Operator für die Bedingungs-Gruppe kann nicht mehr geändert werdennur indirekt
-141Es existiert bereits ein Bedingungs-Teil mit denselben Einstellungennur indirekt
-140Der Bedingungs-Teil darf nicht mehr geändert/gelöscht werden, da er bereits verwendet wirdnur indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.7 2015-01-29Interne Ä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-08Erstmalig in dieser Version erstellt

Code-Snippets

Engine Playground

Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:

cURL

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 -
dStore_php
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();
engine/execute

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>
1)
Pflichtparameter sind unterstrichen
4)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
5)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/om_createsimplecampitemcond_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)