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

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-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:

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:

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

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.

{@PR-Ekomi-Ratings}

Schleife über die einzelnen Ekomi Bewertungen zu einem Produkt

{PR-Ekomi-Text}

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

Nur in der Schleife @PR-Ekomi-Ratings nutzbar

~PR-Ekomi-Text~

Tag zur Ausgabe des Ekomi Bewertungstextes für ein Produkt.

Nur in der Schleife @PR-Ekomi-Ratings nutzbar

{PR-Ekomi-ReviewID}

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

Nur in der Schleife @PR-Ekomi-Ratings nutzbar

~PR-Ekomi-ReviewID~

Tag zur Ausgabe der aus OrderID, ProduktIndex und einem Salt berechneten, eindeutigen ReviewID einer Ekomi-Bewertung.

Nur in der Schleife @PR-Ekomi-Ratings nutzbar

{PR-Ekomi-Timestamp}

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

Nur in der Schleife @PR-Ekomi-Ratings nutzbar

~PR-Ekomi-Timestamp~

Das Tag gibt den Zeitstempel der Ekomi-Bewertung aus.

Nur in der Schleife @PR-Ekomi-Ratings nutzbar

{PR-Ekomi-Vote}

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

Nur in der Schleife @PR-Ekomi-Ratings nutzbar

~PR-Ekomi-Vote~

Tag zur Ausgabe der Ekomi Bewertung

Nur in der Schleife @PR-Ekomi-Ratings nutzbar

~PR-CreationDate~

Das Tag gibt den Zeitstempel der Produkterstellung aus.

Eine Längenbeschränkung ist bei diesen Tags nicht möglich.

"DC-" Tags

Mit den “DC-CompareDigit*” Klammerungen lassen sich Zahlenwerte in den Exportdaten vergleichen und sich die zugehörige Abschnitte abhängig vom Ergebnis ein- oder ausblenden.
Die Funktion entspricht weitgehend den gleichnamigen Tags des Shops, allerdings muss beim Export (im Gegensatz zur der Verwendung im Shop) für die Parameter keine spezielle Syntax verwendet werden.

Beispiel:
{DC-CompareDigitLTE(~PR-Amount~,5)}Kleiner Bestand{/DC-CompareDigitLTE(~PR-Amount~,5)}

Folgende „DC-“ Tags werden unterstützt:

Tag

Beschreibung

Tag

Beschreibung

{DC-CompareDigitLTE(<Wert1>,<Wert2>)}

Die Klammerung wird angezeigt, wenn <Wert1> kleiner oder gleich <Wert2> ist.

{DC-CompareDigitLT(<Wert1>,<Wert2>)}

Die Klammerung wird angezeigt, wenn <Wert1> kleiner <Wert2> ist.

{DC-CompareDigitGTE(<Wert1>,<Wert2>)}

Die Klammerung wird angezeigt, wenn <Wert1> größer oder gleich <Wert2> ist.

{DC-CompareDigitGT(<Wert1>,<Wert2>)}

Die Klammerung wird angezeigt, wenn <Wert1> größer <Wert2> ist.

{DC-CompareDigitIBE(<Wert1>,<Wert2>,<Wert3>)}

Die Klammerung wird angezeigt, wenn <Wert2> größer oder gleich <Wert1> und kleiner oder gleich <Wert3> ist.

{DC-CompareDigitIB(<Wert1>,<Wert2>,<Wert3>)}

Die Klammerung wird angezeigt, wenn <Wert2> größer <Wert1> und kleiner <Wert3> ist.

{@DC-Split(<Wert>,<Separator>)}

Teilt den <Wert> in Teilwerte auf. Als Separator können unterschiedliche Zeichen verwendet werden.

Spezialbehandlung:
Soll der Separator ein Komma oder ein Leerzeichen sein, muss ein Platzhalter (Komma: comma, Leerzeichen: space) angegeben werden.

~DC-SplitValue~

Gibt den im DC-Split enthaltenen Teilwert aus. Kann nur innerhalb von {@DC-Split()} verwendet werden.

{DC-SplitLastValue}

Klammerung die eingeblendet wird, wenn in der Schleife {@DC-Split()} der letzte Teilwert erreicht wurde.

~DC-ConvertDateTime(timestamp, format)~

