WS-DataFlowManager (DE)

WS-DataFlowManager (DE)

 

Produktdatenexport

Aktivierung und Name des Templates

Der Export von Produktdaten unter Benutzung eines Templates wird aktiviert, in dem die zugehörige Template-Datei in das Ausgabeverzeichnis der Exportdatei kopiert wird. Der Name dieser Datei ist fest vorgegeben und lautet "export-template.txt".

Sobald auf dem export-template.txt Umlaute als Spaltenüberschriften oder bei den fixen Ausgabefeldern verwendet werden, muss die Codierung des Templates Unicode oder Ansii sein.

In diesem Verzeichnis wird weiterhin auch eine Datei mit Namen "lastexport.ini" angelegt. Diese Datei enthält den Zeitstempel und eine laufende Nummer des letzten Exports. Diese Daten werden für eine eventuelle Bildübertragung benötigt, sowie zur Bildung einer Versionsnummer für die Datei, die für manche Dateiformate benötigt wird.

Unterstützte Tags

"EXP-" Tags

Tags mit dem Präfix “EXP-“ beziehen sich auf shopweit gültige Daten, die nicht in der shop.config oder anderen „normalen“ Konfigurationsdateien enthalten sind.

Tag

Beschreibung

Tag

Beschreibung

~EXP-ShopId~

Die ID des Shops

~EXP-SubshopId~

Die ID des SubShops

~EXP-Counter~

Ein Zähler, der bei jedem Export hochgesetzt wird.

"WSINI-" Tags

Tags mit dem Präfix “WSINI-“ dienen dazu Parameter aus der shop.config in die Exportdatei einzufügen. Die Tags werden nach dem Schema ~WSINI-(Sektion,Parameter)~ gebildet.

Beispiel:
~WSINI-(Currency-Txt,Name)~ fügt die Währung des Subshops ein.

"PR-" Tags

Tags mit Präfix „PR-“ werden dazu verwendet (unveränderte) Produktdaten einzufügen.

Allgemein werden Tags aus dem Präfix + den technischen Feldnamen gebildet, es können damit beliebige Standard-Felder und freie Felder eingefügt werden (sofern das Format, in denen die Daten intern gespeichert werden, für den Export geeignet ist).

Beispiel:
~PR-Descr~ fügt die Produktbeschreibung ein

Für PR-Tags, die aus technischen Feldnamen gebildet werden, können zusätzliche Optionen angeben werden. Damit kann der Feldinhalt vor der Ausgabe noch mal modifiziert werden. Dabei werden die einzelnen Anweisungen als Attribute dem Tag mitgegeben. Die Optionen können auch bei den Bereich-Tags genutzt werden.

Folgende Optionen sind möglich:

Attribut

Beschreibung

Beispiel

Attribut

Beschreibung

Beispiel

maxlength

Der Content wird auf die angegebene Maximallänge gekürzt, sofern der Inhalt länger ist.

Kürzen der Beschreibung auf maximal 100 Zeichen:

~PR-Descr(maxlength:100)~
oder
~PR-Descr(100)~

search / replace

Im Content werden alle Zeichenketten, die mit “search” übereinstimmen, durch den in “replace” angegebenen Inhalt ersetzt. Die gefundenen Stellen werden aus dem Content entfernt, wenn “replace” leer ist / nicht angegeben wurde.

Wichtig: Auch Leerzeichen werden berücksichtigt!

Zum Ersetzen von Kommas muss %%comma%% anstelle des Zeichens als Platzhalter angegeben werden.

Ersetze alle Stellen in der Beschreibung, in denen “netto” steht durch “brutto”:

~PR-Descr(search:netto,replace:brutto)~

Entferne aus der Beschreibung das Wort “Hallo”:

~PR-Descr(search:hallo,replace:)~

trimend

Entfernt alle angegebenen Zeichen am Ende des Contents.

Wichtig: Auch Leerzeichen werden berücksichtigt!

Kürze bei der Beschreibung das Ende um sämtliche '\', ' ' und '$'

~PR-Descr(trimend:\ $)~

toupper

Gibt den gesamten Content in Großbuchstaben aus.

~PR-Descr(toupper)~

tolower

