Erweiterte Feldfunktionen: Unterschied zwischen den Versionen

Aus Wiki csv4you
Wechseln zu:Navigation, Suche
(IF-ELSE - Anweisung)
(Diese Seite wurde zum Übersetzen freigegeben)
(62 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Für individuelle Formatierungen, Berechnungen und Abfragen einzelner Spalteninhalte stehen Ihnen verschiedene Funktionen zur Verfügung. Bitte achten Sie auf die korrekte Verwendung der Pipe |, dem einfachen Hochkomma ' sowie der geschwungenen und eckigen  Klammern {} []. Nachfolgend finden Sie alle aktiven Funktionen mit Beispielen.
+
<languages/>
 +
<translate>
 +
<!--T:1-->
 +
'''Erweiterte Feldfunktionen''' sind speziell geeignet für individuelle Formatierungen, Berechnungen und Abfragen einzelner Spalteninhalte im Import und Export. Bitte achten Sie auf die korrekte Verwendung der Pipe |, des einfachen Hochkommas ' und der geschwungenen und eckigen  Klammern {} []. Nachfolgend finden Sie alle aktiven Funktionen mit Beispielen.
  
== Freifelder anlegen und zuweisen ==
+
<!--T:2-->
Im Bereich Datenpool ->Grundeinstellungen ->Aktionen können bis zu 20 individuelle Freifelder definiert werden, z.B. für Spalten einer Importdatei, die zu keinem der vorhandenen Feldbezeichner passen. Die Zuweisung von Freifeldern erfolgt über die Platzhalter [spec1], [spec2], usw. ... bis [spec20].
+
Verwenden Sie Funktionen bitte nur so wie hier in den Beispielen angegeben. '''Wir leisten keinen Support''' für mehrfach bzw. fehlerhaft ineinander verschachtelte Funktionen, die nicht in den nachfolgenden Beispielen aufgeführt sind.
  
;''spec1, spec2, spec3, spec4 usw.'' - Freifelder zuweisen
+
== '''spec*''' - Freifelder verwenden == <!--T:3-->
 +
 
 +
<!--T:4-->
 +
Im Bereich ''Mein Konto ->Grundeinstellungen ->Aktionen...'' können bis zu 20 individuelle Freifelder definiert werden, z.B. für Spalten einer Importdatei, die zu keinem der vorhandenen Feldbezeichner passen. Die Zuweisung von Freifeldern erfolgt in den Import- und Exporteinstellungen über die Platzhalter [spec1], [spec2], usw. ... bis [spec20].
 +
 
 +
<!--T:5-->
 +
;'''spec1, spec2, spec3, spec4 usw.''' - Freifelder zuweisen
 
Beispiel: Sie haben Ihrem 1. Freifeld den Namen MobileLink gegeben, da Ihre Importdatei eine solche Spalte mit entsprechenden Werten enthält. Auslesen bzw. zuweisen lassen sich alle Werte dieser Spalte mit folgendem Platzhalter:
 
Beispiel: Sie haben Ihrem 1. Freifeld den Namen MobileLink gegeben, da Ihre Importdatei eine solche Spalte mit entsprechenden Werten enthält. Auslesen bzw. zuweisen lassen sich alle Werte dieser Spalte mit folgendem Platzhalter:
 
  [spec1]
 
  [spec1]
  
== Feldinhalte formatieren, berechnen und filtern ==
+
== Feldinhalte formatieren, berechnen und filtern == <!--T:6-->
 +
 
 +
=== '''replace''' - Feldinhalt ersetzen === <!--T:7-->
 +
Die Funktion ''replace'' ersetzt einen Wert durch einen anderen. Verwenden Sie als Trenner '''nicht''' die Pipe ('''|''') und '''nicht''' den Wert, der ersetzt werden soll. Ansonsten kann als Trenner ein beliebiges Zeichen festgelegt werden. Innerhalb von ''replace'' werden keine Hochkommas verwendet.
 +
 
 +
<!--T:8-->
 +
Beispiel 1... Das Komma im Feld ''price'' wird durch einen Punkt ersetzt. Trenner ist der Doppelpunkt (''':''').
 +
[price|replace:,:.]
 +
Beispiel 2... Doppelte Doppelpunkte im Feld ''attributes'' werden durch einen Doppelpunkt ersetzt. Trenner ist das Doppelkreuz ('''#'''). Hier nicht den Doppelpunkt als Trenner verwenden, da die zu ersetzenden Werte Doppelpunkte sind!
 +
[attributes|replace#::#:]
 +
Beispiel 3... Aus dem Feld ''title'' werden die Wörter ''Anhänger'' in ''Schmuck Anhänger'' und ''Stecker'' in ''Ohrstecker'' ersetzt. Trenner ist der Doppelpunkt (''':''').
 +
[title|replace:'Anhänger':'Schmuck Anhänger'{replace:'Stecker':'Ohrstecker'}]
 +
 
 +
=== '''find''' - Werte/Inhalte finden === <!--T:56-->
 +
Beispiel... Es wird im Inhalt von FELDNAME nach dem Wert "sw" gesucht und wenn vorhanden im betreffenden Feld ID in den Wert "52368-schwarz" geändert (Rückgabewerte: 1 = gefunden, 0 = nicht gefunden). Verwenden Sie als Trenner '''nicht''' die Pipe ('''|''') und '''nicht''' den Wert, der ersetzt werden soll. Ansonsten kann als Trenner ein beliebiges Zeichen festgelegt werden. ID 52368 dient hier nur als Beispiel:
 +
{IF '[FELDNAME|find:sw]' == '1'}[ID]-schwarz{ENDIF}
  
=== ''replace'' - Feldinhalt ersetzen ===
+
=== '''truncate''' - Feldinhalt kürzen === <!--T:9-->
Beispiel... Das Komma im Preis Ihrer Importdatei wird durch einen Punkt ersetzt:
+
'''Hinweis: Endet die Kürzung in einem Wort, so wird dieses Wort nicht mit übergeben.'''
[price|replace:',':'.']
 
  
=== ''truncate'' - Feldinhalt kürzen ===
+
<!--T:10-->
 
Beispiel... Vom Feld 'Bildname1' Ihrer Importdatei werden nur die ersten 4 Zeichen ausgegeben bzw. importiert:
 
Beispiel... Vom Feld 'Bildname1' Ihrer Importdatei werden nur die ersten 4 Zeichen ausgegeben bzw. importiert:
 
  [pic1|truncate:4]
 
  [pic1|truncate:4]
Zeile 20: Zeile 43:
 
  [itemno|truncate:6:3]
 
  [itemno|truncate:6:3]
  
=== ''lowercase'' - Feldinhalt mit Kleinbuchstaben ===
+
=== '''lowercase''' - Feldinhalt mit Kleinbuchstaben === <!--T:11-->
 +
 
 +
<!--T:12-->
 
Beispiel... Bildname1 "GTN765.jpg" soll in Kleinbuchstaben (gtn756.jpg) umgewandelt werden:
 
Beispiel... Bildname1 "GTN765.jpg" soll in Kleinbuchstaben (gtn756.jpg) umgewandelt werden:
 
  [pic1|lowercase]
 
  [pic1|lowercase]
  
=== ''net'' - Preis Netto ===
+
=== '''uppercase''' - Feldinhalt mit Großbuchstaben === <!--T:46-->
 +
 
 +
<!--T:47-->
 +
Beispiel... Bildname1 "gtne75.jpg" soll in Großbuchstaben (GTNE75.JPG) umgewandelt werden:
 +
[pic1|uppercase]
 +
 
 +
=== '''capitalize''' - Anfangsbuchstaben Wörter groß schreiben === <!--T:48-->
 +
 
 +
<!--T:49-->
 +
Beispiel... Die Anfangsbuchstaben im Feld ''color'' "Farben: schwarz, rot, blau"  in Großbuchstaben umwandeln (Farben: Schwarz, Rot, Blau):
 +
[color|capitalize]
 +
 
 +
=== '''capitalize-f''' - Anfangsbuchstabe Inhalt groß schreiben === <!--T:50-->
 +
 
 +
<!--T:51-->
 +
Beispiel... Nur den ersten Buchstaben des kompletten Inhaltes im Feld ''title'' "mein tolles Produkt" groß schreiben (Mein tolles Produkt):
 +
[color|capitalize-f]
 +
 
 +
=== '''len''' - Länge des Inhaltes === <!--T:54-->
 +
 
 +
<!--T:55-->
 +
Beispiel 1... Sie benötigen die Länge des Feldes ''title'' (Rückgabe ist die Anzahl der Zeichen):
 +
[title|len]
 +
Beispiel 2... Die Anzahl der Zeichen im Feld ''title'' wird abgefragt und gleichzeitig mit einer IF-Bedingung verküpft. Wenn weniger als 50 Zeichen im Feld ''title'', dann schreibe ''StartText'' vor den Titel:
 +
{IF '[title|len]' < '50'}StartText{ENDIF}[title]
 +
 
 +
=== '''net''' - Preis Netto === <!--T:13-->
 +
 
 +
<!--T:14-->
 
Beispiel... Ihre Importdatei beinhaltet Bruttopreise. Sie benötigen den Preis jedoch netto, abzgl. (19%) Mehrwersteuer:
 
Beispiel... Ihre Importdatei beinhaltet Bruttopreise. Sie benötigen den Preis jedoch netto, abzgl. (19%) Mehrwersteuer:
 
  [price|net]
 
  [price|net]
  
=== ''html'' - Texte mit Html ===
+
=== '''html''' - Texte mit Html === <!--T:15-->
 +
 
 +
<!--T:16-->
 
Beispiel... Alle Beschreibungstexte sollen mit HTML-Befehlen importiert werden (wenn vorhanden):
 
Beispiel... Alle Beschreibungstexte sollen mit HTML-Befehlen importiert werden (wenn vorhanden):
 
  [description|html]
 
  [description|html]
  
=== ''text'' - Texte ohne Html mit Zeilenumbrüchen ===
+
=== '''text''' - Texte ohne Html mit Zeilenumbrüchen === <!--T:17-->
 +
 
 +
<!--T:18-->
 
Beispiel... Aus den Artikelbeschreibungen Ihrer Importdatei werden ggf. vorhandene HTML-Tags entfernt und nur der eigentliche Text wird importiert. Zeilenumbrüche im Text werden formatiert ausgegeben:
 
Beispiel... Aus den Artikelbeschreibungen Ihrer Importdatei werden ggf. vorhandene HTML-Tags entfernt und nur der eigentliche Text wird importiert. Zeilenumbrüche im Text werden formatiert ausgegeben:
 
  [description|text]
 
  [description|text]
  
=== ''clear'' - Texte ohne Html und ohne Zeilenumbrüche ===
+
=== '''clear''' - Texte ohne Html und ohne Zeilenumbrüche === <!--T:19-->
 +
 
 +
<!--T:20-->
 
Beispiel... Alle Beschreibungen werden unformatiert und ohne Zeilenumbrüche als fortlaufender Text dargestellt:
 
Beispiel... Alle Beschreibungen werden unformatiert und ohne Zeilenumbrüche als fortlaufender Text dargestellt:
 
  [description|clear]
 
  [description|clear]
  
=== ''split'' - Extrahieren von Daten aus einem Datenfeld mit Trennern ===
+
=== '''split''' - Extrahieren von Daten aus einem Datenfeld mit Trennern === <!--T:21-->
 +
 
 +
<!--T:22-->
 
Beispiel 1... Feldinhalt sieht wie folgt aus: "Bildpfad1|Bildpfad2|Bildpfad3]". Als Datentrenner im System bei uns ist als Standardtrenner die Pipe | voreingestellt (senkrechter Strich). Es soll nur der Wert 'Bildpfad2' übernommen werden:
 
Beispiel 1... Feldinhalt sieht wie folgt aus: "Bildpfad1|Bildpfad2|Bildpfad3]". Als Datentrenner im System bei uns ist als Standardtrenner die Pipe | voreingestellt (senkrechter Strich). Es soll nur der Wert 'Bildpfad2' übernommen werden:
 
  [FeldNameBild|split:2]
 
  [FeldNameBild|split:2]
Beispiel 2... Feldinhalt: "Bildpfad1|-|Bildpfad2|-|Bildpfad3". Datentrenner 2 Pipes mit Bindestrich in der Mitte |-| (als Beispiel für einen eigenen Trenner). Aus dem Feldinhalt mit 3 Werten soll nur der Wert "Bildpfad3" übernommen werden:
+
Beispiel 2... Feldinhalt: "Bildpfad1->Bildpfad2->Bildpfad3". Datentrenner Bindestrich und ''Pfeil nach rechts'' "->" (als Beispiel für einen eigenen Trenner). Aus dem Feldinhalt mit 3 Werten soll nur der Wert "Bildpfad3" übernommen werden:
  [FeldNameBild|split:3:|-|]
+
  [FeldNameBild|split:3:->]
 
Beispiel 3... Feldinhalt eines Feldes 'Category': "Möbel|Wohnzimmer|Sessel". Datentrenner ist wieder die Pipe. Wenn Sie einen anderen Trenner verwenden, dann bitte im Beispiel 2 schauen. In 3 Spalten wird die Übernahme der einzelnen Werte "Möbel", "Wohnzimmer" und "Sessel" wie folgt vorbereitet:
 
Beispiel 3... Feldinhalt eines Feldes 'Category': "Möbel|Wohnzimmer|Sessel". Datentrenner ist wieder die Pipe. Wenn Sie einen anderen Trenner verwenden, dann bitte im Beispiel 2 schauen. In 3 Spalten wird die Übernahme der einzelnen Werte "Möbel", "Wohnzimmer" und "Sessel" wie folgt vorbereitet:
 
  [Category|split:1]
 
  [Category|split:1]
Zeile 50: Zeile 111:
 
  [Category|split:3]
 
  [Category|split:3]
  
=== ''math'' - Berechnungen ===
+
=== '''math''' - Berechnungen === <!--T:23-->
 +
Bitte beachten: Innerhalb von Berechnungen mit ''math'' funktionieren keine IF/ELSE-Anweisungen!
 +
 
 +
<!--T:24-->
 
Beispiel 1... Addiere 100 auf den aktuellen Preis:
 
Beispiel 1... Addiere 100 auf den aktuellen Preis:
 
  [math|price+100]
 
  [math|price+100]
Zeile 57: Zeile 121:
 
Beispiel 3... Addiere Inhalte aus den Feldern 'price' und 'shippingCost':
 
Beispiel 3... Addiere Inhalte aus den Feldern 'price' und 'shippingCost':
 
  [math|price+shippingCost]
 
  [math|price+shippingCost]
 +
Beispiel 4... Addiere/berechne 4 Werte in einem Feld: Importpreis [price_list] + Mehrwertsteuer [vat] + 20% Aufschlag + 5 Euro pauschal
 +
[math|price_list*1.vat*1.2+5]
 +
Beispiel 5... Wert in Importpreis [price_list] ist z.B. 'VK25.25'. 'VK' soll durch nichts ersetzt, also gelöscht werden (''replace'' innerhalb von ''math'' funktioniert nicht!):
 +
:Schema: [math|Spalte+Berechnung|Dezimaltrenner|Suchwert(|Ersatzwert Optional)]
 +
[math|price_list|.|VK]
 +
Beispiel 6... Wert in Importpreis [price_list] ist z.B. '30.50 USD '. 'USD' soll in EUR ersetzt, umgerechnet und Dezimaltrenner soll das Komma werden:
 +
:Schema: [math|Spalte+Berechnung|Dezimaltrenner|Suchwert(|Ersatzwert Optional)]
 +
[math|price_list*0.9|,|USD|EUR]
  
=== ''date()'' - Datumswerte ===
+
=== '''date()''' - Datumswerte === <!--T:25-->
 +
 
 +
<!--T:26-->
 
Beispiel 1... Aktuelles Startdatum mit Angabe Stunde und Minute (z.B. für Auktionen):
 
Beispiel 1... Aktuelles Startdatum mit Angabe Stunde und Minute (z.B. für Auktionen):
 
  date(d.m.Y H:i)
 
  date(d.m.Y H:i)
Zeile 66: Zeile 140:
 
  date(d.m.Y H:i|-2)
 
  date(d.m.Y H:i|-2)
  
== Verknüpfung von Funktionen ==
+
=== '''seo''' - Zeichenkette für Suchmaschinen optimieren === <!--T:57-->
 +
 
 +
<!--T:58-->
 +
Beispiel... Text im Titel wird für Suchmaschinen optimiert ausgegeben:
 +
[title|seo]
 +
 
 +
=== '''match''' - Textsegmente in Zeichenketten finden (optional entfernen) === <!--T:59-->
 +
 
 +
<!--T:60-->
 +
Beispiel... Ihre Beschreibung enthält jede Menge Text. Sie benötigen jedoch nur einen bestimmten Teil daraus. Geben Sie dafür einen ganz bestimmten Start- und Endtext als Suchmuster z.B. aus Ihrer Produktbeschreibung ein. Alles zwischen TEXTVON und TEXTBIS wird dann ausgelesen und als Wert zurückgegeben. TEXTVON und TEXTBIS müssen Sie natürlich durch Ihre eigenen Werte ersetzen:
 +
[description|match:'TEXTVON':'TEXTBIS']
 +
 
 +
<!--T:61-->
 +
gefundenes Textsegment inklusive TEXTVON und TEXTBIS entfernen:
 +
[description|match:'TEXTVON':'TEXTBIS',1]
  
=== ''[func1 {func2}]'' - 2 Funktionen verbinden ===
+
== Verknüpfung von Funktionen == <!--T:27-->
 +
 
 +
=== '''[func1 {func2}]''' - Zwei Funktionen verbinden === <!--T:28-->
 +
 
 +
<!--T:29-->
 
Beispiel 1... Ersetzt in einem String ''https'' in ''http'' und ''a-domain.com'' in ''b-domain.com'':
 
Beispiel 1... Ersetzt in einem String ''https'' in ''http'' und ''a-domain.com'' in ''b-domain.com'':
 
  [pic1|replace:'https':'http'{replace:'a-domain.com':'b-domain.com'}]
 
  [pic1|replace:'https':'http'{replace:'a-domain.com':'b-domain.com'}]
Zeile 74: Zeile 166:
 
  [Datum|split:1: {replace:'2015':'2016'}]
 
  [Datum|split:1: {replace:'2015':'2016'}]
  
=== ''[func1 {func2}{func3}]'' - 3 Funktionen verbinden ===
+
=== '''[func1 {func2}{func3}]''' - Drei Funktionen verbinden === <!--T:30-->
 +
 
 +
<!--T:31-->
 
Beispiel... Der Titel "Kette, schwarz-rot Metallik, 80cm" wird in "metallic" umgewandelt. Dazu muss der 3. Teil des Titels gesucht, alle Buchstaben klein geschrieben und ein Buchstabe ersetzt werden. Als Trennzeichen der Werte innerhalb des Titels wird das Leerzeichen definiert (vor der ersten geschwungenen Klammer):
 
Beispiel... Der Titel "Kette, schwarz-rot Metallik, 80cm" wird in "metallic" umgewandelt. Dazu muss der 3. Teil des Titels gesucht, alle Buchstaben klein geschrieben und ein Buchstabe ersetzt werden. Als Trennzeichen der Werte innerhalb des Titels wird das Leerzeichen definiert (vor der ersten geschwungenen Klammer):
 
  [title|split:3: {lowercase}{replace:'k':'c'}]
 
  [title|split:3: {lowercase}{replace:'k':'c'}]
  
== Bedingte Anweisungen und Verzweigungen (Abfragen) ==
+
== Bedingte Anweisungen und Verzweigungen (Abfragen) == <!--T:32-->
=== ''IF'' - Anweisung ===
+
 
 +
=== '''IF''' - Anweisung === <!--T:33-->
 +
 
 +
<!--T:34-->
 
Beispiel... Wenn 'SpalteBestand' Wert größer 5, schreibe 5 - ansonsten schreibe nichts in das Feld:
 
Beispiel... Wenn 'SpalteBestand' Wert größer 5, schreibe 5 - ansonsten schreibe nichts in das Feld:
 
  {IF 'SpalteBestand' > '5'}5{ENDIF}
 
  {IF 'SpalteBestand' > '5'}5{ENDIF}
  
=== ''IF-ELSE'' - Anweisung ===
+
=== '''IF-ELSE''' - Anweisung === <!--T:35-->
 +
 
 +
<!--T:36-->
 
Beispiel 1... Wenn 'SpalteVerfuegbar' Wert nicht wie 'ja', schreibe 0 - ansonsten schreibe 1.
 
Beispiel 1... Wenn 'SpalteVerfuegbar' Wert nicht wie 'ja', schreibe 0 - ansonsten schreibe 1.
 
  {IF 'SpalteVerfuegbar' != 'ja'}0{ELSE}1{ENDIF}
 
  {IF 'SpalteVerfuegbar' != 'ja'}0{ELSE}1{ENDIF}
 
Beispiel 2... Wenn 'Lager' Wert leer, schreibe 'nein' - ansonsten schreibe 'ja'.
 
Beispiel 2... Wenn 'Lager' Wert leer, schreibe 'nein' - ansonsten schreibe 'ja'.
 
  <pre>{IF 'Lager' == ''}nein{ELSE}ja{ENDIF}</pre>
 
  <pre>{IF 'Lager' == ''}nein{ELSE}ja{ENDIF}</pre>
 +
Beispiel 3... Wenn 'FeldinDatei' nicht leer, schreibe Wert aus 'FeldinDatei' - ansonsten schreibe 'No Name' in das Feld.
 +
<pre>{IF 'FeldinDatei' != ''}[FeldinDatei]{ELSE}No Name{ENDIF}</pre>
  
=== ''IF-ELSEIF-ELSE'' - Anweisung ===
+
=== '''IF-ELSEIF-ELSE''' - Anweisung === <!--T:37-->
 +
 
 +
<!--T:38-->
 
Beispiel 1... Wenn 'SpalteVerfuegbar' Wert=nein, schreibe 0 -
 
Beispiel 1... Wenn 'SpalteVerfuegbar' Wert=nein, schreibe 0 -
 
wenn 'SpalteVerfuegbar' Wert=ja, schreibe 1 -
 
wenn 'SpalteVerfuegbar' Wert=ja, schreibe 1 -
 
wenn Beides nicht zutrifft schreibe nichts in das Feld.
 
wenn Beides nicht zutrifft schreibe nichts in das Feld.
  {IF 'SpalteVerfuegbar' == 'nein'}0{ELSEIF 'SpalteVerfuegbar' == 'ja'}1{ELSE}{ENDIF}
+
  <span style="white-space: pre-wrap">{IF 'SpalteVerfuegbar' == 'nein'}0{ELSEIF 'SpalteVerfuegbar' == 'ja'}1{ELSE}{ENDIF}</span>
 
Beispiel 2... ist etwas komplexer. Es gibt z.B. Variantenfelder für Konfektionsgrößen. Der folgende Code ersetzt die Größenangaben 36-54 aus der Importdatei (Feldname: 'Variation_Size') in die gewünschten Buchstaben-Größenbezeichner, z.B. S, M, L, XL usw.:
 
Beispiel 2... ist etwas komplexer. Es gibt z.B. Variantenfelder für Konfektionsgrößen. Der folgende Code ersetzt die Größenangaben 36-54 aus der Importdatei (Feldname: 'Variation_Size') in die gewünschten Buchstaben-Größenbezeichner, z.B. S, M, L, XL usw.:
 
  {IF 'Variation_Size' == '36'}XXS
 
  {IF 'Variation_Size' == '36'}XXS
Zeile 106: Zeile 209:
 
   {ELSEIF 'Variation_Size' == '54'}5XL
 
   {ELSEIF 'Variation_Size' == '54'}5XL
 
   {ELSE}6XL
 
   {ELSE}6XL
  {ENDIF}  
+
  {ENDIF}
  
=== ''IF-ELSE-ELSE'' - Anweisung ===
+
=== '''IF-ELSE-ELSE''' - Anweisung === <!--T:39-->
 +
 
 +
<!--T:40-->
 
Beispiel... Wenn Spalte 'Aktiv' Wert='Ja', übernehme Wert aus Spalte 'Bestand' -
 
Beispiel... Wenn Spalte 'Aktiv' Wert='Ja', übernehme Wert aus Spalte 'Bestand' -
 
ansonsten wenn Wert 'Bestand' größer 10, schreibe '10' -
 
ansonsten wenn Wert 'Bestand' größer 10, schreibe '10' -
 
ansonsten schreibe '0' in das Feld.
 
ansonsten schreibe '0' in das Feld.
  {IF 'Aktiv' == 'Ja'}[Bestand]{ELSE}{IF 'Bestand' > '10'}10{ELSE}0{ENDIF}{ENDIF}  
+
  <span style="white-space: pre-wrap">{IF 'Aktiv' == 'Ja'}[Bestand]{ELSE}{IF 'Bestand' > '10'}10{ELSE}0{ENDIF}{ENDIF}</span>
 +
 
 +
== Spezifische Schnittstellen-Platzhalter == <!--T:41-->
 +
 
 +
=== WooCommerce === <!--T:42-->
 +
 
 +
<!--T:43-->
 +
ASIN-Platzhalter
 +
[ASIN-{COUNTRY}]
 +
 
 +
== Fehlerquellen in Funktionen == <!--T:52-->
 +
 
 +
<!--T:53-->
 +
Werden innerhalb eines IF-Zweigs Funktionen mit Zahlen verwendet, so muss der zu prüfende WERT entweder ganzahlig sein oder als Dezimaltrennzeichen den Punkt verwenden. Beispiel:
 +
<span style="white-space: pre-wrap">{IF 'WERT' < '5'} usw. ... 'WERT' kann z.B. 10, 20.50 oder 23.32 sein. Werte mit Komma als Dezimaltrennzeichen funktionieren in IF-Verzweigungen nicht.</span>
  
  
 +
<!--T:44-->
 
Weitere Funktionen richten wir je nach Bedarf auf Anfrage ein.
 
Weitere Funktionen richten wir je nach Bedarf auf Anfrage ein.
  
 +
<!--T:45-->
 
[[Category:Sonstiges]]
 
[[Category:Sonstiges]]
 +
</translate>

Version vom 4. Januar 2019, 14:58 Uhr

Sprachen:
Deutsch • ‎English

Erweiterte Feldfunktionen sind speziell geeignet für individuelle Formatierungen, Berechnungen und Abfragen einzelner Spalteninhalte im Import und Export. Bitte achten Sie auf die korrekte Verwendung der Pipe |, des einfachen Hochkommas ' und der geschwungenen und eckigen Klammern {} []. Nachfolgend finden Sie alle aktiven Funktionen mit Beispielen.

Verwenden Sie Funktionen bitte nur so wie hier in den Beispielen angegeben. Wir leisten keinen Support für mehrfach bzw. fehlerhaft ineinander verschachtelte Funktionen, die nicht in den nachfolgenden Beispielen aufgeführt sind.

spec* - Freifelder verwenden

Im Bereich Mein Konto ->Grundeinstellungen ->Aktionen... können bis zu 20 individuelle Freifelder definiert werden, z.B. für Spalten einer Importdatei, die zu keinem der vorhandenen Feldbezeichner passen. Die Zuweisung von Freifeldern erfolgt in den Import- und Exporteinstellungen über die Platzhalter [spec1], [spec2], usw. ... bis [spec20].

spec1, spec2, spec3, spec4 usw. - Freifelder zuweisen

Beispiel: Sie haben Ihrem 1. Freifeld den Namen MobileLink gegeben, da Ihre Importdatei eine solche Spalte mit entsprechenden Werten enthält. Auslesen bzw. zuweisen lassen sich alle Werte dieser Spalte mit folgendem Platzhalter:

[spec1]

Feldinhalte formatieren, berechnen und filtern

replace - Feldinhalt ersetzen

Die Funktion replace ersetzt einen Wert durch einen anderen. Verwenden Sie als Trenner nicht die Pipe (|) und nicht den Wert, der ersetzt werden soll. Ansonsten kann als Trenner ein beliebiges Zeichen festgelegt werden. Innerhalb von replace werden keine Hochkommas verwendet.

Beispiel 1... Das Komma im Feld price wird durch einen Punkt ersetzt. Trenner ist der Doppelpunkt (:).

[price|replace:,:.]

Beispiel 2... Doppelte Doppelpunkte im Feld attributes werden durch einen Doppelpunkt ersetzt. Trenner ist das Doppelkreuz (#). Hier nicht den Doppelpunkt als Trenner verwenden, da die zu ersetzenden Werte Doppelpunkte sind!

[attributes|replace#::#:]

Beispiel 3... Aus dem Feld title werden die Wörter Anhänger in Schmuck Anhänger und Stecker in Ohrstecker ersetzt. Trenner ist der Doppelpunkt (:).

[title|replace:'Anhänger':'Schmuck Anhänger'{replace:'Stecker':'Ohrstecker'}]

find - Werte/Inhalte finden

Beispiel... Es wird im Inhalt von FELDNAME nach dem Wert "sw" gesucht und wenn vorhanden im betreffenden Feld ID in den Wert "52368-schwarz" geändert (Rückgabewerte: 1 = gefunden, 0 = nicht gefunden). Verwenden Sie als Trenner nicht die Pipe (|) und nicht den Wert, der ersetzt werden soll. Ansonsten kann als Trenner ein beliebiges Zeichen festgelegt werden. ID 52368 dient hier nur als Beispiel:

{IF '[FELDNAME|find:sw]' == '1'}[ID]-schwarz{ENDIF}

truncate - Feldinhalt kürzen

Hinweis: Endet die Kürzung in einem Wort, so wird dieses Wort nicht mit übergeben.

Beispiel... Vom Feld 'Bildname1' Ihrer Importdatei werden nur die ersten 4 Zeichen ausgegeben bzw. importiert:

[pic1|truncate:4]

Beispiel... Aus Ihrer Art.-Nummer möchten Sie 6 Zeichen ab Position 3 importieren:

[itemno|truncate:6:3]

lowercase - Feldinhalt mit Kleinbuchstaben

Beispiel... Bildname1 "GTN765.jpg" soll in Kleinbuchstaben (gtn756.jpg) umgewandelt werden:

[pic1|lowercase]

uppercase - Feldinhalt mit Großbuchstaben

Beispiel... Bildname1 "gtne75.jpg" soll in Großbuchstaben (GTNE75.JPG) umgewandelt werden:

[pic1|uppercase]

capitalize - Anfangsbuchstaben Wörter groß schreiben

Beispiel... Die Anfangsbuchstaben im Feld color "Farben: schwarz, rot, blau" in Großbuchstaben umwandeln (Farben: Schwarz, Rot, Blau):

[color|capitalize]

capitalize-f - Anfangsbuchstabe Inhalt groß schreiben

Beispiel... Nur den ersten Buchstaben des kompletten Inhaltes im Feld title "mein tolles Produkt" groß schreiben (Mein tolles Produkt):

[color|capitalize-f]

len - Länge des Inhaltes

Beispiel 1... Sie benötigen die Länge des Feldes title (Rückgabe ist die Anzahl der Zeichen):

[title|len]

Beispiel 2... Die Anzahl der Zeichen im Feld title wird abgefragt und gleichzeitig mit einer IF-Bedingung verküpft. Wenn weniger als 50 Zeichen im Feld title, dann schreibe StartText vor den Titel:

{IF '[title|len]' < '50'}StartText{ENDIF}[title]

net - Preis Netto

Beispiel... Ihre Importdatei beinhaltet Bruttopreise. Sie benötigen den Preis jedoch netto, abzgl. (19%) Mehrwersteuer:

[price|net]

html - Texte mit Html

Beispiel... Alle Beschreibungstexte sollen mit HTML-Befehlen importiert werden (wenn vorhanden):

[description|html]

text - Texte ohne Html mit Zeilenumbrüchen

Beispiel... Aus den Artikelbeschreibungen Ihrer Importdatei werden ggf. vorhandene HTML-Tags entfernt und nur der eigentliche Text wird importiert. Zeilenumbrüche im Text werden formatiert ausgegeben:

[description|text]

clear - Texte ohne Html und ohne Zeilenumbrüche

Beispiel... Alle Beschreibungen werden unformatiert und ohne Zeilenumbrüche als fortlaufender Text dargestellt:

[description|clear]

split - Extrahieren von Daten aus einem Datenfeld mit Trennern

Beispiel 1... Feldinhalt sieht wie folgt aus: "Bildpfad1|Bildpfad2|Bildpfad3]". Als Datentrenner im System bei uns ist als Standardtrenner die Pipe | voreingestellt (senkrechter Strich). Es soll nur der Wert 'Bildpfad2' übernommen werden:

[FeldNameBild|split:2]

Beispiel 2... Feldinhalt: "Bildpfad1->Bildpfad2->Bildpfad3". Datentrenner Bindestrich und Pfeil nach rechts "->" (als Beispiel für einen eigenen Trenner). Aus dem Feldinhalt mit 3 Werten soll nur der Wert "Bildpfad3" übernommen werden:

[FeldNameBild|split:3:->]

Beispiel 3... Feldinhalt eines Feldes 'Category': "Möbel|Wohnzimmer|Sessel". Datentrenner ist wieder die Pipe. Wenn Sie einen anderen Trenner verwenden, dann bitte im Beispiel 2 schauen. In 3 Spalten wird die Übernahme der einzelnen Werte "Möbel", "Wohnzimmer" und "Sessel" wie folgt vorbereitet:

[Category|split:1]
[Category|split:2]
[Category|split:3]

math - Berechnungen

Bitte beachten: Innerhalb von Berechnungen mit math funktionieren keine IF/ELSE-Anweisungen!

Beispiel 1... Addiere 100 auf den aktuellen Preis:

[math|price+100]

Beispiel 2... Multipliziere den aktuellen Preis mit 1.5, benutze als Dezimaltrennzeichen den Punkt:

[math|price*1.5|.]

Beispiel 3... Addiere Inhalte aus den Feldern 'price' und 'shippingCost':

[math|price+shippingCost]

Beispiel 4... Addiere/berechne 4 Werte in einem Feld: Importpreis [price_list] + Mehrwertsteuer [vat] + 20% Aufschlag + 5 Euro pauschal

[math|price_list*1.vat*1.2+5]

Beispiel 5... Wert in Importpreis [price_list] ist z.B. 'VK25.25'. 'VK' soll durch nichts ersetzt, also gelöscht werden (replace innerhalb von math funktioniert nicht!):

Schema: [math|Spalte+Berechnung|Dezimaltrenner|Suchwert(|Ersatzwert Optional)]
[math|price_list|.|VK]

Beispiel 6... Wert in Importpreis [price_list] ist z.B. '30.50 USD '. 'USD' soll in EUR ersetzt, umgerechnet und Dezimaltrenner soll das Komma werden:

Schema: [math|Spalte+Berechnung|Dezimaltrenner|Suchwert(|Ersatzwert Optional)]
[math|price_list*0.9|,|USD|EUR]

date() - Datumswerte

Beispiel 1... Aktuelles Startdatum mit Angabe Stunde und Minute (z.B. für Auktionen):

date(d.m.Y H:i)

Beispiel 2... Aktuelles Startdatum mit zusätzlicher Angabe der Sekunden ausgeben:

date(d.m.Y H:i:s)

Beispiel 3... Startdatum mit Stunde und Minute jedoch 2 Tage zurück gesetzt:

date(d.m.Y H:i|-2)

seo - Zeichenkette für Suchmaschinen optimieren

Beispiel... Text im Titel wird für Suchmaschinen optimiert ausgegeben:

[title|seo]

match - Textsegmente in Zeichenketten finden (optional entfernen)

Beispiel... Ihre Beschreibung enthält jede Menge Text. Sie benötigen jedoch nur einen bestimmten Teil daraus. Geben Sie dafür einen ganz bestimmten Start- und Endtext als Suchmuster z.B. aus Ihrer Produktbeschreibung ein. Alles zwischen TEXTVON und TEXTBIS wird dann ausgelesen und als Wert zurückgegeben. TEXTVON und TEXTBIS müssen Sie natürlich durch Ihre eigenen Werte ersetzen:

[description|match:'TEXTVON':'TEXTBIS']

gefundenes Textsegment inklusive TEXTVON und TEXTBIS entfernen:

[description|match:'TEXTVON':'TEXTBIS',1]

Verknüpfung von Funktionen

[func1 {func2}] - Zwei Funktionen verbinden

Beispiel 1... Ersetzt in einem String https in http und a-domain.com in b-domain.com:

[pic1|replace:'https':'http'{replace:'a-domain.com':'b-domain.com'}]

Beispiel 2... Sie möchten Datumswerte, z.B. "10.09.2015 17:55:49" in "10.09.2016" ändern. Dazu muss der 1. Teil des Datums gesucht und '2015' durch '2016' ersetzt werden. Der Trenner ist das Leerzeichen:

[Datum|split:1: {replace:'2015':'2016'}]

[func1 {func2}{func3}] - Drei Funktionen verbinden

Beispiel... Der Titel "Kette, schwarz-rot Metallik, 80cm" wird in "metallic" umgewandelt. Dazu muss der 3. Teil des Titels gesucht, alle Buchstaben klein geschrieben und ein Buchstabe ersetzt werden. Als Trennzeichen der Werte innerhalb des Titels wird das Leerzeichen definiert (vor der ersten geschwungenen Klammer):

[title|split:3: {lowercase}{replace:'k':'c'}]

Bedingte Anweisungen und Verzweigungen (Abfragen)

IF - Anweisung

Beispiel... Wenn 'SpalteBestand' Wert größer 5, schreibe 5 - ansonsten schreibe nichts in das Feld:

{IF 'SpalteBestand' > '5'}5{ENDIF}

IF-ELSE - Anweisung

Beispiel 1... Wenn 'SpalteVerfuegbar' Wert nicht wie 'ja', schreibe 0 - ansonsten schreibe 1.

{IF 'SpalteVerfuegbar' != 'ja'}0{ELSE}1{ENDIF}

Beispiel 2... Wenn 'Lager' Wert leer, schreibe 'nein' - ansonsten schreibe 'ja'.

{IF 'Lager' == ''}nein{ELSE}ja{ENDIF}

Beispiel 3... Wenn 'FeldinDatei' nicht leer, schreibe Wert aus 'FeldinDatei' - ansonsten schreibe 'No Name' in das Feld.

{IF 'FeldinDatei' != ''}[FeldinDatei]{ELSE}No Name{ENDIF}

IF-ELSEIF-ELSE - Anweisung

Beispiel 1... Wenn 'SpalteVerfuegbar' Wert=nein, schreibe 0 - wenn 'SpalteVerfuegbar' Wert=ja, schreibe 1 - wenn Beides nicht zutrifft schreibe nichts in das Feld.

{IF 'SpalteVerfuegbar' == 'nein'}0{ELSEIF 'SpalteVerfuegbar' == 'ja'}1{ELSE}{ENDIF}

Beispiel 2... ist etwas komplexer. Es gibt z.B. Variantenfelder für Konfektionsgrößen. Der folgende Code ersetzt die Größenangaben 36-54 aus der Importdatei (Feldname: 'Variation_Size') in die gewünschten Buchstaben-Größenbezeichner, z.B. S, M, L, XL usw.:

{IF 'Variation_Size' == '36'}XXS
 {ELSEIF 'Variation_Size' == '38'}XS
 {ELSEIF 'Variation_Size' == '40'}S
 {ELSEIF 'Variation_Size' == '42'}M
 {ELSEIF 'Variation_Size' == '44'}L
 {ELSEIF 'Variation_Size' == '46'}XL
 {ELSEIF 'Variation_Size' == '48'}XXL
 {ELSEIF 'Variation_Size' == '50'}3XL
 {ELSEIF 'Variation_Size' == '52'}4XL
 {ELSEIF 'Variation_Size' == '54'}5XL
 {ELSE}6XL
{ENDIF}

IF-ELSE-ELSE - Anweisung

Beispiel... Wenn Spalte 'Aktiv' Wert='Ja', übernehme Wert aus Spalte 'Bestand' - ansonsten wenn Wert 'Bestand' größer 10, schreibe '10' - ansonsten schreibe '0' in das Feld.

{IF 'Aktiv' == 'Ja'}[Bestand]{ELSE}{IF 'Bestand' > '10'}10{ELSE}0{ENDIF}{ENDIF}

Spezifische Schnittstellen-Platzhalter

WooCommerce

ASIN-Platzhalter

[ASIN-{COUNTRY}]

Fehlerquellen in Funktionen

Werden innerhalb eines IF-Zweigs Funktionen mit Zahlen verwendet, so muss der zu prüfende WERT entweder ganzahlig sein oder als Dezimaltrennzeichen den Punkt verwenden. Beispiel:

{IF 'WERT' < '5'} usw. ... 'WERT' kann z.B. 10, 20.50 oder 23.32 sein. Werte mit Komma als Dezimaltrennzeichen funktionieren in IF-Verzweigungen nicht.


Weitere Funktionen richten wir je nach Bedarf auf Anfrage ein.