Benutzer-Werkzeuge

Webseiten-Werkzeuge

Action disabled: source

engine:procedures:om_gettrolley_pu

om_GetTrolley_Pu

Gibt den Inhalt des Warenkorbes zu einem Besucher zurück.

Falls Preise ermittelt werden (→ „CalculatePrices“), ist immer eine letzte Zeile im Ergebnis enthalten, die eine Summe aller Werte enthält. Die Summenzeile zeichnet sich dadurch aus, daß für die Rückgabespalte „HTreeNodeID“ der Wert „-1“ ist.

Hinweise und Anmerkungen zur Preisermittlung (falls „CalculatePrices = 1“ ist):

1. Wie die Preisermittlung grundsätzlich funktioniert, ist in der Dokumentation von om_GetPrices_Pu nachzulesen.

2. Gibt es einen „Settings“-Eintrag zum Schlüssel „PriceInTrolleyIsValidForXSeconds“ (eine Zahl größer als „0“), werden die Preise nicht zum aktuellen Zeitpunkt (des Aufrufs dieser Prozedur), sondern zu dem Zeitpunkt, an dem sie jeweils in den Warenkorb gelegt wurden, ermittelt - sofern nicht die konfigurierte Anzahl Sekunden überschritten ist !
Fügt also z.B. ein Kunde einen Artikel seinem Warenkorb hinzu, das zu einem „Aktionspreis“ angeboten wird, und ruft er die Warenkorb-Anzeige zu einem späteren Zeitpunkt auf, an dem die Aktion aber bereits beendet ist, bekommt er trotzdem den Aktionspreis angezeigt - und zu diesem Preis kann er dann auch bestellen, siehe om_CopyFromTrolleyToOrder_Pu.

3. Der Parameter „PriceNodeCharacteristicID“ durchbricht ein wenig das Sicherheits-Konzept der „public“-Prozeduren (alle Prozeduren, deren Name NICHT auf „_Ad“ endet und nicht mit „_“ beginnt). Normalerweise kann ein öffentlicher Benutzer, der sich DIREKT auf dem Datenbank-Server anmeldet (was i.d.R. schon schwierig genug sein sollte…) NUR Daten einsehen oder verändern, für die Zugriffsrechte vorhanden sind. Beispielsweise kann (siehe im_ModifyLockedNodeCharacs_Ad) verhindert werden, daß der „publicuser“ Eigenschaften zu bestimmten Merkmalen einsehen kann - insbesondere bestimmte „Preise“ („Händler-EK“s o.ä.). Evtl. wird es in einer zukünftigen „dStore“-Version daher die Möglichkeit geben, Berechtigungen für Merkmale an den Personen-TYP zu binden o.ä.

Anmerkungen zu den Ausgabespalten „HTreeNodeID“, „NodeID“ und „AssociatedOrChosenTreeNodeID“ :

Im Warenkorb werden immer „HTreeNodeID“s gespeichert. Eine „HTreeNodeID“ ist ein Element im „Artikelbaum“ mit Gültigkeitszeitraum. Jedes Element im „Artikelbaum“ besitzt einen/mehrere Gültigkeitszeitraum/-zeiträume. Für gelöschte Elemente ist dieser Zeitraum abgeschlossen, für momentan gültige (unabhängig davon ob aktiviert oder nicht !!!) Elemente ist dieser Zeitraum OFFEN. Bekommt ein Element eine andere Position im Artikelbaum (d.h. wird es „verschoben“), so existieren mindestens ZWEI Gültigkeitszeiträume : die alte(n) Position(en) im Baum haben natürlich abgeschlossene Zeiträume, die neue (nach dem Verschieben) hat entsprechend einen offenen Zeitraum.

Besonderheit : DERZEIT hat jedes Artikel-Element („NodeID“) eine EINDEUTIGE Position im Artikelbaum („TreeNodeID“). Es ist jedoch vorgesehen, ein Element MEHRFACH im Baum einordnen zu können. Dies hat zur Folge, daß man ein Artikel-Element nicht unbedingt EINDEUTIG in der Hierarchie einordnen kann. DESWEGEN gibt es zu jeder „NodeID“ GENAU EINE
„HTreeNodeID“ mit einem offenen Gültigkeitszeitraum, wobei die „TreeNodeID“ unbekannt ist (Weil dieses Element aber in jedem Fall unterhalb des „Wurzel-Elementes“ liegt, ist als „TreeNodeID“ die „0“ angegeben !)

Es kann also sein, daß sich im Warenkorb des Besuchers eine „HTreeNodeID“ befindet, deren zugehörige „TreeNodeID“ „0“ ist. Zur Preisermittlung (→ CalculatePrices = 1„) oder zur Ermittlung der Vorgänger (→ „IncludePredecessors = 1“) wird aber unbedingt ein Element im Artikelbaum benötigt ! Für solche Elemente wird dann einfach EIN „repräsentierendes“ Element (i.d. R. die kleinste „TreeNodeID“ ungleich „0“ zur „NodeID“) gewählt.

Anmerkung zur Rückgabespalte „QuantityPerBundleItemSetIDList“ :