Gibt den gesamten Content in Kleinbuchstaben aus.

~PR-Descr(tolower)~

compare

Vergleicht den gesamten Content mit dem angegebenen Text.

{PR-New(compare:yes)}1{/PR-New(compare:yes)}

Es können auch mehrere Attribute kombiniert werden. Dafür muss zwischen den Attributen ein Komma stehen.

Beispiel:
~PR-Descr(maxlength:100,trimend:\ ,toupper)~

Neben den aus technischen Feldnamen gebildeten PR-Tags gibt es noch folgende Spezial-Tags:

Tag

Beschreibung

Tag

Beschreibung

{@PR-Articles}

Schleife über alle Produktdaten

{@PR-SearchItems}

Schleife für die Suchbegriffe. Zur Ermittlung der einzelnen Begriffe wird das Feld searchitems in einzelne Wörter aufgespalten. Als Trennzeichen gelten hier alle Zeichen, die keine Buchstaben oder Ziffern sind.

{PR-DepVariations}

Klammerung die angezeigt wird, wenn die Option „Abhängige Variationen (als eigenständige Produkte) exportieren“ aktiviert ist und ein Produkt abhängige Varianten hat.

{@PR-DepVariations}

Schleife für Namen und Werte der abhängigen Variationen. Innerhalb der Schleife können die Tags ~PR-DepVariationName~, ~PR-DepVariationValue~, ~PR-DepVariationIdx~ und {last} verwendet werden

Die gesamte Schleife sollte zusätzlich mit {PR-DepVariations}...{/PR-DepVariations} geklammert werden, da die Schleifen-Tags nicht ersetzt werden, wenn ein Produkt keine Varianten hat.

Diese Schleife ist nur sinnvoll, wenn die Option „Abhängige Variationen (als eigenständige Produkte) exportieren“ aktiviert ist.

{PR-DepVarProducts}

Klammerung wird eingeblendet, wenn die Schleife {@PR-DepVarProducts} Einträge enthält, d.h. ein Produkt abhängige Variationen hat und die Option „Abhängige Variationen (als eigenständige Produkte) exportieren“ nicht aktiviert ist.

{@PR-DepVarProducts}

In dieser Schleife können die Produktdaten von abhängigen Variationen eingefügt werden.

Beispiel:

{@PR-DepVarProducts} <Name>~PR-Name~</Name> {/@PR-DepVarProducts}

Innerhalb der Schleife können alle „einfachen“ Produktdaten-Tags verwendet werden, d. h. keine Tags die Konvertierungen erfordern, Schleifen benötigen, usw.

Die Schleife kann mehrfach eingefügt werden, wenn z. B. erst eine Liste mit Produktnummern erzeugt werden soll und dann eine Liste der Produktnamen.

Diese Schleife ist nur sinnvoll wenn die Option „Abhängige Variationen (als eigenständige Produkte) exportieren“ nicht aktiviert ist.

{PR-DistinctDepVarField}

Klammerung wird eingeblendet, wenn die Schleife {@PR-DistinctDepVarField} Einträge enthält, d. h. ein Produkt abhängige Variationen hat und die Option „Abhängige Variationen (als eigenständige Produkte) exportieren“ nicht aktiviert ist.

{@PR-DistinctDepVarField(...)}

Diese Schleife erlaubt es die unterschiedlichen Werte für ein einzelnes Produkt-Attribut auszugeben, dessen Name als Parameter angegeben werden muss.

Beispiel:
Ein Produkt hat drei abhängige Varianten, bei denen das freie Feld „Farbe“ gefüllt ist. Bei zwei Varianten hat dieses Feld den Wert „rot“, bei einem den Wert „grün“.

Die Schleife

{@PR-DistinctDepVarField(Farbe)} ~PR-Farbe~ {/@PR-DistinctDepVarField(Farbe)}

würde nun durch die Werte
rot
grün
ersetzt.

Diese Schleife ist nur sinnvoll wenn die Option „Abhängige Variationen (als eigenständige Produkte) exportieren“ nicht aktiviert ist.

{PR-DepVarNames}

Klammerung die eingeblendet wird, wenn die Schleife {@PR-DepVarNames} Einträge enthalten würde, d.h. ein Produkt abhängige Variationen hat und die Option „Abhängige Variationen (als eigenständige Produkte) exportieren“ nicht aktiviert ist.

