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 |
---|---|
~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 |
---|---|---|
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: 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: 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-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 |
~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-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 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. |
{@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 |
---|---|
{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: |
~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(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 von Google akzeptierte Format ist: Beispiel-Verwendung für Ekomi: |
~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 |
---|---|---|
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: |
DC-FPX_reset | Das Einzel-Tag löscht den Inhalt des freien Parameters. | Template: Ausgabe: |
DC-FPX_append | Das Einzel-Tag erweitert den Inhalt des freien Parameters. | Template: Ausgabe: |
DC-FPX_length | Das Einzel-Tag gibt die Anzahl an Zeichen aus. | Template: Ausgabe: |
DC-FPX_HexDecode | Das Einzel-Tag gibt den Inhalt hex dekodiert aus. | Template: Ausgabe: |
DC-FPX_HexEncode | Das Einzel-Tag gibt den Inhalt hex enkodiert aus. | Template: Ausgabe: |
DC-FPX_ENCXML | Das Einzel-Tag gibt den Inhalt XML enkodiert aus. | Template: Ausgabe:
|
DC-FPX_replace(find,replace) | Das Einzel-Tag durchsucht den Inhalt nach dem ersten Wert (find) und ersetzt ihn durch den zweiten Wert (replace). | Template: Ausgabe: |
DC-FPX_truncate(length) | Das Einzel-Tag kürzt den Inhalt auf | Template: Ausgabe: |
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 |
---|---|
~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 |
---|---|
{@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 |
---|---|
~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 |
---|---|
~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 |
---|---|
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 |
---|---|
~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 |
---|---|
{@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 |
---|---|
{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”
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