Durch ein “,„ getrennte Liste von Listen, deren Werte wiederum durch “&„ getrennt sind, und ein Wert die Form <Menge>x<BundleItemSetID> hat. Dies besagt jeweils, wieviel (<Menge>) von „Quantity“ der „HTreeNodeID“ zu der “<BundleItemSetID>„ des Bundles gehört. Die zugehörige „BenefitID“ ergibt sich automatisch, weil eine „ItemSetID“ nur einer „BenefitID“ zugeordnet werden darf. Alle Datensätze haben die gleiche Anzahl Elemente (sowohl die Liste von Listen als auch die “<Menge>x<ItemSetID>„-Liste). Ist „HTreeNodeID“ kein Teil eines Bundles, wird als “<Menge>„ eben „0“ eingetragen.
Hinweis : Die “<Menge>„-Werte haben pro Element in der Liste dieselbe Anzahl Stellen (einige sind also ggf. mit „0“en zu Beginn aufgefüllt).

Anmerkung zum Parameter „RepairEntriesWithSameNodeID“ :

Der Parameter „RepairEntriesWithSameNodeID“ gibt an, ob der Fehler “-311„ zurückgegeben wird (wenn „NULL“ oder „0“ angegeben ist), falls im Warenkorb mehrere „HTreeNodeID“s mit gleicher „NodeID“ vorhanden sind, oder ob die betroffenen Datensätze „repariert“ werden sollen. Solche fehlerhaften Datensätze treten im Regelfall nicht auf, aber durch das „Zusammenlegen von Warenkörben“ beim Identifizierungsvorgang - siehe pm_CheckPersonIdentity_Pu - kann es in sehr, sehr seltenen Fällen auftreten !
„Reparieren“ sieht je nach übergebenem Wert so aus :

  • „1“ : Datensätze mit jeweils gleicher „NodeID“ werden zusammengefaßt, d.h. über „Quantity“ wird die Summe gebildet und als „HTreeNodeID“ wird diejenige ausgewählt, die ZUERST in den Warenkorb gelegt wurde
  • „2“ : Wie „1“, nur daß die „HTreeNodeID“ gewählt wird, die ZULETZT in den Warenkorb gelegt wurde
  • „3“ : Von den Datensätzen mit gleicher „NodeID“ wird die Position übernommen, die ZUERST im Warenkorb war, die anderen werden gelöscht
  • „4“ : Wie „3“ mit dem Unterschied, daß die ZULETZT eingefügte Position gewählt wird

Anmerkung zum Parameter „DeliveryPersonID“ :

Über „DeliveryPersonID“ kann optional die ID einer Lieferanschrift übergeben werden, um z.B. eine „Brutto=Netto“-Berechnung im Falle einer Lieferung an ein Land außerhalb der EU (unter der Annahme, daß die Ware aus einem EU-Land heraus geliefert wird) zu ermöglichen.
Hinweis : Letzteres ist nämlich KEIN Standard-Verhalten, sondern muß in „_ac_om_GetBasicPrices“ bzw. „_ac_om_ComputePrices“ implementiert werden !

