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 |
|---|---|
~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 |
|---|---|---|
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)~ |
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 |
|---|---|
{@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: Die Schleife {@PR-DistinctDepVarField(Farbe)}
~PR-Farbe~
{/@PR-DistinctDepVarField(Farbe)}würde nun durch die Werte 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}/ | Diese beiden Schleifen sind dafür gedacht die Namen und Werte der abhängigen Variationen für ein Produkt einzufügen. 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“: |
{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“: |
{LastDepVarField} | Klammerung, die eingeblendet wird, wenn in der Schleife {@PR-DepVarField} der letzte Eintrag der aktuellen Varianten-Wert-Liste erreicht wurde. |
{PR-DepVarAttribute1...N} | Klammerung ob das Produkt das N-te Attribut besitzt. 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“: Ergebnis für ein Produkt mit der Variante „Farbe“ mit den Werten „rot“, „grün“ und „blau“: 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} | 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} | Schleife für Cross-Links (Zubehörprodukte/XLinks).
|
{@PR-CS-Links} | Schleife für CrossSelling-Links. |
{@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 |
~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). |
{@PR-RatingVotes} | Schleife über alle Einzelbewertungen zu dem Produkt |
~PR-RatingText~ | Verfasster Bewertungstext |
{PR-RatingText} | Prüfung ob ein Text bei der Einzelbewertung verfasst wurde. |
~PR-RatingSubject~ | Verfasster Bewertungsbetreff |
{PR-RatingSubject} | Prüfung ob ein Betreff bei der Einzelbewertung verfasst wurde. |
~PR-RatingEmail~ | E-Mail-Adresse des Bewerters |
{PR-RatingEmail} | Prüfung ob eine E-Mail Adresse bei der Bewertung hinterlegt wurde. |
~PR-RatingNickname~ | Hinterlegter Nickname zur Bewertung |
{PR-RatingNickname} | Prüfung ob ein Nickname bei der Bewertung hinterlegt wurde. |
~PR-RatingVote~ | Einzelbewertung |
~PR-RatingID~ | Bewertungs-ID |
~PR-RatingTimestamp~ | Zeitpunkt der Bewertung. Format: YYYY-mm-DD HH:MM:SS |
{PR-Inventory} | Bereich wird angezeigt, wenn für ein Produkt die Lagerbestandsverwaltung aktiviert wurde. |
{PR-InventoryState(state)} | Lagerbestands-Status Mögliche Werte: 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: Template Index / Name / Farbe
{@PR-DistinctArticles(IS_ZUSATZ0)}
~PR-Index~ / ~PR-Name~ / Farbe: ~PR-IS_ZUSATZ0~
{/@PR-DistinctArticles(IS_ZUSATZ0)}Ergebnis |
~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 |
{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 |
~PR-MediaDataPrice~ | Ausgabe des Preises eines Produkts, der in der Mediendatenbank steht. (...Price für Deutschland, …ATPrice für Österreich und ...CHPrice für Schweiz) Voraussetzung |
{PR-MediaDataFixedRetailPrice} | Bereich wird angezeigt wenn das Produkt im Land preisgebunden ist. (...Price für Deutschland, …PriceAT für Österreich und ..PriceCH für Schweiz) Voraussetzung |
{PR-MediaDataRetailPrice} | 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 |
~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. |