Prozedur, um einen für Verkaufs-Aktionen zu verwendenden Rabatt-Benefit anlegen/ändern/löschen zu können.
Hinweise :
1.) Sofern „BenefitID“ einer AKTIVEN Verkaufs-Aktion zugeordnet ist, kann NICHTS mehr verändert (also auch Löschen ist nicht möglich) werden (ggf. gibt es dann also einen Fehler) !
2.) Das Löschen eines Benefits schlägt auch dann fehl, wenn er einer INAKTIVEN Verkaufs-Aktion zugeordnet ist. Übergibt man aber den Wert „2“ für „DeleteBenefit“, werden evtl. vorhandene Datensätze zur „BenefitID“ in „CampaignSurcharges“ vorher gelöscht (was man normalerweise mit om_ModifyCampaignBenefits_Ad macht).
Anmerkungen zu den Parametern „DerivedFromPersonCharacID“ und „DerivedFromNodeCharacID“ :
1.) Im Fall „DerivedFromPersonCharacID = 1“ sind nur Merkmale erlaubt, für die „FieldTypeID = 10“ konfiguriert ist, die Eigenschaften also Prozent-Zahlen darstellen. Dementsprechend muß in diesem Fall „SurchargeTypeID“ auch der Kategorie „Relative Rabatte“ angehören !
2.) Im Fall „DerivedFromNodeCharacID = 1“ sind nur Merkmale mit einer „UnitID“ erlaubt, die der für „SurchargeTypeID“ konfigurierten „UnitID“ entspricht (damit kommen nur Prozent- oder Währungs-Merkmale in Frage). Falls „SurchargeTypeID“ der Kategorie „Absolute Rabatte“ angehört (also ein Währungs-Merkmal in „SurchargeValue“ angegeben sein muß), ergibt sich der dynamische (absolute) Rabatt durch die Differenz des Standard-Artikelpreises zur Preis-Eigenschaft zum angegebenen Merkmal.
3. Natürlich gibt es einen Fehler, wenn der Wert „1“ sowohl für „DerivedFromPersonCharacID“ als auch „DerivedFromNodeCharacID“ angegeben wird !
HTTP-Method | POST |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | order management |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.8 (2015-08-21) |
SurchargeTypeID | ID einer Aufschlags-/Rabattart, mögliche Werte s. om_GetSurchargeTypes_Ad. Es sind nur „SurchargeTypes“ der Kategorie (bei „DerivedFromPersonCharacID = 1“ nur :) „Relative Rabatte“ oder „Absolute Rabatte“ erlaubt ! | smallint | 6.0.8 | |
SurchargeValue | Je nach „DerivedFrom…CharacID“ ein fester Rabattwert (nur negative Werte !) oder die ID eines Personen-Merkmals (nur Prozent-Merkmale !) oder Artikel-Merkmals (nur Prozent-/Währungs-Merkmale !) über das der Wert dynamisch zur Laufzeit bestimmt wird | decimal(16,6) | 6.0.8 | |
ItemConditionID | NULL | ID einer Artikel-Bedingung (mögliche Werte : s. im_GetItemConditions_Ad). Wenn angegeben („ApplyToOption“ muß dann „0“ sein !), gilt der Rabatt nur für Positionen, die ein Artikel-Element enthalten, das die hierdurch gegebene Bedingung erfüllt. | integer | 6.0.8 |
ApplyToOption | 3 | Wenn „ItemConditionID“ NICHT „NULL“ ist, „0“ angeben ! Gibt ansonsten an, auf was der Rabatt anzuwenden ist : - „1“ : auf die „erweit. Artikel-Bedingung“ (der Aktion) erfüll. Positionen - „2“ : alle Positionen - „3“ : Gesamt-Rabatt („OrderSurcharge“) | tinyint | 6.0.8 |
DeleteBenefit | 0 | Wird nur beachtet, wenn „BenefitID“ angegeben ist. - „0“ : Benefit ändern - „1“ : Benefit löschen - schlägt fehl, wenn „BenefitID“ einer inaktiven Aktion zugeor. ist - „2“ : Benefit löschen selbst wenn „BenefitID“ einer inaktiven Aktion zugeor. ist | tinyint | 6.0.8 |
DerivedFromPersonCharacID | 0 | Falls „1“ muß „SurchargeValue“ die ID eines Personen-Merkmals (mit „FieldTypeID = 10“) sein und der Rabatt-Wert ist die Eigenschaft zu diesem Merkmal von der „PersonID“, die beim Aufruf der Preis-Ermittlung angegeben wird | bit | 7.0.8 |
DerivedFromNodeCharacID | 0 | Falls „1“ muß „SurchargeValue“ die ID eines Artikel-Merkmals (mit derselben „UnitID“ wie zu „SurchargeTypeID“ konfiguriert) sein und der Rabatt-Wert ergibt sich aus der Eigenschaft eines Artikels zu diesem Merkmal (s. Beschreibung) | bit | 7.0.8 |
Die Prozedur hat keine Rückgaben.
BenefitID | ID eines Rabatt-Benefits. „NULL“ angeben, um einen neuen Benefit anzulegen (die neue ID kann man dann diesem Ausgabeparameter entnehmen). |
Code | Beschreibung | Quelle 1) |
---|---|---|
-1213 | Der Benefit kann nicht gelöscht werden, da er einer inaktiven Campaign zugeordnet ist | nur direkt |
-1211 | Der Benefit kann nicht geändert/gelöscht werden, da er in einer aktiven Campaign verwendet wird | nur direkt |
-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 |
-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.8 | 2015-08-21 | Neue Parameter „DerivedFromPersonCharacID“ und „DerivedFromNodeCharacID“ |
7.0.7 | 2015-01-29 | Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf] |
6.5.0 | 2012-09-17 | 1. Falscher Return-Code wurde in einem Fall zurückgegeben 2. Parameter-Prüfung für „DeleteBenefit“ fehlte |
6.0.8 | 2012-06-29 | 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_ModifyCampaignSurcharges_Ad?SurchargeTypeID=<value>&SurchargeValue=<value>'
Mit xmllint 2) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/om_ModifyCampaignSurcharges_Ad?SurchargeTypeID=<value>&SurchargeValue=<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_ModifyCampaignSurcharges_Ad', array( 'SurchargeTypeID' => <value>, 'SurchargeValue' => <value>, // 'ItemConditionID' => NULL, // 'ApplyToOption' => 3, // 'DeleteBenefit' => 0, // 'DerivedFromPersonCharacID' => 0, // 'DerivedFromNodeCharacID' => 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_ModifyCampaignSurcharges_Ad"> <Parameters> <Parameter Name="SurchargeTypeID"><!-- smallint value --></Parameter> <Parameter Name="SurchargeValue"><!-- decimal value --></Parameter> <!-- <Parameter Name="ItemConditionID">NULL</Parameter> --> <!-- <Parameter Name="ApplyToOption">3</Parameter> --> <!-- <Parameter Name="DeleteBenefit">0</Parameter> --> <!-- <Parameter Name="DerivedFromPersonCharacID">0</Parameter> --> <!-- <Parameter Name="DerivedFromNodeCharacID">0</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>