Neu Artikelbeschreibung über „eigene Felder“ ausgeben

Specker

Sehr aktives Mitglied
30. März 2015
520
51
Hi

Ich bin gerade dabei den JTL Shop 4 einzurichten und dabei auf ein Problem gestoßen.

Und zwar ist es bei uns so, dass wir in der Wawi innerhalb der Artikel keine Beschreibung im offiziellen Beschreibungsfeld einpflegen. Das passiert bei uns komplett über eigene Felder.
Unsere Artikel haben also ihre Beschreibungen in den eigenen Feldern.

Die Ebay Designvorlage ist daher auch so aufgebaut, dass auf diese Felder zugegriffen werden und die Beschreibung ausspuckt.
Beim JTL Shop bin ich gerade ratlos, wie ich das umsetzen soll, da dieser ja direkt auf die Artikelbeschreibung zugreift.

Mir ist unklar, welche Stelle ich im Child Template überarbeiten muss, um mit eigenen Feldern die Artikelbeschreibung auszugeben bzw. ob das überhaupt möglich ist.
Werden denn die eigenen Felder überhaupt mit übertragen beim Abgleich?

Ich habe in einem Thread gelesen, die „tabs.tlp“ sei für die Ausgabe der Artikelbeschreibung verantwortlich.
Da steht aber soviel Code drin, den ich nicht lesen kann, dass ich garnicht weiß, wo ich da den Dotliquid Code für die eigenen Felder einsetzen sollte.

Wäre super, wenn mir da jemand weiterhelfen könnte.

Ansonsten steht mein Shop nämlich quasi in den Startlöchern. 🙂
 

martinwolf

Offizieller Service Partner
SPBanner
6. September 2012
3.724
355
Dot-Liquid wird im Smarty garnicht interpretiert, daher wäre das sinnfrei einzufügen. Die productdetails/tabs.tpl ist die richtige Datei, die ist auch eigentlich vom Code her nicht so schwer zu verstehen wie ich finde.
Letztendlich müssen auch nur zwei Zeilen angepasst werden:
PHP:
{if $Artikel->cBeschreibung|strlen > 0 || $Einstellungen.artikeldetails.merkmale_anzeigen === 'Y' && $Artikel->oMerkmale_arr|count > 1}
wird zu
PHP:
{if isset($Artikel->FunktionsAttribute['MEINFELD']) || $Einstellungen.artikeldetails.merkmale_anzeigen === 'Y' && $Artikel->oMerkmale_arr|count > 1}
und
PHP:
{assign var=cArtikelBeschreibung value=$Artikel->cBeschreibung}
wird zu
PHP:
{assign var=cArtikelBeschreibung value=$Artikel->FunktionsAttribute['MEINFELD']}

wobei MEINFELD durch den genauen Bezeichner des eigenen Feldes ersetzt wird. Aber wieso wird eigentlich nicht das Feld Beschreibung für die Produktbeschreibung verwendet?
 

Specker

Sehr aktives Mitglied
30. März 2015
520
51
Hi Martin

Erstmal vielen Dank für deine Antwort.

Leider habe ich es noch nicht hinbekommen. Ich verstehe den Code einfach deshalb nicht, weil ich mich mit der Materie nicht auskenne und auch nicht weiß, was das für eine Syntax ist. Ist das jetzt php code?

Ich konnte meine eigenen Felder leider noch nicht ausgeben mit deiner beschriebenen Methode. Eventuell weil der genaue Bezeichner meines eigenen Feldes nicht korrekt ist.
In meinen Artikeln existieren mehrere eigene Felder, die ausgegeben werden müssten. Ein eigenes Feld heißt z.B. „Beschreibung1“.

Versucht habe ich es also mit ($Artikel->FunktionsAttribute['Beschreibung1'])

Leider ohne Erfolg.


Der Grund, weshalb die Artikeldetails nicht im dazugehörigen Feld landen bei uns, ist folgender:

Wir wollten nicht, dass die selben Details in jedem unserer Shops gleich ausgegeben werden. Damals wussten wir noch nichts vom Multishop Modul und haben dementsprechend unsere Excel Import Vorlage so gestaltet, dass die Beschreibungen in unterschiedliche eigene Felder importiert werden. So war ich flexibler im Gestalten mit der Ebay und Unicorn2 Designvorlage.

Es ist also ein Überbleibsel aus alten Tagen, was bald gefixt wird. Es sind einige hundert Artikel, die dann geändert werden müssten. Ich werde mir in kommender Zeit aber eine Lösung einfallen lassen, diesen Vorgang zu beschleunigen.


Gruß - Ben
 

martinwolf

