Neu Attribute / Merkmale in Artikelliste ausgeben

windpocke02

Aktives Mitglied
6. März 2017
99
6
Hallo,

ich würde gerne diverse Merkmale in der Artikelliste anzeigen lassen.
Dazu habe ich in der item_list.tpl folgendes eingefügt:

{if !empty($Artikel->Attribute[1]->cWert)}
<li class="item row attr-sku">
<span class="attr-label col-sm-5">{$Artikel->Attribute[1]->cName}: </span>
<span class="value col-sm-7">{$Artikel->Attribute[1]->cWert}</span>
</li>
{/if}

Das klappt auch soweit gut, aber: wenn ein Attribut/Merkmal nicht vorhanden ist wird das nächste vorhandene ausgegeben, was nicht zielführend ist. Kann mir jemand einen Tipp geben, wie ich das auszugebende Attribut/Merkmal genau definieren kann und nicht nur mit 1, 2 oder 3 - sondern wo ich den Name des Attributs/Merkmals eintragen muss ??

Danke und Grüße
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.385
263
In {$Artikel->AttributeAssoc] sind alle Attribute mit den Bezeichnern als Keys hinterlegt. Dadurch kannst du direkt auf die gewünschten Attribute zugreifen.

{$Artikel->AttributeAssoc['mein_attribut']}
 

windpocke02

Aktives Mitglied
6. März 2017
99
6
Super, hat prima geklappt. Vielen Dank.
Geht das bei Merkmalen genauso ?
Situation: Ich habe für die Produktfarbe ein Text/Bild Merkmal angelegt und möchte das Bild (so ein kleiner Farbknubbel) in der Produktlistenansicht anzeigen lassen.
Bisher verwende ich diesen Code, der aber auch das Problem hat, dass das Merkmal nicht eindeutig definiert ist:

{if !empty($Artikel->oMerkmale_arr.1->oMerkmalWert_arr[0]->cBildpfadKlein)}
<li class="item row attr-sku">
<span class="attr-label col-sm-6">{$Artikel->oMerkmale_arr.1->cName}: </span> <img src="{$Artikel->oMerkmale_arr.1->oMerkmalWert_arr[0]->cBildpfadKlein}">
</li>
{/if}
 

windpocke02

Aktives Mitglied
6. März 2017
99
6
Danke, das habe ich getan. Jetzt ist es so. Ich habe ein Text/Bild-Merkmal "Farbe". Als Bild hinterlege ich so Farbpunkte.
In der Artikelliste möchte ich diesen Farbpunkt ausgeben.
Folgenden Code habe ich eingefügt:
{if !empty($Artikel->cMerkmalAssoc_arr.Farbe)}
<li class="item row attr-sku">
<span class="attr-label col-sm-6">{$Artikel->oMerkmale_arr.1->cName}: </span> <img src="{$Artikel->cMerkmalAssoc_arr.Farbe->cBildpfadKlein}">
</li>
{/if}

Als Test wird mit der Attributname richtig ausgegeben, aber das Bild erscheint nicht. Was mache ich denn da falsch ?
 
Zuletzt bearbeitet:

mobade

Sehr aktives Mitglied
27. Februar 2017
831
150
Chemnitz
Huhu,

hat dazu jemand für Shop5 schon eine Lösung? Ich würde in der Listenansicht gerne die Merkmale noch mit ausgeben und komme nicht wirklich weiter. :D

Danke und Grüße,
Mario
 

windpocke02

Aktives Mitglied
6. März 2017
99
6
Huhu,

hat dazu jemand für Shop5 schon eine Lösung? Ich würde in der Listenansicht gerne die Merkmale noch mit ausgeben und komme nicht wirklich weiter. :D

Danke und Grüße,
Mario
Also bei den Merkmalen hat es jetzt bei mir so funktioniert:

{foreach $Artikel->oMerkmale_arr as $attr}
{if $attr->cName === 'Farbe' && isset($attr->oMerkmalWert_arr[0])}
{block name='productlist-item-details-farbe'}
{col tag='dt' cols=4}{$attr->cName}:{/col}
{col tag='dd' cols=8}<img src="{$attr->oMerkmalWert_arr[0]->cBildURLKlein}">{/col}
{/block}
{/if}
{/foreach}

Der Merkmalname ist "Farbe" und ich wollte, dass das Bild dazu ausgegeben wird.
 
  • Gefällt mir
Reaktionen: mobade

ofenheizer

Sehr aktives Mitglied
26. Oktober 2012
378
85
Ich hänge mich mal hier ran ...
Mit
Code:
 {$attr = 'Seitenleistung'}
    {if isset($Artikel->AttributeAssoc[$attr])}
        {block name='productlist-item-details-seitenleistung'}
            {col tag='dt' cols=6}{$attr}: {/col}
            {col tag='dd' cols=6}{$Artikel->AttributeAssoc[$attr]}{/col}
        {/block}
     {/if}
klappt es grundsätzlich.
Also ich importiere die Attributwerte über die Ameise. Dann werden sie mir auch angezeigt.
Aber sobald ich beim Artikel etwas bei den Attributen ändere und einen Abgleich mache, wird der Wert nicht mehr angezeigt.
Bei den anderen Artikeln bleibt er im Shop sichtbar bis ich auch da händisch was anpasse. Nach einem Abgleich wird es nicht mehr angezeigt.

Die Attributwerte werden von der Ameise in die Spalte " Wert - Deutsch ( JTL-WAWI)" importiert.
Er taucht mit dem Code von oben erst wieder im Shop auf, wenn ich den Attributwert in die Spalte "Wert - Deutsch (testshop)" einfüge.

Wo liegt das Problem?

Danke und Grüße.
Markus
 

Ähnliche Themen