Konvertiert einen übergebenen Timestamp aus dem Unix-Format in ein übergebenes Format.

“format” muss Teil von C++ strftime sein.

Beispiel: 17/06/2024

~DC-ConvertDateTime(~PR-CreationDate~,%d/%m/%Y)~

~DC-ConvertDateTime(timestamp, orig_format, format)~

Konvertiert einen Timestamp aus dem übergebenen orig_format in das übergebene format.

orig_format und format müssen Teil von C++ strftime sein.

Speziell bei Ekomi:
Das Format, in dem der Timestamp in der Datenbank vorliegt, ist:
%Y-%m-%d %H:%M:%S

Das von Google akzeptierte Format ist:
%Y-%m-%dT%H:%M:%SZ

Beispiel-Verwendung für Ekomi:
~DC-ConvertDateTime(~PR-Ekomi-Timestamp~,%Y-%m-%d %H:%M:%S, %Y-%m-%dT%H:%M:%SZ)~

~DC-Add(<Wert1>, <Wert2>, <Dezimalstellen>)~

Addiere Wert1 und Wert2 miteinander und gebe das Ergebnis als Ganzzahl aus.

Optional kann auch das Ergebnis als Fließkommazahl ausgegeben werden, wenn als dritter Parameter die Anzahl von Nachkommastellen angegeben wird

Anmerkung: Fließkommazahlen müssen einen Punkt als Trenner besitzen!

~DC-Subtract(<Wert1>, <Wert2>, <Dezimalstellen>)~

Subtrahiere Wert2 von Wert1 und gebe das Ergebnis als Ganzzahl aus.

Optional kann auch das Ergebnis als Fließkommazahl ausgegeben werden, wenn als dritter Parameter die Anzahl von Nachkommastellen angegeben wird

Anmerkung: Fließkommazahlen müssen einen Punkt als Trenner besitzen!

~DC-Multiply(<Wert1>, <Wert2>, <Dezimalstellen>)~

Multipliziere Wert1 und Wert2 miteinander und gebe das Ergebnis als Ganzzahl aus.

Optional kann auch das Ergebnis als Fließkommazahl ausgegeben werden, wenn als dritter Parameter die Anzahl von Nachkommastellen angegeben wird

Anmerkung: Fließkommazahlen müssen einen Punkt als Trenner besitzen!

~DC-Divide(<Wert1>, <Wert2>, <Dezimalstellen>)~

Dividiere Wert1 durch Wert2 und gebe das Ergebnis als Ganzzahl aus.

Optional kann auch das Ergebnis als Fließkommazahl ausgegeben werden, wenn als dritter Parameter die Anzahl von Nachkommastellen angegeben wird

Anmerkung: Fließkommazahlen müssen einen Punkt als Trenner besitzen!

~DC-Modulo(<Wert1>, <Wert2>)~

Berechne Ergebnis Wert1 modulo Wert2 und gebe das Ergebnis als Ganzzahl aus.

Mit der Modulo wird der Restbetrag bei einer ganzzahligen Division ermittelt.

Beispiel: 7 Modulo 3 = 1

Bemerkungen:

  • Die Parameter, die beim Start-Tag angegeben wurden, müssen beim End-Tag ebenfalls angegeben werden.

  • Für alle DC-Tags sind auch negative Klammerungen möglich.

"DC-FPX" Tags

Mit den DC-FPX-Tags kann man freie Parameter mit selbst gewählten Werten setzen, bearbeiten und ausgeben. Anstelle des X wird ein frei definierbarer, alphanumerischer Parametername geschrieben (in den folgenden Beispielen ist das die “1“).

Tag

Beschreibung

Beispiel

Tag

Beschreibung

Beispiel

DC-FPX

Das Einzel-Tag gibt den aktuellen Inhalt des Wertes aus.

Das Bereichs-Tag prüft, ob der freie Parameter gesetzt ist.

DC-FPX_set(value)

Das Einzel-Tag befüllt den Wert, der mit dem Parameter übergeben wird.

Template:

Ausgabe:
Hallo Welt

DC-FPX_reset

Das Einzel-Tag löscht den Inhalt des freien Parameters.

Template:

Ausgabe:
Hallo

DC-FPX_append

Das Einzel-Tag erweitert den Inhalt des freien Parameters.

Template:

Ausgabe:
ABC

DC-FPX_length