{@PR-DepVarNames}/
{@PR-DepVarValues}

Diese beiden Schleifen sind dafür gedacht die Namen und Werte der abhängigen Variationen für ein Produkt einzufügen.
Innerhalb der Schleife können die Tags ~PR-DepVariationName~ (Name der Variation) und ~PR-DepVariationValue~ (Wert der Variation) verwendet werden.

Diese Schleifen können nur verwendet werden, wenn die Option „Abhängige Variationen (als eigenständige Produkte) exportieren“ nicht aktiviert ist.

Beispiel:

{@PR-DepVarNames} ~PR-DepVariationName~ {@PR-DepVarValues} ~PR-DepVariationValue~ {/@PR-DepVarValues} {/@PR-DepVarNames}

Ergebnis für ein Produkt mit den Varianten „Farbe und Größe“ mit den Werten „rot“ und „grün“ bzw. „L“ und „XL“:
Farbe
rot
grün
Größe
L
XL

{PR-DepVarField}

Klammerung für {@PR-DepVarField(...)} Schleifen

{@PR-DepVarField(...)}

Schleife mit der sich Varianten-Werte verschachtelt einfügen lassen.

Diese Schleife kann nur verwendet werden, wenn die Option „Abhängige Variationen (als eigenständige Produkte) exportieren“ nicht aktiviert ist.

Beispiel:

{PR-DepVarField} {@PR-DepVarField(Farbe)} ~PR-DepVariationValue(Farbe)~ {@PR-DepVarField(Größe)} ~PR-DepVariationValue(Größe)~ price: ~PR-Price~ {/@PR-DepVarField(Größe)} {/@PR-DepVarField(Farbe)} {/PR-DepVarField}

Ergebnis für ein Produkt mit den Varianten „Farbe und Größe“ mit den Werten „rot“ und „grün“ bzw. „L“ und „XL“:
rot
L
price: 10,000
XL
price: 15,000
grün
L
price: 10,000
XL
price: 15,000

{LastDepVarField}

Klammerung, die eingeblendet wird, wenn in der Schleife {@PR-DepVarField} der letzte Eintrag der aktuellen Varianten-Wert-Liste erreicht wurde.

{PR-DepVarAttribute1...N}
~PR-DepVarAttribute1...N~

Klammerung ob das Produkt das N-te Attribut besitzt.
Die Klammerung kann verschachtelt werden.

Wichtig: Die äußerste Klammerung muss immer {PR-DepVarAttribute1} sein. Innerhalb des Bereichs kann der Attributname durch das Einzel-Tag ausgegeben werden.

Beispiel:

// Verarbeitung wenn Produkt mind. 1 Attribut besitzt {PR-DepVarAttribute1} // Schleife über alle Werte des ersten Attributs {@PR-DepVarValues1} // Ausgabe des zweiten Attributs bei mind. 2 Attribute {PR-DepVarAttribute2} // Schleife über alle Werte des zweiten Attributs {@PR-DepVarValues2} ~PR-DepVarAttribute1~: ~PR-DepVarValue1~ / ~PR-DepVarAttribute2~: ~PR-DepVarValue2~ / Preis: ~PR-Price~ {/@PR-DepVarValues2} {/PR-DepVarAttribute2} // Alternative Ausgabe, wenn Produkt nur ein Attribut besitzt {!PR-DepVarAttribute2} ~PR-DepVarAttribute1~: ~PR-DepVarValue1~ / Preis: ~PR-Price~ {/!PR-DepVarAttribute2} {/@PR-DepVarValues1} {/PR-DepVarAttribute1}

Ergebnis für ein Produkt mit den Varianten „Farbe und Größe“ mit den Werten „rot“ und „grün“ bzw. „L“ und „XL“:
Farbe: rot / Größe: L / Preis: 10,000
Farbe: rot / Größe: XL / Preis: 11,000
Farbe: grün / Größe: L / Preis: 10,000
Farbe: grün / Größe: XL / Preis: 11,000

