Hallo zusammen,
offensichtlich stehe ich völlig auf den Schlauch und brauch einen kleinen Denkanstoß.
Folgendes möchte ich erreichen: Wenn bei einem Artikel Zubehör angezeigt wird und es von da aus in den Warenkorb gelegt wird, soll man anschließend auf dem Hauptprodukt bleiben und nicht auf dem Zubehörartikel weitergeleitet werden.
Eigentlich dachte ich, ich müsste “nur” beim Widget Aufruf den Parameter anid ändern und übergeben und die Sache hätte sich erledigt. Das funktioniert leider schon mal nicht. Egal was ich da übergebe, es wird die OXID vom Zubehörartikel genommen.
Dann hab ich mir die listitem_line.tpl angesehen und folgende Passage gesehen:
[{if $altproduct}]
<input type="hidden" name="anid" value="[{$altproduct}]">
[{else}]
<input type="hidden" name="anid" value="[{$product->oxarticles__oxnid->value}]">
[{/if}]
Wenn ich beim Widget Aufruf diesen Parameter nutze um meine OXID zu übergeben, wird offensichtlich nur geprüft, ob der Parameter gesetzt ist und ein Boolean Wert zurückgegeben. Das stimmt doch so nicht, oder?
Was übersehe oder verstehe ich nicht?
Danke schonmal;-)
Der Gedanke ist theoretisch richtig, aber ist $product nicht der Zubehörartikel?
Dann müsste dort $oDetailsProduct sein, denke ich.
Alterativ: Bei “Kunden kaufen auch” funktioniert das auch standardmäßig
http://demoshop.oxid-esales.com/professional-edition/Bekleidung/Fashion/Accessoires/Kuyichi-Lederguertel-JEVER.html
vielleicht kannst du es dort abgucken
Doch doch, $product ist der Zubehörartikel. Dur hast natürlich recht, wenn man dort $oDetailsProduct nutzen würde, dann würde es auch funktionieren.
Ich möchte das nur beim Zubehör und beispielweise nicht bei Crossselling. Ich dachte ich gebe das dem Widget mit, aber das funktioniert leider nicht. Ich habe das schon in der related_products.tpl deklariert.
[{if !$oDetailsProduct->oxarticles__oxparentid->value}]
[{assign var="nova_anid" value=$oDetailsProduct->oxarticles__oxid->value}]
[{else}]
[{assign var="nova_anid" value=$oDetailsProduct->oxarticles__oxparentid->value}]
[{/if}]
[{include file="widget/product/list.tpl" anid=$nova_anid type="line" listId="accessories" products=$oView->getAccessoires() head="WIDGET_PRODUCT_RELATED_PRODUCTS_ACCESSORIES_HEADER"|oxmultilangassign header="light"}]
und in der list.tpl wollte ich eben die anid mit übergeben.
[{if $anid }]
[{assign var="nov_anid" value=$anid}]
[{else}]
[{assign var="nov_anid" value=$_product->getId()}]
[{/if}]
[{oxid_include_widget cl="oxwArticleBox" _parent=$oView->getClassName() nocookie=1 _navurlparams=$oViewConf->getNavUrlParams() iLinkType=$_product->getLinkType() _object=$_product anid=$nov_anid sWidgetType=product sListType=listitem_$type iIndex=$testid blDisableToCart=$blDisableToCart isVatIncluded=$oView->isVatIncluded() showMainLink=$showMainLink recommid=$recommid owishid=$owishid toBasketFunction=$toBasketFunction removeFunction=$removeFunction altproduct=$nov_anid inlist=$_product->isInList() skipESIforUser=1 testid=$testid}]
Danke, ich schau mir das bei “Kunden kauften auch” mal an. Dort scheint es wirklich genau so zu sein…Dankeschön:)
So, um das hier abzuschließen. Wenn der Parameter und Variablennamen gleich ist, wird er übergeben und es funktioniert - warum auch immer.
[{if $anid }]
[{assign var="nov_anid" value=$anid}]
[{else}]
[{assign var="nov_anid" value=$_product->getId()}]
[{/if}]
[{oxid_include_widget cl="oxwArticleBox" ...........nov_anid=$nov_anid}]
So, jetzt aber endgültig das letzte Mal;)
Es geht noch viel einfacher. Wenn man im related_products.tpl gleich den Parameter altproduct mitgibt, funktioniert es auch und man muss keine anderen Templates mehr anfassen.
[{include file="widget/product/list.tpl" altproduct=$oDetailsProduct->oxarticles__oxid->value type="line" listId="accessories" products=$oView->getAccessoires() head="NOVA_ACCESSOIRES_HEADER_INLETT"|oxmultilangassign header="light"}]
Danke an Kai, der mich darauf aufmerksam gemacht hat:)