Offizieller Service Partner
SPBanner
6. September 2012
3.724
355
Ach ich hatte die Anpassungen auf EVO 4.04 bezogen, für 4.05 schaut das Template ein wenig anders aus. Weiter muss der Attributbezeichner/Eigeens Feld auch komplett kleingeschrieben sein.

PHP:
{if
    $Artikel->cBeschreibung|strlen > 0 ||
    $Einstellungen.artikeldetails.artikeldetails_fragezumprodukt_anzeigen === 'Y' ||
    ($Einstellungen.artikeldetails.merkmale_anzeigen === 'Y' && $Artikel->oMerkmale_arr|count > 1) ||
    $Einstellungen.bewertung.bewertung_anzeigen === 'Y' ||
    ($Einstellungen.preisverlauf.preisverlauf_anzeigen === 'Y' && $bPreisverlauf) ||
    $verfuegbarkeitsBenachrichtigung == 1 ||
    ((($Einstellungen.artikeldetails.mediendatei_anzeigen === 'YM' && $Artikel->cMedienDateiAnzeige !== 'beschreibung') || $Artikel->cMedienDateiAnzeige === 'tab') && $Artikel->cMedienTyp_arr|@count > 0 && $Artikel->cMedienTyp_arr)}
    {if $Einstellungen.artikeldetails.artikeldetails_tabs_nutzen !== 'N'}

wird zu

PHP:
{if
    isset($Artikel->FunktionsAttribute['beschreibung1']) ||
    $Einstellungen.artikeldetails.artikeldetails_fragezumprodukt_anzeigen === 'Y' ||
    ($Einstellungen.artikeldetails.merkmale_anzeigen === 'Y' && $Artikel->oMerkmale_arr|count > 1) ||
    $Einstellungen.bewertung.bewertung_anzeigen === 'Y' ||
    ($Einstellungen.preisverlauf.preisverlauf_anzeigen === 'Y' && $bPreisverlauf) ||
    $verfuegbarkeitsBenachrichtigung == 1 ||
    ((($Einstellungen.artikeldetails.mediendatei_anzeigen === 'YM' && $Artikel->cMedienDateiAnzeige !== 'beschreibung') || $Artikel->cMedienDateiAnzeige === 'tab') && $Artikel->cMedienTyp_arr|@count > 0 && $Artikel->cMedienTyp_arr)}
    {if $Einstellungen.artikeldetails.artikeldetails_tabs_nutzen !== 'N'}

und unten dann

PHP:
{assign var=cArtikelBeschreibung value=$Artikel->cBeschreibung}

wird zu
PHP:
{assign var=cArtikelBeschreibung value=$Artikel->FunktionsAttribute['beschreibung1']}
 

Specker

Sehr aktives Mitglied
30. März 2015
520
51
Super, jetzt funktioniert es!

Da ich allerdings relativ viele freie Felder hintereinander ausgeben muss, habe ich eben gerade folgendes probiert:

{assign var=cArtikelBeschreibung value=$Artikel->FunktionsAttribute['beschreibung1'] && $Artikel->FunktionsAttribute['beschreibung2']}

Zugegeben... das ist völlig aus der Luft gegriffen 😉
Ich habe keine Ahnung, wie der Code aufgebaut sein muss, um die eigenen Felder zu kaskadieren.
Das "&&" ist laut Google bloß ein logischer Operator.. kein Wunder also, dass mir mein Template nur eine „1“ ausspuckt mit diesem Code. *lach*

Wenn du mir da nochmal helfen könntest, wäre das großartig.

So oder so schon mal ein fettes Dankeschön!
 

martinwolf

Offizieller Service Partner
SPBanner
6. September 2012
3.724
355
PHP:
{assign var=cArtikelBeschreibung value=$Artikel->FunktionsAttribute['beschreibung1']|cat:$Artikel->FunktionsAttribute['beschreibung2']}
 
  • Gefällt mir
Reaktionen: Specker

Specker

Sehr aktives Mitglied
30. März 2015
520
51
Danke Martin!
Also wenn ich in Zukunft den Code selber verstehen will, sollte ich mich mit PHP befassen, oder?
Zu diesem "|cat:" konnte ich bei Google jetzt gerade garnichts finden.
 

martinwolf

Offizieller Service Partner
SPBanner
6. September 2012
3.724
355
Wenn Du vorhast zukünftig selbst Hand an die Templates zu legen wirst Du ohne Einlesen in die Materie eh nicht weit kommen 🙂 Man muss schon verstehen was da passiert, nur Copy und Paste bringt einen ja nicht voran.
 

Specker

Sehr aktives Mitglied
30. März 2015
520
51
Also mit HTML und CSS kenne ich mich ja aus, bloß PHP ist halt noch Neuland.
 

Ähnliche Themen