Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:om_modifyvouchertypes_ad

om_ModifyVoucherTypes_Ad

Erstellt, ändert oder löscht Gutschein-Aktionen, die sogenannten „VoucherTypes“. Darunter sind Aktionen zu verstehen, zu denen Codes generiert und an Kunden weitergegeben werden können, damit diese dann bei Einlösung einen Bonus erhalten, wie z.B. einen Auftragsrabatt oder einen Bonus-Artikel etc.

Anmerkung zum Parameter „GenerationPattern“ :

In „GenerationPattern“ gibt man an, wie ein Code zu einem „VoucherType“ auszusehen hat. Ist „VCodeOriginTypeID = 3“ (für
„Importiert“), wird „GenerationPattern“ ignoriert (wie „NULL“ behandelt).
In allen anderen Fällen muß hier entweder eine feste Zeichenkette angegeben werden oder die „randomstr“-Funktion für eine zufällige Teilzeichenkette (gebildet aus folgendem Zeichenvorrat : 0,..,9,a,..,z - Codes sind also insbesondere immer „lowercase“).
In letzterm Fall muß „GenerationPattern“ wie folgt aussehen : #randomstr(<strlength>,<opt.Prefix>,<opt.Postfix>)#
Das „randomstr-Pattern“ führt zu einer Erzeugung eines Codes, bestehend aus einer zufällig erzeugten Zeichenkette der Länge „strlength“, der optional ein „Prefix“ (feste Zeichenkette) VORANgestellt und optional ein „Postfix“ (feste Zeichenkette)
ANGEHÄNGT ist.
Gibt man für „GenerationPattern“ z.B. den Wert „ #randomstr(4,'te_','_st')# “ an, kann „te_sf8u_st“ als Code erzeugt werden.
ACHTUNG : Der optionale Prefix bzw. Postfix MUSS mit dem einfachen Anführungszeichen beginnen und enden und außerdem dürfen keine Leerzeichen zwischen den „Parametern“ der Funktion sein.

Weitere Beispiele für „GenerationPattern“ mit einer Erläuterung :

GenerationPattern | Hinweis/Bedeutung | Beispiel-Code
——————————–|——————————————————|—————-
#randomstr(8)# | Zufällige Zeichenkette aus 8 Zeichen | ae8im23pwy
Turbo3000 | Es gibt genau einen (festen) Code | turbo3000
#randomstr(8,bla)# | UNGÜLTIG, da „bla“ NICHT von ' eingeschlossen ist ! | -
#randomstr(6,,'bla')# | Zufällige Zeichenkette aus 6 Zeichen, gefolgt von | 2uver0bla
| der festen Zeichenkette „bla“ |
#randomstr(10, 'B','U')# | UNGÜLTIG, da eine Leertaste vor dem Postfix 'B' ist | -
#randomstr(1,'B','U')# | Zeichen 'b' (lower !), gefolgt von EINEM zufälligen | b5u
| Zeichen, abgeschlossen mit dem Zeichen 'u' (lower !) |

Anmerkungen zu den Parametern „DefaultValidUntil“ und „ValidForXDays“ :

1.) Wird weder „ValidForXDays“ noch „DefaultValidUntil“ angegeben, wird bei der Generierung von Codes (durch om_CreateVoucherCodes_Ad) zur Aktion erwartet, daß der Zeitpunkt des Ablaufs der Codes angegeben wird.
2.) Wird die „DefaultValidUntil“- oder „ValidForXDays“-Einstellung einer Gutschein-Aktion bearbeitet, gelten diese Änderungen nur für die zukünftige Erzeugung von Gutschein-Codes dieses Typs, nicht aber für bereits erzeugte Gutscheincodes !