Ergebnis für ein Produkt mit der Variante „Farbe“ mit den Werten „rot“, „grün“ und „blau“:
Farbe: rot / Preis: 10,000
Farbe: grün / Preis: 10,000
Farbe: blau / Preis: 10,000

Diese Klammerung kann nur verwendet werden, wenn die Option „Abhängige Variationen (als eigenständige Produkte) exportieren“ nicht aktiviert ist.

{@PR-DepVarValues1...N}

Schleife über alle aktiven Werte des N-ten Attributs.

Wird über die Werte des letzten Attributs durchgegangen; damit können die Variantendaten ausgegeben werden.

Die Schleife kann nur innerhalb von {PR-DepVarAttribute1...N} verwendet werden.

{LastDepVarValue}
{!LastDepVarValue}

Prüfung, ob der letzte Wert innerhalb von {@PR-DepVarValues1...N} erreicht wurde

~PR-DepVarValue1…N~

Ausgabe des Werts vom N-ten Attributs.

Muss innerhalb von {@PR-DepVarValues1...N} verwendet werden

{@PR-C-Links}
{@PR-C-Links2}
{@PR-C-Links3}
{@PR-C-Links4}
{@PR-C-Links5}

Schleife für Cross-Links (Zubehörprodukte/XLinks).
Innerhalb der Schleife können die Tags ~PR-Number~, ~PR-ProdIndex~ und {last} verwendet werden.

 

{@PR-CS-Links}

Schleife für CrossSelling-Links.
Innerhalb der Schleife können die Tags ~PR-Number~, ~PR-ProdIndex~ und {last} verwendet werden.

{@PR-BulkPrices}

Die Schleife mit den Staffelpreisen. Innerhalb der Schleife können die Tags ~PR-BulkAmount~, ~PR-BulkPrice~, ~PR-BulkPriceNet~, ~PR-BulkPriceGross~ und {last} verwendet werden

~PR-SearchItem~

Suchbegriff innerhalb der {@PR-SearchItems} Schleife

~PR-BulkAmount~

Menge innerhalb der {@PR-BulkPrices} Schleife

~PR-BulkPrice~

Preis innerhalb der {@PR-BulkPrices} Schleife

~PR-BulkPriceNet~

Der aus ~PR-BulkPrice~ berechnete Netto-Preis innerhalb der {@PR-BulkPrices} Schleife

~PR-BulkPriceGross~

Der aus ~PR-BulkPrice~ berechnete Brutto-Preis innerhalb der {@PR-BulkPrices} Schleife

~PR-PriceNet~

Der aus ~PR-Price~ berechnete Netto-Preis

~PR-PriceGross~

Der aus ~PR-Price~ berechnete Brutto-Preis

~PR-PriceWithBasketDiscounts~

Ermittelt den Preis inklusive Rabatt aus der discount.dat und den OrderDiscount-Daten aus der shop.config. Bei Discounts vom Typ 1 (Menge) wird implizit die Menge 1 verwendet.

~PR-DepVariationName~

Variationsnamen innerhalb der {@PR-DepVariations} Schleife

~PR-DepVariationValue~

Variationswert innerhalb der {@PR-DepVariations} Schleife

~PR-DepVariationIdx~

Fortlaufende Nummer der Variation innerhalb der {@PR-DepVariations} Schleife

~PR-DeliveryText~

Der Lieferstatustext, ermittelt aus dem Bestand zum Zeitpunkt des Exports

~PR-DeepLink~

Der Link zum Aufruf des Produkts

~PR-DeepLinkPath~

Der Pfad-Teil des Links zum Aufruf des Produkts

~ENCXML-PR-DeepLink~

Der Link zum Aufruf des Produkts (XML-kodiert)

{PR-CanonicalDeepLink}

Prüft, ob ein Canonical Link für das Produkt hinterlegt ist

~PR-CanonicalDeepLink~

Ausgabe des Canonical Links des Produktes (falls vorhanden)

~ENCXML-PR-CanonicalDeepLink~

XML-codierte Ausgabe des Canonical Links des Produktes (falls vorhanden)