HTTP-MethodGET
HTTP-AuthOptional
Tags
Engine-Kategorieorder management
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
UniqueID Eindeutige ID eines Besuchers (aus „Visitors“), dessen „Warenkorb“ (Tabelle „Trolley“) angezeigt werden soll
varchar(100)3.5.0
PersonIDNULL ID einer Person, die dem Besucher „UniqueID“ aktuell zugeordnet sein muß. Wenn angegeben, werden bei der Preisermittlung (falls „CalculatePrices = 1“) evtl. vorhandene „Surcharges“ (Rabatte/Aufschläge) berücksichtigt.
integer3.5.0
CalculatePrices1 „0“ : Es sollen KEINE Preise ermittelt werden (⇒ entspr. Rückgabespalten sind „NULL“)
„1“ : Es sollen Preise ermittelt werden
„2“ : Wie „1“, außerdem ist „SurchargeReason“, „SurchargeGeneratedByCampIDs“ und „QuantityPerBundleItemSetIDList“ gefüllt
tinyint3.5.0
CheckAvailability1 „1“ angeben, um überprüfen zu lassen, ob die Artikel im Warenkorb verfügbar sind. Nicht verfügbare Artikel (solche, die die Eigenschaft „Nicht lieferbar“, „ValueID = -1“, zum Merkmal „Verfügbarkeit“, ID „9“, besitzen) werden gekennzeichnet (→ „Removed“).
bit3.5.0
ShowDescriptions1 Zu den Artikeln im Warenkorb soll die Bezeichnung…
„0“ : … NICHT ermittelt werden (Rückgabespalte „NodeDescription“ enthält dann immer den Wert '')
„1“ : … ermittelt werden (s.a. „LookForProductDescription“)
bit3.5.0
PriceNodeCharacteristicIDNULL ID eines Merkmals. Die Preisermittlung läuft i.d.R. über die rekursiven Merkmale „Verkaufspreis…“. Möchte man aber z.B. sowohl Einzel- als auch Großhandel über denselben Artikelstamm abwickeln, kann man hierdurch ein anderes „Preis-Merkmal“ angeben.
smallint3.5.5
NodeCharacteristicIDNULL ID eines Merkmals. Wenn hier eine ID übergeben wird, ermittelt die Prozedur zu jedem Artikel im Warenkorb die Eigenschaft zu diesem Merkmal (→ Rückgabespalte „ItemProperty“).
smallint3.5.13
IncludePredecessors0 „1“ übergeben, um zusätzliche Spalten in der Rückgabemenge zu erhalten; diese enthalten die Vorgänger-Elemente zum jeweiligen Artikel
bit3.5.13
LookForProductDescription1 Artikel-Elemente können eine Eigenschaft zum Merkmal „Produktbezeichnung“ (in einer Sprache) besitzen. Soll (falls vorh. und „ShowDescriptions = 1“ !) statt der „NodeDescription“ die Eigenschaft zu diesem Merkmal ausgegeben werden, übergibt man hier „1“.
bit3.5.14
RepairEntriesWithSameNodeID0 „NULL“ oder „0“ : falls im Warenkorb mehrere „HTreeNodeID“s mit gleicher „NodeID“ vorhanden sind, gibt es “-311„
„1“, „2“, „3“, „4“ : Die Daten werden „repariert“ (s. Beschreibung)
tinyint4.0.7
GetPlainTrolley0 „1“ : Alle Parameter (außer „UniqueID“) werden ignoriert, und die Prozedur gibt den Warenkorb, so wie er physikalisch in der Datenbank gespeichert ist, zurück
bit4.0.7
DeliveryPersonIDNULL ID einer Person, an die die Ware geliefert werden soll. Relevant um z.B. im „customizing“ (bspw. „_ac_om_GetBasicPrices“) verwendet werden zu können oder um Verkaufs-Aktionen mit Bedingungen, die die Lieferanschrift betreffen, beachten zu können.
integer6.0.0
OutputIntoTrolleySurchInterf0 Nur beachtet, wenn „CalculatePrices > 0“ ! „1“ angeben, um den Gesamt-Warenkorbwert nach Steuersätzen aufget. in die Input-Schnittst. von om_GetTrolleySurcharges_Pu einzufügen (um diese anschl. mit „NULL“ für die “…Sum„-Parameter aufruf. zu können).
bit6.0.2
PaymentTypeIDNULL ID einer Zahlungsart, mit der voraussichtlich der Auftrag platziert wird - relevant für evtl. Reduzierungen von Artikelpreisen durch Verkaufs-Aktionen mit Bedingungen, die von der Zahlungsart abhängen
smallint6.5.1
ShippingTypeIDNULL ID einer Versandart, mit der voraussichtlich der Auftrag platziert wird - relevant für evtl. Reduzierungen von Artikelpreisen durch Verkaufs-Aktionen mit Bedingungen, die von der Versandart abhängen
tinyint6.5.1

Rückgabe

wenn GetPlainTrolley = 0 und IncludePredecessors = 0

