Erweiterte Position-Neuberechnung
Einleitung
Diese Aktion ermöglicht es, bei der Berechnung einer Position im Angebot, in der Bestellung oder im Warenkorb individuelle Konditionen in die Preisermittlung einfließen zu lassen.
Beispiel
Sie möchten, dass Kunden nur Artikel mit einer Mindestbestellmenge bestellen können. Sobald ein Kunde eine zu geringe Menge eingibt, wird diese auf die Mindestbestellmenge korrigiert und an der Position wird ein Hinweis angezeigt.
Wählen Sie bitte den Aktionstyp „Erweiterte Position-Neuberechnung“ aus.
Auslöser
In der Karte „Ausführung bei“ können Sie festlegen, wann die Aktion ausgelöst wird.
Wenn Sie „Ermittlung von Preisen“ (TriggeredBy = „priceCalculation“) aktivieren, wird die Aktion immer ausgeführt, wenn eine Änderung innerhalb der Entität zur Neuberechnung von Preisen führt. Welche Änderungen diese Neuberechnung veranlassen können, können Sie in der Hilfe unter <Bestellungen/Angebote > Bestellung/Angebot bearbeiten> einsehen.
Zudem können Sie es den Benutzern ermöglichen, die Aktion selbst auszulösen, indem Sie „Manuelle Ausführung“ (TriggeredBy = „manually“) aktivieren. Dann kann der Benutzer die Aktion im Kontext- oder Dreipunktemenü der übergeordneten Entität auswählen.
Auch aus dem Kontext- oder Dreipunktmenü einer Position kann die Aktion ausgelöst werden, indem Sie „Manuelle Ausführung bei Position“ (TriggeredBy = „manually“) aktivieren.
Sie können auch den Auslöser „Änderung Feldinhalt“ (TriggeredBy = „fieldChange“) aktivieren. Die Aktion wird dann ausgeführt, wenn Änderungen an den in der aufgeführten Tabelle hinterlegten Feldern festgestellt werden.
Die Aktion kann in diesen Entitäten ausgelöst werden:
- Angebot (offer)
- Bestellung (order)
- Warenkorb (shoppingCart)
Eingabeparameter
Neben den allgemeinen werden zusätzlich diese Daten übergeben:
Key | Datentyp | Value |
---|---|---|
PriceListId | int | die ID der Preisliste, die aktuell zugewiesen ist |
DiscountListId | int | die ID der Rabattliste, die aktuell zugewiesen ist |
CurrencyCode | string | die Währung, die aktuell zugewiesen ist |
CurrencyCodeExchangeRate | decimal | der aktuell verwendete Umrechnungsfaktor |
HasGrossPrices | bool | das Preiskennzeichen (brutto/netto) |
AccountId | string | die Kundennummer (KHKKontokorrent.Kto) |
DocumentDate | datetime | das Belegdatum |
UserAccountType | string | der Typ des angemeldeten Benutzers AccountType „crm“ (Benutzer) AccountType „reseller“ (Business-Login) |
UserAccountMail | string | die E-Mail-Adresse des angemeldeten Benutzers |
TaxClassId | short | die Besteuerungsart |
ShoppingCartType | string | der Typ des Warenkorbes (nur im Falle eines Warenkorbs – andernfalls ist der Parameter leer) |
Positions | Dictionary<string,object>[] | Position / Artikel |
Neben den allgemeinen Positionsdaten werden zusätzlich diese Daten übergeben:
Key | Datentyp | Value |
---|---|---|
LineType | string | der Positionstyp (wird nicht im Warenkorb unterstützt) |
Description1 | string | die Bezeichnung1 der Position |
Description2 | string | die Bezeichnung2 der Position |
LongText | string | der Langtext der Position |
DimensionText | string | der Dimensionstext der Position |
AccessoryText | string | der Zubehörtext der Position |
ExternalEntityReference | string | die Salesware-Referenz für die Position |
Custom | Dictionary<string, object> | die Custom-Felder, die für die Position definiert sind (s. Entity-Spezifische Eingabeparameter) |
Tipp
Das Kennzeichen, ob der Einzelpreis manuell verändert worden ist, kann genutzt werden, um Positionen mit einem individuellen Preis/Rabatt von der Neuberechnung auszuschließen.
Als Positionstyp erwartet die Aktion folgende Daten:
Key | Value |
---|---|
pageBreak | Seitenumbruch |
group | Start einer Gruppe |
item | Artikel-Position |
subTotal | Zwischensummen-Zeile (beendet die Gruppe) |
text | Textposition |
alternative | Alternativ-Artikel |
Ausgabeparameter
Es werden die allgemeinen Rückmeldungen erwartet, allerdings pro Position:
Key | Datentyp | Value |
---|---|---|
Positions | Dictionary<string,object>[] | die Positionsdaten |
Das sind die Ausgabeparameter der Position:
Key | Datentyp | Value |
---|---|---|
EntityKey | string | der Salesware-Key für diesen Datensatz |
UnitPrice | decimal | der Einzelpreis |
DiscountValue | decimal | der Rabattsatz (in Prozent) |
IsManualPrice | bool | das Kennzeichen, ob der Einzelpreis manuell verändert worden ist (EinzelpreisManuell) |
Quantity | decimal | die Menge |
QuantityUnit | string | die Mengeneinheit |
LineType | string | der Positionstyp (Werte siehe oben) |
Description1 | string | die Bezeichnung1 der Position |
Description2 | string | die Bezeichnung2 der Position |
LongText | string | der Langtext der Position |
DimensionText | string | der Dimensionstext der Position |
AccessoryText | string | der Zubehörtext der Position |
Wichtig
Anhand der übergebenen Mengeneinheit wird die Mengenart ermittelt. Dabei wird wie folgt priorisiert: Verpackungseinheit vor Verkaufseinheit vor Basismengeneinheit.
Sobald die Aktion also eine Änderung an den Positionskonditionen feststellt, kannst du diese an Salesware übermitteln.
Tipp
Das Kennzeichen, ob der Einzelpreis manuell verändert worden ist, kann genutzt werden, um Positionen von einer späteren Neuberechnung aufgrund einer Änderung an der Entität auszuschließen.
Beispiel
Der Benutzer ändert die Menge eines Artikels. Da der Artikel nur in 5er-Schritten bestellt werden kann, wird die Menge automatisch auf den nächsten Schritt angepasst.
0 Kommentare