{@PR-Articles} <url>~n~ <loc> {PR-CanonicalDeepLink} ~ENCXML-PR-CanonicalDeepLink~ {/PR-CanonicalDeepLink} {!PR-CanonicalDeepLink} ~ENCXML-PR-DeepLink~ {/!PR-CanonicalDeepLink} </loc>~n~ <lastmod> ~PR-LastModDate~ </lastmod>~n~ </url>~n~ {/@PR-Articles}

{PR-IsCanonicalDeepLink}

Prüft, ob Produktlink und Canonical Link des Produktes übereinstimmen (nur bei multiplen Export von Produkten nötig)

~PR-LastModDate~

Datum der letzten Änderung an dem Produkt

{PR-NamedImageURL(FELDNAME)}

Prüft, ob benamte Bild-URLs für das angegebene Feld aktiv ist

~PR-NamedImageURL(FELDNAME)~

Ausgabe der benamten Bild-URL für das angegebene Feld (nur innerhalb von {PR-NamedImageURL(FELDNAME)} nutzbar)

{PR-NamedImageURL(Image)} <image:image>~n~ <image:loc> https://doma.in/path/to/file/~PR-NamedImageURL(Image)~ </image:loc>~n~ </image:image>~n~ {/PR-NamedImageURL(Image)}

~PR-Amount~

Der Lagerbestand

~PR-ParentNumber~

Produktnummer des Stammartikels
(nur bei abhängigen Varianten)

~PR-DeliveryCosts~

Die Lieferkosten für das Produkt anhand der im OSB-Dienst konfigurierten Voreinstellungen / Liefergruppen

~PR-DeliveryCostsGoogleShopping~

Die Lieferkosten für Google Shopping

~PR-RatingVotes~

Anzahl Userbewertungen

~PR-RatingScore~

Durchschnittsbewertung (zwischen 1 und 10)

~PR-RatingScore(min, max)~

Durchschnittsbewertung (zwischen min und max).
Es kann nur entweder dieses Tag oder ~PR-RatingScore~ verwendet werden.

{@PR-RatingVotes}

Schleife über alle Einzelbewertungen zu dem Produkt

~PR-RatingText~

Verfasster Bewertungstext
Nur verwendbar innerhalb von {@PR-RatingVotes}

{PR-RatingText}
{!PR-RatingText}

Prüfung ob ein Text bei der Einzelbewertung verfasst wurde.
Nur verwendbar innerhalb von {@PR-RatingVotes}

~PR-RatingSubject~

Verfasster Bewertungsbetreff
Nur verwendbar innerhalb von {@PR-RatingVotes}

{PR-RatingSubject}
{!PR-RatingSubject}

Prüfung ob ein Betreff bei der Einzelbewertung verfasst wurde.
Nur verwendbar innerhalb von {@PR-RatingVotes}

~PR-RatingEmail~

E-Mail-Adresse des Bewerters
Nur verwendbar innerhalb von {@PR-RatingVotes}

{PR-RatingEmail}
{!PR-RatingEmail}

Prüfung ob eine E-Mail Adresse bei der Bewertung hinterlegt wurde.
Nur verwendbar innerhalb von {@PR-RatingVotes}

~PR-RatingNickname~

Hinterlegter Nickname zur Bewertung
Nur verwendbar innerhalb von {@PR-RatingVotes}

{PR-RatingNickname}
{!PR-RatingNickname}

Prüfung ob ein Nickname bei der Bewertung hinterlegt wurde.
Nur verwendbar innerhalb von {@PR-RatingVotes}

~PR-RatingVote~

Einzelbewertung
Nur verwendbar innerhalb von {@PR-RatingVotes}

~PR-RatingID~

Bewertungs-ID
Nur verwendbar innerhalb von {@PR-RatingVotes}

~PR-RatingTimestamp~

Zeitpunkt der Bewertung. Format: YYYY-mm-DD HH:MM:SS
Nur verwendbar innerhalb von {@PR-RatingVotes}

{PR-Inventory}

Bereich wird angezeigt, wenn für ein Produkt die Lagerbestandsverwaltung aktiviert wurde.

{PR-InventoryState(state)}

Lagerbestands-Status

Mögliche Werte:
- green
- yellow
- red (=red-soft oder red-hard)
- red-soft
- red-hard

Es können mehrere Werte kommasepariert angegeben werden. (Siehe Shopdokumentation: PR-InventoryState)

