Table of Contents

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.

Beispiele

  • 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.

Abgrenzung zu Position-Neuberechnung

Neben zusätzlichen Übergabe-Parametern liegt der wesentliche Unterschied in der Auswertung der Antwort. Mit der erweiterten Position-Neuberechnung ist es möglich:

  • die Menge zu ändern
  • die Mengeneinheit zu ändern (Bitte Hinweise beim Ausgabeparameter beachten)
  • Bezeichnungen zu ändern (wird nicht im Warenkorb unterstützt)
  • Artikeln zu entfernen
  • Artikel hinzuzufügen
  • (und daraus ergebend Tauschen von Artikeln)
  • Positionen zu sortieren (Die Positionen werden in er Reihenfolge in welcher sie von der Aktion übergeben werden übernommen)

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 <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 Paramater ü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 Parameter ü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 Datentyp
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

Positionen

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.

Beispiele

  • 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.