FAQ/Export/Preise, Verfügbarkeiten, Filterfunktionen
Aus ITscope GmbH - Wissensbasis
1 Wie verwende ich den Parameter "Zuordnungsqualität"?
Zugeordnete Bezugsquellen können intern mit unterschiedlicher Matchingqualität versehen sein (z.B. "manuell zugeordnet", "automatisch zugeordnet mit 70% Übereinstimmung"). Im MarketViewer sind nur "zweifelhafte Zuordnungen" mit einem gelben Ausrufezeichen markiert. Nach der Matchingqualität kann jedoch im Export stufenweise gefiltert werden, sodass die Matchings je nach Zuordnungsqualität nicht in Warenwirtschaft oder Online-Shop übernommen werden.
Die aktuell im Export verfügbaren Einschränkungen der Zuordnungsqualität sind unter Zuordnungsqualität zu finden.
2 Warum stimmt die Preiskalkulation im Export nicht mit dem MarketViewer überein?
1) Die Preise für den Export werden ausschließlich mit den im Datenprofil und/oder im Produktportfolio angegebenen Lieferanten kalkuliert. Die Preise im MarketViewer hingegeben mit den bei der Preiskalkulation eingestellten. Sind diese beiden Einstellungen unterschiedlich, können sich die Preise unterscheiden.
2) Der MarketViewer beherrscht nicht die neuesten Einschränkungen der Preisregeln nach einzelnen Kategorien. Es wird nur nach Priorität und Produkttyp (Set) ausgewählt, die Restriktionen bleiben unbeachtet. Dies wird sich im MarketViewer 2.1 ändern.
3) Realtimeupdates im MarketViewer können andere Preise hervorrufen als im Export. Denn die Preise für den Export ergeben sich aus den individuellen Preislisten oder den Standardpreislisten, da im Export kein Realtimeupdate möglich ist. Stellen Sie also sicher, daß Sie alle Preislisten eingelesen haben, die Sie für den Export benötigen (falls es keine Standardliste gibt, siehe Lieferanteneinstellungen)
3 Wie kann ich nur verfügbare Produkte exportieren?
Dies können Sie über die Filterfunktion eines Datenprofils einstellen. Folgender Filter wählt nur Produkt mit Statuscode = 1 (= auf Lager) für den Export aus:
its:marketData($suppliers)/cachedStatus = 1
Bei Verwendung der Preiskalkulation möchten Sie z.B. alle Produkte ausfiltern, deren EK nicht verfügbar ist. Dies würde dann so aussehen als Filter:
its:priceCalc($pcId, $suppliers)/status = 1
Wichtig:
Der Filterausdrucksdialog erfordert die Angabe exakt wie hier vermerkt, ohne "Xpath.eval" oder ähnliches. Sie können als Filter derzeit nur Xpath-Prädikate verwenden, kein Javascript (auch wenn die Verwendung des Editors anderes suggeriert).
Geben Sie pro Filtereintrag nur einen Filterausdruck ein. Wenn Sie mehrere Filter benötigen, erstellen Sie bitte mehrere Einträge.
4 Wie benutzt man ganz allgemein die Filterfunktion für den Export?
Filter können innerhalb eines Datenprofils angegeben werden, um Produkte aus dem Export auszuschließen. Ihr exportiertes Portfolio enthält dadurch dann weniger Produkte als ursprünglich eingestellt.
Beispiel: Nur verfügbare Produkte exportieren
Sie können natürlich noch viel mehr sinnvolle Filter anwenden als nur den nach der Verfügbarkeit. Wie Sie die Filter nennen, spielt keine Rolle, wichtig ist nur die korrekte Angabe der Filterbedingung.
Sie müssen dafür einen Ausdruck aus einem der exportierten Felder heranziehen und den Block, der mit Xpath.eval() ausgeführt wird, mit einer Bedingung versehen.
Wichtig ist hier, daß im allgemeinen der Filter nur funktioniert, wenn das Feld selbst auch mit exportiert wird (insbesondere bei allem, was mit Preisen zu tun hat).
Einige relevante Filter für Ihren Export:
Kalkulierter Preis > 0:
its:priceCalc($pcId, $suppliers)/calcPrice > 0.0
Bestand des Lieferanten der von der Preiskalkulation ermittelt wurde > 0:
its:priceCalc($pcId, $suppliers)/stock > 0
Anzahl Bezugsquellen > 0:
its:marketData($suppliers)/quellenanzahl > 0
Nur Produkte mit Kategorie:
its:categoryEntry($classId)/catId > 0
Nur Produkte eines bestimmten Lieferanten:
not(its:isEmpty(source[preisliste/id=$supplier]/dist_pid))
Keine "nicht kategorisiert"-Kategorie:
its:categoryEntry($classId)/catId != 110716
Keine FSK/USK18 oder indizierte Produkte:
technicalProperty[eigkonkret/eigabstrakt/id = 71640]/redWert < 18
Keine Microsoft EDU und MLK-Produkte:
not(its:matches('productName', '\bEDU\b') or its:matches('productName', '\bMLK\b') or its:matches('shortInfo', '\bEDU\b') or its:matches('shortInfo', '\bMLK\b') )
Keine Regierungslizenzen:
not( its:matches('productName', '\bGOV\b' or its:matches('shortInfo', '\bReg[\.]?\b')) or its:matches('its:bestContent($suppliers)/description/content','\bGovernment\b') or its:matches('its:bestContent($suppliers)/description/content','\bGOV\b') )
Keine Mediapacks (Software ohne Lizenz, nur CD/DVD):
not(technicalProperty[eigkonkret/eigabstrakt/id = 26003]/wert = 'SW_TYPE_MEDIA_PACK__')
5 Kann man sich auf die Verfügbarkeitsangaben verlassen? Wie häufig werden die aktualisiert?
Verfügbarkeiten werden auf unseren Servern alle 20 Minuten aktualisiert. Meistens ist das Preisdatum älter als die Statusaktualisierung. Sie können also davon ausgehen, daß Preislisten, die nicht das outOfDate-Flag gesetzt haben, immer vollständig aktuell gehalten sind, soweit dies die Systeme des Lieferanten zulassen. Die Aktualisierungsfrequenz ist im allgemeinen jedem lokalen selbst aufgebauten System überlegen.
6 Was bedeuten die Statuscodes von 1 bis 8 für Produkte?
Siehe Lieferstatus.
7 Wie kann ich statt den Statuscodes Texte wie "auf Lager" exportieren?
Schreiben Sie eine Mail mit dieser Bitte an unseren Support. Wir stellen das dann bei Ihrem Profil ein.
Alternativ können Sie ein eigenes Skript für ein Feld verfassen, das ungefähr so aussehen kann:
var status = Xpath.eval("its:marketData($suppliers)/cachedStatus"); if (status = 1) { "auf Lager"; } else if (status = 2) { usw.
8 Warum fehlen genaue Lagerbestände, obwohl ein Produkt als "auf Lager" markiert ist (Statuscode = 1)?
Nicht alle Lieferanten liefern in ihrer Preisliste Lagerbestände mit, sondern nur Statusangaben wie "auf Lager", "bestellt". Diese Statuscodes werden dann in unsere Codes von 1-8 umgesetzt, jedoch dann mit dem Lagerbestand 0 versehen. Sie sollten also Verfügbarkeitsfilter nur auf Basis der Statuscodes und nicht auf Basis der Lagerbestände erstellen. Wenn Sie dennoch für jedes verfügbare Produkt auch einen positiven Lagerbestand benötigen, können Sie das Lagerbestandsfeld im Export beispielsweise wie folgt abändern:
var stock = Xpath.eval("its:priceCalc($pcId, $suppliers)/stock"); var status = Xpath.eval("its:priceCalc($pcId, $suppliers)/status"); if (status == 1) { if (stock == 0) { "10"; } else { stock; } } else { stock; }
Dieses Skript gibt für Statuscode = 1 und Lagerbestand = 0 als Lagermenge = 10 zurück.
9 Wie kann ich in einem Export mehrere Preisregeln z.B. für unterschiedliche Warengruppen anwenden?
Achtung: Diese Vorgehensweise wird für den MarketViewer 2.1 überarbeitet
Dazu lassen Sie den Parameter "Preiskalkulation" im Datenprofil leer und erstellen mehrere Preisregeln mit unterschiedlichen Prioritäten. Für jedes Produkt wird zur Berechnung des Preises dann automatisch eine Preisregel ausgewählt. Die Preisregeln werden nach Prioritätswert absteigend sortiert und ausgewählt.
Beispiel: "Fallback-Regel" für alle Produkt, Priorität 1: Angewandt auf alle Produkttypen Regel nur für TFT-Monitore, Priorität 2: Angewandt nur auf TFTs mit anderen Margeneinstellungen.
Soll nun der Preis für einen TFT kalkuliert werden, wählt die Autokalkulation zuerst die Regel mit Priorität 2 aus.
Tipp: Bei unübersichtlicher Regelverteilung können Sie sich die jeweils angewandte Regel für jedes Produkt mit dem Feld priceCalc1PriceRuleName mit exportieren lassen.
10 Wie erhalte ich sinnvoll gerundete VK-Preise aus der Kalkulation?
Nutzen Sie die Rundungsfunktion der MarketViewer-Preiskalkulation. Sie finden die Einstellungsmöglichkeiten auf der letzten Seite des Preiskalkulations-Assistenten. Die Toleranz gibt an, auf welchen Betrag der kalkulierte Wert auf/abgerundet werden soll.
Beispiel der Rundungsfunktion: Toleranz 0,5: Rundet auf 50 cent, d.h. 156,42 wird auf 156,50 gerundet, 156,79 auf 157,00 usw. Dadurch lassen sich dann Preise erstellen, die auf 49 oder 99 Cent enden:
Ausdruck der Preiskalkulationspalte ändern auf
Xpath.eval("its:priceCalc($pcId, $suppliers)/calcPrice") - 0.01
Damit werden dann Preise wie 156,49 oder 156,99 möglich. Sie können bei der Spaltendefinition natürlich jedes beliebige eigene Berechnungsschema angeben (in Javascript).
Einschränkung: Wenn Sie Preise ohne Mehrwertsteuer kalkulieren, müssen Sie dies in einem eigenen Rundungsalgorithmus berücksichtigen, dann funktioniert die eingebaut ITscope-Rundung nicht mehr. Beispiel ist z.B. xt:commerce, für das netto exportiert wird.
11 Wie bestimme ich, welche Lieferanten zur Preiskalkulation herangezogen werden?
Mit dem Datenprofil-Parameter "Lieferanten" oder alternativ über "Portfolio-Lieferanten übernehmen". Wichtig: Die in der Preiskalkulation selbst eingestellte Lieferantenauswahl gilt nur lokal für die Anzeige im MarketViewer, aber NICHT für den Export.
12 Wie lassen sich Preise und Verfügbarkeiten für den Export bestimmen?
Einstellungen zu Preisen und Verfügbarkeiten werden nicht im Produktportfolio, sondern im Datenprofil selbst vorgenommen. Relevante Parameter dafür sind Lieferanten (suppliers), Mindestverfügbarkeit (minAvail) und "Portfolio-Lieferanten übernehmen" (siehe letzten FAQ-Eintrag). Grundsätzlich werden immer nur die im Parameter "Lieferanten" eingestellten Bezugsquellen berücksichtigt, um Abpreise zu bestimmen oder Preise zu kalkulieren.
Es gibt dafür 4 Möglichkeiten (die entsprechenden Namen der vordefinierten Felder sind fett markiert):
Innerhalb der Produktliste zu jedem Produkt:
1) globale Aggregationen, minPrice = niedrigster HEK, avgPrice = Durchschnitts-HEK usw., berücksichtigen alle Lieferanten, die im Profil angegeben werden
2) Mindestverfügbarkeit: minPriceAvailable = niedrigster HEK, der mindestens die geforderte Verfügbarkeit aufweist (kann als Parameter "minAvail" eingestellt werden bei fast allen Profilen)
3) Preiskalkulation: priceCalc1: Preis wird über im MarketViewer erstellte Preisregeln gebildet, die eigene Einstellungen zur Auswahl des Basispreises enthalten (Parameter Mindestverfügbarkeit spielt hier keine Rolle). Die Preiskalkulation wird über den entsprechenden Parameter im Datenprofil gesetzt.
In einer gesonderten Liste (1:n Beziehung):
4) Komplettes Matching: exportiert alle Einkaufspreise für ein Produkt. Dazu muß unter Datensatz modellieren links ein neues Exportobjekt vom Typ "Preislisteneintrag" angelegt werden und das Feld hek ausgewählt werden als Bestandteil. Ein Beispiel dafür enthält die Profilvorlage "CSV Multifile". Es werden auch hier nur die Lieferanten exportiert, die im Profil unter "Lieferanten" eingestellt sind (bzw. mit denen das Portfolio erstellt wurden, sofern "Portfolio-Lieferanten übernehmen" aktiviert ist).
Zu jedem der 4 möglichen Preise gehören auch die Rahmendaten, z.B. die Verfügbarkeit und Lagerbestand des Preises, der Lieferant, die Artikelnummer etc.
1) bei minPrice sind dies minPriceStatus, minPriceStock, minPriceSupplierId etc
2) bei minPriceAvailable entsprechend minPriceAvailableStatus etc.
3) bei priceCalc1 entsprechend priceCalc1Status etc.
4) Beim Matching können die entsprechenden Felder aus der Preisliste ausgewählt werden: inventory, statusCode, supplierId etc.
13 Wie exportiere ich für jedes Produkt alle Preise meiner Lieferanten (Artikel-Lieferanten-Stamm)?
Siehe Möglichkeit 4 im vorherigen FAQ-Eintrag. Die entsprechenden Artikelnummern der Lieferanten können dabei auch mit exportiert werden. Dies ist das sogenannte "Matching", das es erlaubt, alle Zuordnungsstrukturen in anderen Systemen nachzubilden.
14 Wie bekomme ich meine eigenen Preise von Ingram Micro, Actebis Peacock etc. in den Export?
Sollten Sie sich wundern, daß für viele Distributoren als Preis = 0 exportiert wird: Das liegt daran, daß Sie für einige Lieferanten zuerst Ihre eigene Preisliste einlesen lassen müssen. Nur so können im Export auch Ihre HEKs berücksichtigt werden. Hilfe zum Anlegen der dafür nötigen Konten im MarketViewer.
Einige wenige Lieferanten haben kundenindividuelle Preise, jedoch ist es im MarketViewer nicht möglich, die entsprechende Liste einzulesen. Sie können zwar per Realtimeupdate Ihre Preise im MV sehen, aber im Export erhalten Sie nur die Standardpreise.