Sollte nur innerhalb von {PR-Inventory} verwendet werden.

Beispiel:

{PR-InventoryState(green)} Sofort lieferbar {/PR-InventoryState(green)}

{@PR-DistinctArticles(Feldname)}

Schleife für alle Produktdaten.

Für jeden unterschiedlichen Feldwert des Produktdatenfeldes, das mit dem Parameter übergeben wird, wird jeweils nur das erste gefundene Produkt ausgegeben.

Beispiel:
Produktdaten
Index Name IS_ZUSATZ0
0001 Prod1 rot
0002 Prod2 grün
0003 Prod3 rot
0004 Prod4 blau
0005 Prod5 grün

Template

Index / Name / Farbe {@PR-DistinctArticles(IS_ZUSATZ0)} ~PR-Index~ / ~PR-Name~ / Farbe: ~PR-IS_ZUSATZ0~ {/@PR-DistinctArticles(IS_ZUSATZ0)}

Ergebnis
Index / Name / Farbe
0001 / Prod1 / rot
0002 / Prod2 / grün
0004 / Prod4 / blau

~PR-SalesFigures~

Ausgabe der Verkaufszahlen der letzten 30 Tagen. Gibt bei Varianten die Verkaufszahlen des Basisartikels aus.

~PR-SalesRank~

Ausgabe des Verkaufsranges anhand der Bestelldaten der letzten 30 Tagen. Gibt bei Varianten den Rang des Basisartikels aus.

{PR-ProcessMediaData}

Bereich wird angezeigt, wenn Daten aus der Mediendatenbank kommen. Ist das aktuelle Produkt ein Shopprodukt, wird der Bereich nicht angezeigt

Voraussetzung
- Mediendatenbank (KNV/VLB ist aktiviert)
- Produktdaten besitzen einen GTIN

{PR-LoadMediaData}

Bereich wird angezeigt, wenn Mediendaten zu dem aktuellen Produkt nachgeladen werden konnten. Es wird auch angezeigt wenn das aktuelle Produkt aus der Mediendatenbank stammt.

Voraussetzung
- Mediendatenbank (KNV/VLB ist aktiviert)
- Produkt besitzt ein Feld „GTIN“, das gefüllt ist.

~PR-MediaDataPrice~
~PR-MediaDataATPrice~
~PR-MediaDataCHPrice~

Ausgabe des Preises eines Produkts, der in der Mediendatenbank steht.

(...Price für Deutschland, …ATPrice für Österreich und ...CHPrice für Schweiz)

Voraussetzung
- Mediendatenbank (KNV/VLB ist aktiviert)
- {PR-LoadMediaData} ist positiv

{PR-MediaDataFixedRetailPrice}
{PR-MediaDataFixedRetailPriceAT}
{PR-MediaDataFixedRetailPriceCH}

Bereich wird angezeigt wenn das Produkt im Land preisgebunden ist.

(...Price für Deutschland, …PriceAT für Österreich und ..PriceCH für Schweiz)

Voraussetzung
- Mediendatenbank (KNV/VLB ist aktiviert)
- {PR-LoadMediaData} ist positiv

{PR-MediaDataRetailPrice}
{PR-MediaDataRetailPriceAT}
{PR-MediaDataRetailPriceCH}

Bereich wird angezeigt, wenn das Produkt im Land nicht preisgebunden ist.

(...Price für Deutschland, …PriceAT für Österreich und ..PriceCH für Schweiz)

Voraussetzung
- Mediendatenbank (KNV/VLB ist aktiviert)
- {PR-LoadMediaData} ist positiv

~PR-Ekomi-RatingVotes~

Liest aus external_data.websale_*_rating_ekomi_shop Anzahl der Bewertungen ("NumRatings") für das Produkt aus

{PR-Ekomi-RatingVotes}

Bereich wird angezeigt, wenn Ekomi für den Shop aktiviert ist.

~PR-Ekomi-RatingScore~

Liest aus external_data.websale_*_rating_ekomi_shop die durchschnittliche Bewertung ("AverageRating") für das Produkt aus.

{PR-Ekomi-RatingScore}

Bereich wird angezeigt, wenn Ekomi für den Shop aktiviert ist.