Direktlink zu einer Variante

Hallo Leute,

nachdem ich im englischen Forum leider keine Antwort bekommen habe, versuche ich es hier nochmal. Mein Problem ist folgendes:

Ich habe Artikel mit (mehrdimensionalen) Varianten. Ein Elternartikel ist garnicht bestellbar. Ich würde gerne auf der “List” Seite auf die Variante verlinken anstatt auf den Elternartikel. Kann mir jemand von euch sagen, wie ich das machen kann?

Wenn du das Basic-Theme hast, dann ist unten die Variantenauswahl schon so wie du es dir wünschst. Du kannst entweder das ganze Teil nach oben über die große Artikelansicht legen oder die Funktionalität nach oben in die große Ansicht verpflanzen, da gibt es hier einige Threads dazu aber keine fertige Anleitung.

Sorry, aber irgendwie funktioniert es bei mir nicht:
Wenn ich in der inc/product.tpl


          [{assign var="artVariants" value=$product->getMdSubvariants()}]
          [{assign var="artVars" value=$product->getMdSubvariants()}]

einfüge und mir dann die Variablen anzeigen lasse, sind die Arrays leer.
Wenn ich allerdings in der details.tpl Datei bin, und mir


          [{assign var="artVars" value=$product->getMdSubvariants()}]

anschaue, sind die Varianten in dem Array vorhanden.

Aber ich brauche den Zugriff in der inc/product.tpl. Kann mir jemand sagen, woran das liegt? Muss ich die Varianten zuerst irgendwie laden? Oder was kann sonst der Grund dafür sein?

Wieso willst du in der product.tpl auf die Varianten zugreifen? Was hast du vor?

Also… Wenn ich alle Artikel einer Kategorie sehe, dann werden die Inhalte ja mit Hilfe der inc/product.tpl dargestellt. Momentan ist es so, dass Link zu dem Hauptartikel führt. Was ich haben möchte ist, dass ich in irgendeiner Variante lande statt beim Hauptartikel.

Auf die Varianten kann ich mit $product->getMdVariants() oder $product->getMdSubvariants() zugreifen. Allerdings liefern mir diese Methoden jeweils 0 Varianten in der product.tpl zurück. In der details.tpl geht alles.

Meine Idee für die Umsetzung war, einfach das Array durchzuitterieren und den Link zu irgendeiner Variante zu speichern.

[QUOTE=LL0rd;56977]Also… Wenn ich alle Artikel einer Kategorie sehe, dann werden die Inhalte ja mit Hilfe der inc/product.tpl dargestellt. Momentan ist es so, dass Link zu dem Hauptartikel führt. Was ich haben möchte ist, dass ich in irgendeiner Variante lande statt beim Hauptartikel.

Auf die Varianten kann ich mit $product->getMdVariants() oder $product->getMdSubvariants() zugreifen. Allerdings liefern mir diese Methoden jeweils 0 Varianten in der product.tpl zurück. In der details.tpl geht alles.

Meine Idee für die Umsetzung war, einfach das Array durchzuitterieren und den Link zu irgendeiner Variante zu speichern.[/QUOTE]

Hi LLord,

ich glaube du hast da einen kleinen Denkfehler. Wenn du dir die list.tpl mal ansiehst dann wirst du merken das dort die Produkte der Kategorie abgerufen werden und das Array in dem die Produkte gespeichert sind wird mit einer foreach durchlaufen. Für jedes Produkt wird dann in der schleife die inc_product.tpl aufgerufen und per Parameter Werte übergeben.

In list.tpl sind die Varianten verfügbar. Vielleicht hilft es dir weiter wenn du die Varianten abruft und die produktwerte mit denen die foreach zum darstellen der Produkte durchlaufen wird, durch die Daten der Varienaten ersetzt.

Du könntest auch einen zusätzlichen Parameter an die inc_product.tpl innerhalb der foreach in der list.tpl senden indem du die Variante festlegst in der das Produkt erstellt werden soll.

hilft dir das weiter ?

Grüße

Jhonny

Sorry, aber ich muss jetzt nochmal zurückfragen:


    [{foreach from=$oView->getArticleList() item=actionproduct name=test_articleList}]
        [{include file="inc/product.tpl" product=$actionproduct testid="action_"|cat:$actionproduct->oxarticles__oxid->value test_Cntr=$smarty.foreach.test_articleList.iteration}]
    [{/foreach}]

Das ist der Code aus dem Basic Template. Wie du schon sagtest, wird dort ein Array mit den Artikeln abgerufen und mit Hilfe der inc/product.tpl dargestellt.


    [{foreach from=$oView->getArticleList() item=actionproduct name=test_articleList}]
        [{include file="inc/product.tpl" product=$actionproduct testid="action_"|cat:$actionproduct->oxarticles__oxid->value test_Cntr=$smarty.foreach.test_articleList.iteration}]

[{assign var="artVars" value=$actionproduct->getMdVariants()}]
[{assign var="artVars2" value=$actionproduct->getMdSubvariants()}]

[{debug}]
    [{/foreach}]

Ich habe jetzt den Code etwas ergänzt, sodass an dieser Stelle die Varianten ausgelesen werden sollen. Am Resultat hat sich allerdings nichts geändert. Was ja eigentlich auch logisch ist, denn die Variable $actionproduct landet ja als $product in der inc/product.tpl. Kannst du mir bitte deshalb genauer sagen, wo denn mein Denkfehler ist?

[QUOTE=LL0rd;56977]
Auf die Varianten kann ich mit $product->getMdVariants() oder $product->getMdSubvariants() zugreifen. Allerdings liefern mir diese Methoden jeweils 0 Varianten in der product.tpl zurück. In der details.tpl geht alles. [/QUOTE]
Probiers mal mit getVariantList:


[{if $product->getVariantList()}]
    [{foreach from=$product->getVariantList() item=variant}]
        <a href="[{$variant->getLink()}]">[{ $variant->oxarticles__oxvarselect->value }]</a><br />
    [{/foreach}]
[{/if}]

Wenn du den Schnipsel ans Ende der product.tpl anhängst bekommst du eine Liste mit Links zu den Varianten.

Wenn du den Schnipsel ans Ende der product.tpl anhängst bekommst du eine Liste mit Links zu den Varianten.

Auch das geht leider nicht. $product->getVariantList() liefert ein Array mit 0 Varianten zurück

Grundeinstellungen/Performance/Varianten in Artikellisten laden
muss aktiviert sein.

Ich danke dir, genau das war das Problem. Danke für eure Hilfe!