Das Einzel-Tag gibt die Anzahl an Zeichen aus.

Template:

Ausgabe:
5

DC-FPX_HexDecode

Das Einzel-Tag gibt den Inhalt hex dekodiert aus.

Template:

Ausgabe:
Hallo

DC-FPX_HexEncode

Das Einzel-Tag gibt den Inhalt hex enkodiert aus.

Template:

Ausgabe:
48616C6C6F

DC-FPX_ENCXML

Das Einzel-Tag gibt den Inhalt XML enkodiert aus.

Template:

Ausgabe:

&lt;div&gt;Text&lt;/div&gt;

DC-FPX_replace(find,replace)

Das Einzel-Tag durchsucht den Inhalt nach dem ersten Wert (find) und ersetzt ihn durch den zweiten Wert (replace).


Zum Ersetzen von Kommas muss %%comma%% anstelle des Kommastrichs angegeben werden.

Template:

Ausgabe:
Hallo Welt

DC-FPX_truncate(length)

Das Einzel-Tag kürzt den Inhalt auf length Zeichen.

Template:

Ausgabe:
Hallo

Bemerkung:
Man kann auch Tags wie z. B. ~PR-Name~ verwenden, um einen Parameter zu setzen. Jedoch kann es hier zu Problemen kommen, wenn das als Wert verwendete Tag (nach dem Parsen) Kommas enthält.

"PRCONV-" Tags

Die PRCONV-Tags stehen für Produktdatenfelder, die auf irgendeine Weise konvertiert werden müssen, bevor sie in das Template eingefügt werden können. Derzeit besteht die einzige Konvertierungsmöglichkeit darin eine Tabelle anzugeben, in der die Original-Werte und die konvertierten Werte aufgeführt sind.

Alle zu konvertierenden Felder müssen in der Datei "convert-fields.csv" in dem Ausgabeverzeichnis der Exportdateien eingetragen werden. Diese Datei enthält drei Spalten:
Org-Name: Der Name des Produktdatenfeldes, z.B. "VATIndex"
Conv-Name: Der konvertierte, im Template verwendete Name (ohne den Präfix PRCONV-), z.B. "Tax"
Table: Der Dateiname der Konvertierungstabelle. Die Datei muss ebenfalls in dem Ausgabeverzeichnis liegen, Pfadangaben in diesem Feld sind nicht zulässig.

Die Datei der Konvertierungstabelle enthält folgende Spalten:
Org-Value: Der Wert des Produktdatenfeldes, z.B. "1". Ein "*" steht für den Default-Wert der verwendet wird, wenn kein passender Eintrag in der Tabelle gefunden wird.
Conv-Value: Der konvertierte Wert, z.B. "0.19".

"Cat-" Tags

Mit den Cat-Tags lassen sich Kategoriedaten innerhalb der Produktschleife ({@PR-Articles}) einfügen.

Tag

Beschreibung

Tag

Beschreibung

~Cat-Index~

Der Index der Kategorie in der das Produkt steht

{@Cat-Names}

Schleife der Kategorie-Namen in normaler Reihenfolge (von “oben” nach “unten” innerhalb der Kategorie-Hierarchie)

{@Cat-RevNames}

Schleife der Kategorie-Namen in der umgekehrten Reihenfolge

~Cat-Name~

Dieser Tag kann innerhalb der @Cat-Names/@Cat-RevNames Schleife und außerhalb dieser Schleifen verwendet werden und wird durch den Namen der Kategorie ersetzt.

Außerhalb der Schleife wird der Name der (untersten) Kategorie eingefügt in der das Produkt steht.

~ENCURL-Cat-Name~

Dieser Tag kann innerhalb der @Cat-Names/@Cat-RevNames Schleife verwendet werden und wird durch den Namen der Kategorie URL enkodiert ersetzt.

{last}

Klammerung für den letzten Eintrag in der Liste. Verwendet wird normalerweise die Negierung der Klammerung um den Feld-Trenner nach letzten Eintrag entfernen zu können.

~Cat-Link~

Link zur Kategorie (SEO-URL-fähig)

~Cat-LinkPath~

Der Pfad-Teil des Links zum Aufruf der Kategorie.

{@Cat-AllAssigned}