Spaltenname Beschreibung SQL-Datentyp4) ab Version
HTreeNodeIDID eines Elementes aus „HistoryTreeView“ (in dieser ist die Historie des gesamten Artikelbaums abgebildet), das der Besucher „UniqueID“ in seinen Warenkorb gelegt hat (siehe Anmerkung in der Beschreibung !)
integer3.5.0
NodeIDZur „HTreeNodeID“ zugehörige ID des Artikel-Elementes (siehe Anmerkung in der Beschreibung !)
integer3.5.0
AssociatedOrChosenTreeNodeIDEnthält entweder die zur „HTreeNodeID“ korrespondierende („associated“) ID eines Elementes im Artikelbaum oder (falls diese „0“ ist) ein zur „NodeID“ (willkürlich) gewähltes („chosen“) Element (siehe Anmerkung in der Beschreibung !)
integer5.0.1
Active„Active“-Status des Elementes „AssociatedOrChosenTreeNodeID“
bit5.1.7
Deleted„Deleted“-Status des Elementes „AssociatedOrChosenTreeNodeID“
bit5.1.7
QuantityAnzahl des Artikels „NodeID“ (bzw. der „HTreeNodeID“), die der Besucher „UniqueID“ in seinen „Warenkorb gelegt“ hat
integer3.5.0
NodeDescriptionBezeichnung der „NodeID“ - falls „LookForProductDescriptions = 1“ übergeben wurde, hier auch evtl. die Eigenschaft zum Merkmal „Produktbezeichnung“. Immer '', wenn „ShowDescriptions = 0“ !
varchar(1000)3.5.0
UnitNettoPriceNetto-Preis von „NodeID“, wenn man den Artikel EINMAL bestellt (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.0
UnitNetPriceNetto-Preis von „NodeID“, wenn man den Artikel EINMAL bestellt
money5.0.1
PreciseUnitNetPriceExakter (intern gespeicherter) Wert für „UnitNetPrice“
decimal(16,4)5.0.1
UnitBruttoPriceBrutto-Preis von „NodeID“, wenn man den Artikel EINMAL bestellt (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.0
UnitGrossPriceBrutto-Preis von „NodeID“, wenn man den Artikel EINMAL bestellt
money5.0.1
PreciseUnitGrossPriceExakter (intern gespeicherter) Wert für „UnitGrossPrice“
decimal(16,4)5.0.1
TotalNettoPriceNetto-Preis von „NodeID“, wenn man den Artikel „Quantity-Mal“ bestellt (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.0
TotalNetPriceNetto-Preis von „NodeID“, wenn man den Artikel „Quantity-Mal“ bestellt
money5.0.1
PreciseTotalNetPriceExakter (intern gespeicherter) Wert für „TotalNetPrice“
decimal(16,4)5.0.1
TotalBruttoPriceBrutto-Preis von „NodeID“, wenn man den Artikel „Quantity-Mal“ bestellt (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.0
TotalGrossPriceBrutto-Preis von „NodeID“, wenn man den Artikel „Quantity-Mal“ bestellt
money5.0.1
PreciseTotalGrossPriceExakter (intern gespeicherter) Wert für „TotalGrossPrice“
decimal(16,4)5.0.1
TaxesMultiplierMehrwertsteuer als „Multiplikator“. D.h. beträgt die Mehrwertsteuer z.B. „16 %“, steht hier der Wert „1.16“.
decimal(16,6)5.0.1
PriceNodeCharacteristicIDMerkmal-ID, die den Preis bestimmt hat (genauer : die Eigenschaft von „AssociatedTreeNodeID“ zu diesem Merkmal hat den Preis bestimmt)
smallint4.0.7
CurrencyIDID der Währung, in der die Preisangaben sind (es handelt sich i.d.R. um die zum durch „UniqueID“ angegebenen Besucher hinterlegte Währung)
tinyint5.0.1
CurrencySymbolSymbol der Währung „CurrencyID“
varchar(10)5.0.1
RelativeSurchargeRelativer Rabatt/Aufschlag in Prozent (der in den Preisen bereits enthalten ist !). Ein negativer Wert bedeutet einen Rabatt, sonst beinhaltet der Verkaufspreis einen Aufschlag. Falls KEINE „PersonID“ angegeben wurde, steht hier immer „0“ !
decimal(16,6)3.5.0
AbsoluteUnitNettoSurchargeAbsoluter Rabatt/Aufschlag, der in „UnitNetPrice“ bereits ENTHALTEN ist (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.0
AbsoluteUnitNetSurchargeAbsoluter Rabatt/Aufschlag, der in „UnitNetPrice“ bereits ENTHALTEN ist
money5.0.1
PreciseAbsUnitNetSurchargeExakter (intern gespeicherter) Wert für „AbsoluteUnitNetSurcharge“
decimal(16,4)5.0.1
AbsoluteUnitBruttoSurchargeAbsoluter Rabatt/Aufschlag, der in „UnitGrossPrice“ bereits ENTHALTEN ist (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.0
AbsoluteUnitGrossSurchargeAbsoluter Rabatt/Aufschlag, der in „UnitGrossPrice“ bereits ENTHALTEN ist
money5.0.1
PreciseAbsUnitGrossSurchargeExakter (intern gespeicherter) Wert für „AbsoluteUnitGrossSurcharge“
decimal(16,4)5.0.1
AbsoluteTotalNettoSurchargeAbsoluter Rabatt/Aufschlag, der im „TotalNetPrice“ bereits ENTHALTEN ist (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.0
AbsoluteTotalNetSurchargeAbsoluter Rabatt/Aufschlag, der im „TotalNetPrice“ bereits ENTHALTEN ist
money5.0.1
PreciseAbsTotalNetSurchargeExakter (intern gespeicherter) Wert für „AbsoluteTotalNetSurcharge“
decimal(16,4)5.0.1
AbsoluteTotalBruttoSurchargeAbsoluter Rabatt/Aufschlag, der im „TotalGrossPrice“ bereits ENTHALTEN ist (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.0
AbsoluteTotalGrossSurchargeAbsoluter Rabatt/Aufschlag, der im „TotalGrossPrice“ bereits ENTHALTEN ist
money5.0.1
PreciseAbsTotalGrossSurchargeExakter (intern gespeicherter) Wert für „AbsoluteTotalGrossSurcharge“
decimal(16,4)5.0.1
SurchargeTypeIDID einer Preis-Aufschlags/Rabatt-Art, die ermittelt und bei der Preis-Ermittlung angewandt wurde. Falls KEINE „PersonID“ angegeben wurde, steht hier immer „NULL“ !
smallint3.5.0
SurchargeValueDer Wert des Aufschlags bzw. Rabattes, der verwendet wurde. Ist die „SurchargeTypeID“ relativ definiert, entspricht dieser Wert dem in „RelativeSurcharge“, andernfalls dem Wert in „AbsoluteUnitNetSurcharge“ bzw. „AbsoluteUnitGrossSurcharge“
decimal(16,6)3.5.0
UnitSymbolNICHT MEHR VERWENDEN ! (Alternative : „CurrencySymbol“)
varchar(10)3.5.0
Removed“<> 0„, wenn „HTreeNodeID“ entfernt wurde:
* 1: Allg. Grund
* 2: Keine aktive „Campaign“ zur „BonusItemForItemSetID“
* 3: Bonus Art. erfüllt keine der Bedingungen
* 4: Zu viele Bonus Art. aus einem Set
* 5: Komb. von Bon-Art. unters. Sets nicht möglich
tinyint3.5.0
ItemPropertyEigenschaft des Artikel-Elementes „AssociatedOrChosenTreeNodeID“ zum Merkmal „NodeCharacteristicID“
varchar(1000)3.5.13
InputDateAndTimeZeitpunkt, zu dem der Besucher „UniqueID“ das Element „HTreeNodeID“ in den Warenkorb gelegt hat
datetime3.5.13
SurchargeReason„Grund“ für einen evtl. vorhandenen Rabatt (z.B. ein „Aktionsname“, der letztlich von der individuellen Rabatt-Ermittlung durch „_ac_om_GetSurcharges“ stammt). Immer „NULL“, wenn „CalculatePrices < 2“ ist !
varchar(100)5.5.0
SurchargeGeneratedByCampIDsListe von „CampaignID“s der Verkaufsaktionen, die zur Rabattierung der Position geführt haben
varchar(255)6.5.2
BonusItemForItemSetIDDie ID des „ItemSets“ aus welchem der Artikel stammt, falls es sich bei „HTreeNodeID“ um einen Bonus-Artikel handelt, sonst „NULL“
integer7.0.5
QuantityPerBundleItemSetIDListDurch ein “,„ getrennte Liste von Listen, deren Werte wiederum durch “&„ getrennt sind, und ein Wert die Form <Menge>x<BundleItemSetID> hat. Dies besagt jeweils, wieviel (<Menge>) von „Quantity“ der „HTreeNodeID“ zu der “<ItemSetID>„ des Bundles gehört.
varchar(255)7.0.6
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • InputDateAndTime (aufsteigend)

wenn GetPlainTrolley = 0 und IncludePredecessors = 1

Spaltenname Beschreibung SQL-Datentyp5) ab Version
HTreeNodeIDID eines Elementes aus „HistoryTreeView“ (in dieser ist die Historie des gesamten Artikelbaums abgebildet), das der Besucher „UniqueID“ in seinen Warenkorb gelegt hat (siehe Anmerkung in der Beschreibung !)
integer3.5.13
NodeIDZur „HTreeNodeID“ zugehörige ID des Artikel-Elementes (siehe Anmerkung in der Beschreibung !)
integer3.5.13
AssociatedOrChosenTreeNodeIDEnthält entweder die zur „HTreeNodeID“ korrespondierende („associated“) ID eines Elementes im Artikelbaum oder (falls diese „0“ ist) ein zur „NodeID“ (willkürlich) gewähltes („chosen“) Element (siehe Anmerkung in der Beschreibung !)
integer5.0.1
Active„Active“-Status des Elementes „AssociatedOrChosenTreeNodeID“
bit5.1.7
Deleted„Deleted“-Status des Elementes „AssociatedOrChosenTreeNodeID“
bit5.1.7
QuantityAnzahl des Artikels „NodeID“ (bzw. der „HTreeNodeID“), die der Besucher „UniqueID“ in seinen „Warenkorb gelegt“ hat
integer3.5.13
NodeDescriptionBezeichnung der „NodeID“ - falls „LookForProductDescriptions = 1“ übergeben wurde, hier auch evtl. die Eigenschaft zum Merkmal „Produktbezeichnung“. Immer '', wenn „ShowDescriptions = 0“ !
varchar(1000)3.5.13
UnitNettoPriceNetto-Preis von „NodeID“, wenn man den Artikel EINMAL bestellt (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.13
UnitNetPriceNetto-Preis von „NodeID“, wenn man den Artikel EINMAL bestellt
money5.0.1
PreciseUnitNetPriceExakter (intern gespeicherter) Wert für „UnitNetPrice“
decimal(16,4)5.0.1
UnitBruttoPriceBrutto-Preis von „NodeID“, wenn man den Artikel EINMAL bestellt (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.13
UnitGrossPriceBrutto-Preis von „NodeID“, wenn man den Artikel EINMAL bestellt
money5.0.1
PreciseUnitGrossPriceExakter (intern gespeicherter) Wert für „UnitGrossPrice“
decimal(16,4)5.0.1
TotalNettoPriceNetto-Preis von „NodeID“, wenn man den Artikel „Quantity-Mal“ bestellt (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.13
TotalNetPriceNetto-Preis von „NodeID“, wenn man den Artikel „Quantity-Mal“ bestellt
money5.0.1
PreciseTotalNetPriceExakter (intern gespeicherter) Wert für „TotalNetPrice“
decimal(16,4)5.0.1
TotalBruttoPriceBrutto-Preis von „NodeID“, wenn man den Artikel „Quantity-Mal“ bestellt (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.13
TotalGrossPriceBrutto-Preis von „NodeID“, wenn man den Artikel „Quantity-Mal“ bestellt
money5.0.1
PreciseTotalGrossPriceExakter (intern gespeicherter) Wert für „TotalGrossPrice“
decimal(16,4)5.0.1
PredecessorsLevelNoHierarchie des Vorgängers
tinyint3.5.13
TaxesMultiplierMehrwertsteuer als „Multiplikator“. D.h. beträgt die Mehrwertsteuer z.B. „16 %“, steht hier der Wert „1.16“.
decimal(16,6)5.0.1
PriceNodeCharacteristicIDID des Merkmals; die Eigenschaft von „NodeID“ zu diesem Merkmal hat den Preis („UnitNettoPrice“) bestimmt
smallint4.0.7
CurrencyIDID der Währung, in der die Preisangaben sind (es handelt sich i.d.R. um die zum durch „UniqueID“ angegebenen Besucher hinterlegte Währung)
tinyint5.0.1
CurrencySymbolSymbol der Währung „CurrencyID“
varchar(10)5.0.1
RelativeSurchargeRelativer Rabatt/Aufschlag in Prozent (der in den Preisen bereits enthalten ist !). Ein negativer Wert bedeutet einen Rabatt, sonst beinhaltet der Verkaufspreis einen Aufschlag. Falls KEINE „PersonID“ angegeben wurde, steht hier immer „0“ !
decimal(16,6)3.5.13
AbsoluteUnitNettoSurchargeAbsoluter Rabatt/Aufschlag, der in „UnitNetPrice“ bereits ENTHALTEN ist (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.13
AbsoluteUnitNetSurchargeAbsoluter Rabatt/Aufschlag, der in „UnitNetPrice“ bereits ENTHALTEN ist
money5.0.1
PreciseAbsUnitNetSurchargeExakter (intern gespeicherter) Wert für „AbsoluteUnitNetSurcharge“
decimal(16,4)5.0.1
AbsoluteUnitBruttoSurchargeAbsoluter Rabatt/Aufschlag, der in „UnitGrossPrice“ bereits ENTHALTEN ist (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.13
AbsoluteUnitGrossSurchargeAbsoluter Rabatt/Aufschlag, der in „UnitGrossPrice“ bereits ENTHALTEN ist
money5.0.1
PreciseAbsUnitGrossSurchargeExakter (intern gespeicherter) Wert für „AbsoluteUnitGrossSurcharge“
decimal(16,4)5.0.1
AbsoluteTotalNettoSurchargeAbsoluter Rabatt/Aufschlag, der im „TotalNetPrice“ bereits ENTHALTEN ist (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.13
AbsoluteTotalNetSurchargeAbsoluter Rabatt/Aufschlag, der im „TotalNetPrice“ bereits ENTHALTEN ist
money5.0.1
PreciseAbsTotalNetSurchargeExakter (intern gespeicherter) Wert für „AbsoluteTotalNetSurcharge“
decimal(16,4)5.0.1
AbsoluteTotalBruttoSurchargeAbsoluter Rabatt/Aufschlag, der im „TotalGrossPrice“ bereits ENTHALTEN ist (Englischer Spaltenname ist NICHT korrekt, NICHT mehr verwenden !)
money3.5.13
AbsoluteTotalGrossSurchargeAbsoluter Rabatt/Aufschlag, der im „TotalGrossPrice“ bereits ENTHALTEN ist
money5.0.1
PreciseAbsTotalGrossSurchargeExakter (intern gespeicherter) Wert für „AbsoluteTotalGrossSurcharge“
decimal(16,4)5.0.1
SurchargeTypeIDID einer Preis-Aufschlags/Rabatt-Art, die ermittelt und bei der Preis-Ermittlung angewandt wurde. Falls KEINE „PersonID“ angegeben wurde, steht hier immer „NULL“ !
smallint3.5.13
SurchargeValueDer Wert des Aufschlags bzw. Rabattes, der verwendet wurde. Ist die „SurchargeTypeID“ relativ definiert, entspricht dieser Wert dem in „RelativeSurcharge“, andernfalls dem Wert in „AbsoluteUnitNetSurcharge“ bzw. „AbsoluteUnitGrossSurcharge“
decimal(16,6)3.5.13
UnitSymbolNICHT MEHR VERWENDEN ! (Alternative : „CurrencySymbol“)
varchar(10)3.5.13
Removed“<> 0„, wenn „HTreeNodeID“ entfernt wurde:
* 1: Allg. Grund
* 2: Keine aktive „Campaign“ zur „BonusItemForItemSetID“
* 3: Bonus Art. erfüllt keine der Bedingungen
* 4: Zu viele Bonus Art. aus einem Set
* 5: Komb. von Bon-Art. unters. Sets nicht möglich
tinyint3.5.13
ItemPropertyEigenschaft des Artikel-Elementes „AssociatedOrChosenTreeNodeID“ zum Merkmal „NodeCharacteristicID“
varchar(1000)3.5.13
InputDateAndTimeZeitpunkt, zu dem der Besucher „UniqueID“ das Element „HTreeNodeID“ in den Warenkorb gelegt hat
datetime3.5.13
SurchargeReason„Grund“ für einen evtl. vorhandenen Rabatt (z.B. ein „Aktionsname“, der letztlich von der individuellen Rabatt-Ermittlung durch „_ac_om_GetSurcharges“ stammt). Immer „NULL“, wenn „CalculatePrices < 2“ ist !
varchar(100)5.5.0
SurchargeGeneratedByCampIDsListe von „CampaignID“s der Verkaufsaktionen, die zur Rabattierung der Position geführt haben
varchar(255)6.5.2
BonusItemForItemSetIDDie ID des „ItemSets“ aus welchem der Artikel stammt, falls es sich bei „HTreeNodeID“ um einen Bonus-Artikel handelt, sonst „NULL“
integer7.0.5
QuantityPerBundleItemSetIDListDurch ein “,„ getrennte Liste von Listen, deren Werte wiederum durch “&„ getrennt sind, und ein Wert die Form <Menge>x<BundleItemSetID> hat. Dies besagt jeweils, wieviel (<Menge>) von „Quantity“ der „HTreeNodeID“ zu der “<ItemSetID>„ des Bundles gehört.
varchar(255)7.0.6
PrePredecessorsTreeNodeIDID des Vor-Vorgänger-Elementes im Artikelbaum von „TreeNodeID“
integer3.5.13
PrePredecessorsDescriptionBezeichnung des Vor-Vorgängers
varchar(100)3.5.13
PrePredecessorsLevelNoHierarchie des Vor-Vorgängers
tinyint3.5.13
PredecessorsTreeNodeIDID des Vorgänger-Elementes im Artikelbaum von „TreeNodeID“
integer3.5.13
PredecessorsDescriptionBezeichnung des Vorgängers
varchar(100)3.5.13
TreeNodeIDNICHT MEHR VERWENDEN ! (Alternative : „AssociatedOrChosenTreeNodeID“)
integer3.5.13
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • InputDateAndTime (aufsteigend)

wenn GetPlainTrolley = 1

Spaltenname Beschreibung SQL-Datentyp6) ab Version
InputDateAndTimeZeitpunkt, zu dem der Besucher „UniqueID“ das Element „HTreeNodeID“ in den Warenkorb gelegt hat
datetime4.0.7
InputDateAndTime_char„InputDateAndTime“ als „String“ - in der Form „15.01.2001 22:16:55:120“
varchar(23)4.0.7
HTreeNodeIDID eines Elementes aus „HistoryTreeView“ (in dieser ist die Historie des gesamten Artikelbaums abgebildet), das der Besucher „UniqueID“ in seinen Warenkorb gelegt hat (s.a. Beschreibung !)
integer4.0.7
NodeIDZur „HTreeNodeID“ zugehörige ID des Artikel-Elementes (s.a. Beschreibung)
integer4.0.7
QuantityAnzahl des Artikels „NodeID“ (bzw. der „HTreeNodeID“), die der Besucher „UniqueID“ in seinen „Warenkorb gelegt“ hat
integer4.0.7
BonusItemForItemSetIDDie ID des „ItemSets“ aus welchem der Artikel stammt, falls es sich bei „HTreeNodeID“ um einen Bonus-Artikel handelt, sonst „NULL“
integer7.0.5
QuantityPerBundleItemSetIDListDurch ein “,„ getrennte Liste von Listen, deren Werte wiederum durch “&„ getrennt sind, und ein Wert die Form <Menge>x<BundleItemSetID> hat. Dies besagt jeweils, wieviel (<Menge>) von „Quantity“ der „HTreeNodeID“ zu der “<ItemSetID>„ des Bundles gehört.
varchar(255)7.0.6
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • InputDateAndTime (aufsteigend)

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 7)
-1204Fehlender oder falscher Eintrag in CampaignSettingsnur indirekt
-655Die VisitorID steht nicht mit der PersonID in Verbindungnur indirekt
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-599Lizenz ist ungültig oder abgelaufennur 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
-540Falsches Formatnur 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
-503Fehlerhafte Daten in einer Tabelle - genauere Fehlermeldung auf der Standardausgabenur indirekt
-502Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)nur indirekt
-500Falsche Parameterdirekt und indirekt
-333Ein benötigter Steuersatz ist nicht bekannt oder konnte nicht ermittelt werdennur indirekt
-312Fehlerhafte Daten im Warenkorb konnten nicht repariert werdennur indirekt
-311Fehlerhafte Daten im Warenkorb : Es sind mehrere „HTreeNodeID“s mit gleicher „NodeID“ vorhandennur indirekt
-310Der Besucher hat keine gültigen Artikel im Warenkorbnur indirekt
-286Der Benutzer hat nicht die Berechtigung(en), Eigenschaften zu diesem(n) Merkmal(en) zu lesen/ändernnur indirekt
-284Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu modifizierennur indirekt
-283Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu ermittelnnur indirekt
-221Es konnte kein rekursives Merkmal mit der Standardwährung als Einheit ermittelt werdennur indirekt
-220Es konnte keine Merkmal-ID für die Produktbezeichnung ermittelt werdennur indirekt
-120Der Benutzer hat keine Berechtigung für das (die) Element(e)nur indirekt
-110Das (die) Element(e) ist (sind) nicht vorhandennur 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-29„Start-/Finish-Procedure“-Logik eingebaut, s. Ticket #3670
7.0.6 2014-06-231. Neue Rückgabespalte „QuantityPerBundleItemSetIDList“
2. Aktualisierung der Doku zur Preisermittlung [wg. Bundle-Preis]
7.0.5 2014-05-26Neue Rückgabespalte „BonusItemForItemSetID“
7.0.4 2014-03-19Doku korrigiert - Datentyp der Spalte „Removed“ wurde von „bit“ auf „tinyint“ geändert
7.0.2 2013-08-29Doku-Hinweis bzgl. Parameter „PersonID“, der nun auch relevant für Verkaufsaktionen ist
7.0.1 2013-08-07Datentyp der Rückgabespalten „NodeDescription“ und „ItemNo“ hat sich erweitert ⇒ Auch Anpassung der Doku
6.5.4 2013-04-29Bugfix: „OutputIntoTrolleySurchInterf“ wurde fälschlicherweise auch beachtet, wenn „CalculatePrices = 0“ war.
6.5.2 2013-02-26Neue Spalte in der Rückgabemenge „SurchargeGeneratedByCampIDs“
6.5.1 2012-11-02Neue Parameter „PaymentTypeID“ und „ShippingTypeID“
6.5.0 2012-09-17Hinweis in der Doku auf den neuen „Settings“-Eintrag „CampaignSurchargesEnabled“ und die Auswirkung auf die Preis-
Ermittlung
6.0.2 2011-06-08Holger Wies : Neuer Parameter „OutputIntoTrolleySurchInterf“
6.0.0 2010-03-26Neuer Parameter „DeliveryPersonID“
5.5.0 2008-01-071. Parameter „CalculatePrices“ ist jetzt ein „tinyint“ ⇒ neue Möglichkeit
2. Neue Rückgabespalte „SurchargeReason“
3. Ausgabe an die Standard-Ausgabe [via „print“] im Fehler-Fall “-500„, die nähere Informationen über die Ursache enthält
5.1.7 2006-10-31Neue Rückgabespalten „Active“ und „Deleted“
5.0.1 2005-03-291. Interne Änderung des Aufrufs von „_om_GetTrolley“
2. Neuer „Settings“-Eintrag „AlwaysConsiderGraduatedPrices“
3. Konsequente Fehlerbehandlung
4. Neue Rückgabespalten
5.0.0 2004-12-21Nur Änderung der Doku : Erwähnung des neuen „Settings“-Eintrags „AlwaysConsiderSurcharges“
4.0.7 2004-01-161. Neue Rückgabespalte „PriceNodeCharacteristicID“
2. Neue Parameter „RepairEntriesWithSameNodeID“ und „GetPlainTrolley“
4.0.6 2003-11-141. Die intern verwendete Prozedur „_om_GetTrolley“ hat sich geändert, daher waren auch hier [kleine] Änderungen notwendig
2. Hinweis auf den neuen Settings-Eintrag „PriceInTrolleyIsValidForXSeconds“
3.5.14 2002-01-23
3.5.13 2001-12-06
3.5.5 2001-03-30
3.5.0 2000-11-23Erstmalig 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 GET  'http://<partner>-<project>.dstore.de/default/engine/om_GetTrolley_Pu?UniqueID=<value>'

Mit xmllint 8) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/om_GetTrolley_Pu?UniqueID=<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_GetTrolley_Pu',
		array(
			'UniqueID' => '<value>',
			// 'PersonID' => NULL,
			// 'CalculatePrices' => 1,
			// 'CheckAvailability' => 1,
			// 'ShowDescriptions' => 1,
			// 'PriceNodeCharacteristicID' => NULL,
			// 'NodeCharacteristicID' => NULL,
			// 'IncludePredecessors' => 0,
			// 'LookForProductDescription' => 1,
			// 'RepairEntriesWithSameNodeID' => 0,
			// 'GetPlainTrolley' => 0,
			// 'DeliveryPersonID' => NULL,
			// 'OutputIntoTrolleySurchInterf' => 0,
			// 'PaymentTypeID' => NULL,
			// 'ShippingTypeID' => NULL
		)
);
 
$service->execute($request);
 
			$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
			$ResultSet = $xml_result->getRowsAsArray();
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_GetTrolley_Pu">
			<Parameters>
				<Parameter Name="UniqueID"><!-- varchar value --></Parameter>
				<!-- <Parameter Name="PersonID">NULL</Parameter> -->
				<!-- <Parameter Name="CalculatePrices">1</Parameter> -->
				<!-- <Parameter Name="CheckAvailability">1</Parameter> -->
				<!-- <Parameter Name="ShowDescriptions">1</Parameter> -->
				<!-- <Parameter Name="PriceNodeCharacteristicID">NULL</Parameter> -->
				<!-- <Parameter Name="NodeCharacteristicID">NULL</Parameter> -->
				<!-- <Parameter Name="IncludePredecessors">0</Parameter> -->
				<!-- <Parameter Name="LookForProductDescription">1</Parameter> -->
				<!-- <Parameter Name="RepairEntriesWithSameNodeID">0</Parameter> -->
				<!-- <Parameter Name="GetPlainTrolley">0</Parameter> -->
				<!-- <Parameter Name="DeliveryPersonID">NULL</Parameter> -->
				<!-- <Parameter Name="OutputIntoTrolleySurchInterf">0</Parameter> -->
				<!-- <Parameter Name="PaymentTypeID">NULL</Parameter> -->
				<!-- <Parameter Name="ShippingTypeID">NULL</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
7)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
8)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/om_gettrolley_pu.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)