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-Method | POST |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | configurations |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
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. | tinyint | 6.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. | tinyint | 6.0.2 | |
ValidForXDays | NULL | 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. | smallint | 6.0.2 |
DefaultValidUntil | NULL | 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 | datetime | 6.0.2 |
CodeStatus | 0 | 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 | tinyint | 6.0.2 |
XTimesUsable | NULL | Gibt an, wie oft ein Code der Aktion generell eingelöst werden kann („NULL“ bedeutet „unendlich oft“). Diese Einstellung gilt unabhängig von „XTimesUsablePerPerson“ ! | smallint | 6.0.2 |
XTimesUsablePerPerson | 1 | 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. | smallint | 6.0.2 |
DeleteVoucherType | 0 | 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 ! | bit | 6.0.2 |
Die Prozedur hat keine Rückgaben.
VoucherTypeID | ID 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. |
Code | Beschreibung | Quelle 1) |
---|---|---|
-621 | Fehlender oder falscher Eintrag in PersonTypeSettings | 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 |
-550 | Fehlender oder falscher Eintrag in Settings | 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 |
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] |
7.0.1 | 2013-08-07 | „VoucherTypeID“ ist nun gleichzeitig Ausgabeparameter [für den Fall „Neu-Anlage“] |
6.5.2 | 2013-02-26 | Anpassungen die nötig wurden, da die Spalten „UsableByTableID“ und „UsableByTableKeyID“ der Tabelle „VoucherTypes“ entfernt wurden. |
6.5.1 | 2012-11-02 | Wenn 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-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_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 -
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();
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>