Mit dieser Schleife können alle Kategorien ausgegeben werden, in denen das Produkt steht. Innerhalb dieser Schleife können alle anderen „Cat-“ Tags verwendet werden.

Beispiel 1:
Ausgabe der Kategorie-Hierarchie in denen ein Produkt steht als kommagetrennte Liste:

{@Cat-Names}~Cat-Name~{!last},{/!last}{/@Cat-Names}

Beispiel 2:
Ausgabe aller Kategorien, in denen ein Produkt steht:

Beispiel 3:
Folgendes Beispiel gibt nur alle Indexe aus:


Beispiel 4:
Folgender Code gibt alle Namen die direkt zugeordnet sind und deren Pfad:


Es ist auch möglich außerhalb von PR-Articles sämtliche Kategorien aufzulisten. Dann können alle vom Kategorieexport unterstützten Tags verwendet werden (siehe unten).

“Tpl-” Tags

Für die Ausgabe von URLs der (statischen) Informationsseiten des Shops (z. B. für die Erzeugung einer sitemap) stehen folgende Tpl-Tags zur Verfügung.

Tag

Beschreibung

Tag

Beschreibung

{@Tpl-Template}

Loop über alle URLs für Informationsseiten

~Tpl-Link~

Link zur Informationsseite

~Tpl-LastModDate~

Datum der letzten Änderung der Template-Datei im Subshop-Verzeichnis

Beispiel:

Spezialtags

Für komplexe Strukturen, die sich nicht mit den normalen Produkt- und Kategorie-Tags generieren lassen gibt es folgende Spezial-Tags:

Tag

Beschreibung

Tag

Beschreibung

~BMECat-CategoryStructur~

Kategoriestruktur so wie sie im BMEcat-Standard festgelegt ist

~BMECat-GroupMap~

Zuordnung Produkte -> Kategorie nach BMEcat-Standard

CurrentTimestamp

Zeitpunkt des Exportstarts

Tag

Beschreibung

Tag

Beschreibung

~CurrentTimestamp~

Gibt den Zeitpunkt vom Start des Exports als Unix-Timestamp aus (Anzahl Sekunden seit 1.1.1970).

Beispiel:

Im Beispiel wird das Anlagedatum vom aktuellen Zeitpunkt abgezogen. Das Ergebnis ist die Zeitspanne seit der Erstellung des Produktes. Das Ergebnis wird in einen freien Parameter (DC-FPproductAge) geschrieben.

Danach wird darauf geklammert ob der Inhalt vom freien Parameter kleiner als 1209600 Sekunden (= 2 Wochen) ist. Nur dann wird der Inhalt innerhalb der Klammer ausgegeben.

Konfiguration von Spezialfeatures

Spezialfeatures, die sich nicht mit dem Template und über Tags alleine realisieren lassen, können in der Datei "special.ini" in dem Ausgabeverzeichnis der Exportdateien konfiguriert werden. In dieser Datei gibt es einen Pflichtparameter "Feature". Die weiteren Parameter hängen davon ab, welcher Wert unter "Feature" eingetragen ist.

Unterstützte Spezialfeatures:

Name

Beschreibung

Name

Beschreibung

Sport-Tec-Prices

Bei diesem Feature werden die Preise eines anderen Subshops beim Export mit ausgegeben. Welcher Subshop das ist wird über den Parameter "SrcSubshop" festgelegt. Die zusätzlich Preise können über ~STP-Price~, ~STP-BulkAmount~, ~STP-BulkPrice~, {@STP-BulkPrices} in das Template eingefügt werden.

Formatierungs-Tags/Formatierung von CSV-Dateien

Damit Export-Templates von CSV-Dateien übersichtlicher gestalteten werden können, gibt es die folgenden Formatierungs-Tags:

Tag

Beschreibung

Tag

Beschreibung

~t~

Wird durch ein Tabulator-Zeichen ersetzt

~n~

Wird durch einen Zeilenumbruch ersetzt

Zusammen mit der Option “Zeilenumbrüche entfernen” wird es dadurch möglich, die einzelnen Felder der Exportdatei im Template übersichtlich untereinander in das Template zu schreiben.

Beispiel:

Insbesondere bei Exportdateien mit vielen Feldern ist dies deutlich übersichtlicher als alle Tags in eine Zeile zu schreiben.

Kategoriedatenexport

Der Export von Kategoriedaten 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 "category-template.txt".