HTTP-MethodPOST
HTTP-AuthOptional
Tags
Engine-Kategorieconfigurations
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Description Bezeichnung der Aktion
varchar(100)6.0.2
VCodeOriginTypeID ID einer Herkunftsart von Gutschein-Codes (also z.B. „importiert“ oder „generiert“, mögliche Werte : s. om_GetVCodeOriginTypes_Ad). Bedeutet, daß Codes zur Aktion nur auf diese Weise entstehen (generiert/importiert etc.) können.
tinyint6.0.2
GenerationPattern Legt fest, wie Codes zur Aktion auszusehen haben. Ist „VCodeOriginTypeID = 3“ („Importiert“), wird diese Einstellung ignoriert. Sonst muß hier entweder eine feste Zeichenkette angegeben werden oder die „randomstr“-Funktion - s. Beschreibung !
varchar(255)6.0.2
BenefitTypeID ID einer Bonus-Art (was ein Kunde bei Einlösung eines Codes als Bonus erhält). Wenn in „Settings“ der Wert „1“ für „CampaignSurchargesEnabled“ konfiguriert ist, muß hier „0“, sonst „1“ angegeben werden.
tinyint6.0.2
ValidForXDaysNULL Wird ignoriert, wenn „DefaultValidUntil“ angegeben ist ! Wenn angegeben, steht der Wert für die Anzahl Tage, die ein Code der Aktion ab dem Zeitpunkt der Generierung standardmäßig (kann z.B. bei Code-Generierung überschrieben werden) gültig sein soll.
smallint6.0.2
DefaultValidUntilNULL Datum, bis zu dem jeder Code der Aktion (unabhängig des Erstellungszeitpunktes) standardmäßgig (kann z.B. bei Code-Generierung überschrieben werden) gültig ist
datetime6.0.2
CodeStatus0 Status der Aktion hinsichtlich Erzeugbarkeit und Einlösbarkeit von Codes :
- „0“ : Codes-Erzeugung und -Einlösung möglich
- „1“ : Nur Einlösung von Codes (aber keine Generierung) möglich
- „2“ : KEINE Code-Erzeugung/-Einlösung möglich
tinyint6.0.2
XTimesUsableNULL Gibt an, wie oft ein Code der Aktion generell eingelöst werden kann („NULL“ bedeutet „unendlich oft“). Diese Einstellung gilt unabhängig von „XTimesUsablePerPerson“ !
smallint6.0.2
XTimesUsablePerPerson1 Gibt an, wie oft ein Code der Aktion von einer Person eingelöst werden kann („NULL“ bedeutet „unendlich oft“). Dieser Wert muß immer „⇐ XTimesUsable“ sein, da ein Code nicht öfter von einer Person eingelöst werden kann als er insgesamt einlösbar ist.
smallint6.0.2
DeleteVoucherType0 Falls „VoucherTypeID“ angegeben ist, wird hierdurch festgelegt, ob die existierende Aktion geändert („0“) oder gelöscht („1“) werden soll. Ein „VoucherType“ kann nur gelöscht werden, wenn noch kein Code zu dieser Aktion generiert oder importiert wurde !
bit6.0.2

Rückgabe

Die Prozedur hat keine Rückgaben.

Output-Parameter

VoucherTypeIDID einer Gutschein-Aktion. „NULL“ für eine neue Aktion angeben (neue ID steht hierüber nach dem Aufruf zur Verfügung). Ansonsten entscheidet „DeleteVoucherType“ darüber, ob die bestehende Aktion zu ändern oder zu löschen ist.

Mögliche Return-Codes

Code Beschreibung Quelle 1)
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur 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
-550Fehlender oder falscher Eintrag in Settingsnur 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

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]
7.0.1 2013-08-07„VoucherTypeID“ ist nun gleichzeitig Ausgabeparameter [für den Fall „Neu-Anlage“]
6.5.2 2013-02-26Anpassungen die nötig wurden, da die Spalten „UsableByTableID“ und „UsableByTableKeyID“ der Tabelle „VoucherTypes“
entfernt wurden.
6.5.1 2012-11-02Wenn in „Settings“ der Wert „1“ für „CampaignSurchargesEnabled“ konfiguriert ist, muß „BenefitTypeID = 0“ sein,
ansonsten wird derzeit nur „BenefitTypeID = 1“ unterstützt
6.0.2 2011-06-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_ModifyVoucherTypes_Ad?Description=<value>&VCodeOriginTypeID=<value>&GenerationPattern=<value>&BenefitTypeID=<value>'

Mit xmllint 2) formatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/om_ModifyVoucherTypes_Ad?Description=<value>&VCodeOriginTypeID=<value>&GenerationPattern=<value>&BenefitTypeID=<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_ModifyVoucherTypes_Ad',
		array(
			'Description' => '<value>',
			'VCodeOriginTypeID' => <value>,
			'GenerationPattern' => '<value>',
			'BenefitTypeID' => <value>,
			// 'ValidForXDays' => NULL,
			// 'DefaultValidUntil' => NULL,
			// 'CodeStatus' => 0,
			// 'XTimesUsable' => NULL,
			// 'XTimesUsablePerPerson' => 1,
			// 'DeleteVoucherType' => 0
		)
);
 
$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_ModifyVoucherTypes_Ad">
			<Parameters>
				<Parameter Name="Description"><!-- varchar value --></Parameter>
				<Parameter Name="VCodeOriginTypeID"><!-- tinyint value --></Parameter>
				<Parameter Name="GenerationPattern"><!-- varchar value --></Parameter>
				<Parameter Name="BenefitTypeID"><!-- tinyint value --></Parameter>
				<!-- <Parameter Name="ValidForXDays">NULL</Parameter> -->
				<!-- <Parameter Name="DefaultValidUntil">NULL</Parameter> -->
				<!-- <Parameter Name="CodeStatus">0</Parameter> -->
				<!-- <Parameter Name="XTimesUsable">NULL</Parameter> -->
				<!-- <Parameter Name="XTimesUsablePerPerson">1</Parameter> -->
				<!-- <Parameter Name="DeleteVoucherType">0</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
2)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/om_modifyvouchertypes_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)