Prozedur, um einen für Verkaufs-Aktionen zu verwendenden Bundle-Preis-Benefit anlegen/ändern/löschen zu können.
Hintergrund :
Der Benefit-Typ „Bundle-Preis“ für Verkaufs-Aktionen bietet die Möglichkeit, Sets von Artikeln definieren zu können, die vergünstigt angeboten werden („3 für 2“ oder „2 XY zum Preis von …“ etc.). Die Definition solcher Sets erfolgt durch om_ModifyBundleItemSets_Ad und die Zuweisung erfolgt via om_ModifySetsForBunBenefits_Ad.
Allgemeine Anmerkungen :
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 „CampaignBenefits“ vorher gelöscht (was man normalerweise mit om_ModifyCampaignBenefits_Ad macht).
Anmerkungen zum Parameter „BundlePriceOrDiscount“ :
1.) Bei „BundlePricingTypeID = 0“ ist hier ein Festpreis (Wert muß „> 0“ sein) für das Bundle anzugeben. Die Währung wird durch den „CampaignSettings“-Eintrag „CurrencyID“ bzw. die „DefaultCurrencyID“ bestimmt, und ob der Preis brutto oder netto zu verstehen ist, gibt man durch „NetBasedPricing“ an.
2.) Falls „BundlePricingTypeID“ den Wert „1“ oder „2“ enthält, gibt man hier den gewünschten prozentualen Rabatt an (positiver Prozent-Wert, i.d.R. wohl z.B. 100 oder 50), der auf den günstigsten/teuersten Artikel gewährt werden soll.
3.) In allen anderen Fällen belegt man den Parameter am besten mit „NULL“, er wird aber sowieso nicht beachtet.
HTTP-Method | POST |
HTTP-Auth | Optional |
Alias | om_ModifyCampaignBundlePricing_Ad |
Tags | |
Engine-Kategorie | order management |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
BundlePricingTypeID | ID der Art, wie der (Ziel-)Preis für das Bundle bestimmt wird. Mögliche Werte : s. om_GetBundlePricingTypes_Ad. | tinyint | 7.0.5 | |
BundlePriceOrDiscount | Je nach „BundlePricingTypeID“ : - „0“ : Festpreis - „1“ : Prozentualer Rabatt für den günstigsten Artikel im Bundle - „2“ : Prozentualer Rabatt für den teuersten Artikel im Bundle - Sonst unbeachtet (s.a. Beschreibung) | decimal(12,2) | 7.0.5 | |
NetBasedPricing | 0 | Bestimmt je nach „BundlePricingTypeID“, ob der Festpreis (ID „0“) in brutto oder netto angegeben ist bzw. (alle anderen IDs) welcher Preis (ob brutto oder netto) bei der Bestimmung „günstigster/teuerster Artikel“ herangezogen werden soll | bit | 7.0.6 |
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 | 7.0.5 |
Die Prozedur hat keine Rückgaben.
BenefitID | ID eines Bundle-Preis-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.7 | 2015-01-29 | Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf] |
7.0.6 | 2014-06-23 | 1. Doku-Änderung für Parameter „BundlePriceOrDiscount“ 2. Neuer Parameter „NetBasedPricing“ 3. Parameter „AbsDiscountSurchargeTypeID“ ist entfallen 4. Es fehlte der „⇐ 100“-Check für „BundlePriceOrDiscount“ im Fall „BundlePricingTypeID IN (1,2)„ |
7.0.5 | 2014-05-26 | 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_ModifyCampBundlePricing_Ad?BundlePricingTypeID=<value>&BundlePriceOrDiscount=<value>'
Mit xmllint 2) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/om_ModifyCampBundlePricing_Ad?BundlePricingTypeID=<value>&BundlePriceOrDiscount=<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_ModifyCampBundlePricing_Ad', array( 'BundlePricingTypeID' => <value>, 'BundlePriceOrDiscount' => <value>, // 'NetBasedPricing' => 0, // 'DeleteBenefit' => 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_ModifyCampBundlePricing_Ad"> <Parameters> <Parameter Name="BundlePricingTypeID"><!-- tinyint value --></Parameter> <Parameter Name="BundlePriceOrDiscount"><!-- decimal value --></Parameter> <!-- <Parameter Name="NetBasedPricing">0</Parameter> --> <!-- <Parameter Name="DeleteBenefit">0</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>