Im Gegensatz zu den Produktdaten können Kategoriedaten ausschließlich unter Benutzung eines Templates exportiert werden.

Unterstützte Tags

Tag

Beschreibung

Tag

Beschreibung

{@Cat-Categories}

Die Schleife der Kategoriedaten

~Cat-Name~

Der Name der Kategorie innerhalb von {@Cat-Categories}

{Cat-Index}

Prüft, ob Kategorie indiziert werden soll oder nicht (RobotIndex = no)

~Cat-Index~

Der Index der Kategorie innerhalb von {@Cat-Categories}

~Cat-Descr~

Die Beschreibung der Kategorie innerhalb von {@Cat-Categories}

~Cat-ImgAdvNav~

Erweitertes Navigationsbild

~Cat-ImgClosed~

Navigationsgrafik geschlossen

~Cat-ImgOpen~

Navigationsgrafik geöffnet

~Cat-ImgOverview~

Übersichtsbild

~Cat-ImgSelected~

Navigationsgrafik ausgewählt

{@Cat-ParentCategories}

Die übergeordneten Kategorien. Innerhalb der Schleife ändert sich der Kontext und die Tags ~Cat-Name~ usw. beziehen sich auf die Parentkategorie.

Weiterhin kann in dieser Schleife die Klammerung {Cat-last} bzw. {!Cat-last} verwendet werden.

{@Cat-RevParentCategories}

Wie {@Cat-ParentCategories}, aber in umgekehrter Reihenfolge (von oben nach unten in der Hierarchie)

~Cat-Link~

Link zur Kategorie (SEO-URL-fähig)

{@Cat-Data}

Schleife der Kategorie-Namen und -Indexe in normaler Reihenfolge (von “oben” nach “unten” innerhalb der Kategorie-Hierarchie)

{@Cat-RevData}

Schleife der Kategorie-Namen und -Indexe in umgekehrter Reihenfolge

{Cat-LastModDate}

Prüft, ob ein Datum der letzten Änderung ermittelt werden konnte

~Cat-LastModDate~

Datum der letzten Änderung an der Kategorie (dabei wird die letzte Änderung der Kategoriezuweisungen berücksichtigt)

Anmerkung:
@Cat-Data innerhalb von @Cat-AllAssigned hat eine sehr beschränkte Funktionalität. Man kann nur ~Cat-Name~ und ~Cat-Index~ auslesen. Zudem kann man darin mit {last} prüfen ob es das letzte Element der Liste ist (bei XML aber nicht so wichtig).

Filter-Tags

Folgende Tags können verwendet werden um Kategorien auszublenden, die nicht exportiert werden sollen.

Tag

Beschreibung

Tag

Beschreibung

{Cat-FilterEq(<Feldname>,<Feldwert>)}

z. B. {Cat-FilterEq(Test,y)}

Die Klammerung wird angezeigt, wenn das Feld den angegebenen Wert hat

{Cat-FilterNEq(<Feldname>,<Feldwert>}

z. B. {Cat-FilterNEq(Name,Sonderangebote)}

Die Klammerung wird angezeigt, wenn das Feld nicht den angegebenen Wert hat

{Cat-<Feldname>}

z. B. {Cat-Descr}

Die Klammerung wird angezeigt, wenn das Feld gefüllt ist

Formatierungs-Tags/Formatierung von CSV-Dateien

Wie bei den Produktdaten stehen auch bei den Kategoriedaten die Formatierungs-Tags ~t~ und ~n~ zur Verfügung (siehe oben).

URL Angabe zum Triggern eines Imports beim Drittanbieter (Suchdienstleister usw.)



Start des Imports durch das externe System
Bereich “Zeitsteuerung”

2024-09-20_155625.png


Unter “URL die nach dem Ende des Exports aufgerufen wird” wird die Trigger URL hinterlegt.
Wenn für den Import eine Authentifizierung erforderlich ist, dann kann diese Angaben in der URL mitgegegeben werden.
Format http(s)://Username:Passwort@domain.de/……..


Zudem kann die HTTP Methode als “GET” oder “POST” ausgewählt werden.
Diese Methode muss der externe Dienstleister mit der URL nennen.


Auf der folgenden Seite finden Sie Beispiel-Dateien: Beispieldateien für WS-DataFlowManager