Hallo zusammen,
eine Anforderung bei uns im Shop war, dass auch Varianten von Artikeln in der jeweiligen Artikelübersicht im Shop angezeigt werden sollen.
Dazu habe ich die list.tpl (in widget/product) wie folgt angepasst:
<ul class="productCatalog">
[{foreach from=$products item="_product" name="productlist"}]
[{assign var="testid" value=$listId|cat:"_"|cat:$smarty.foreach.productlist.iteration}]
[{if $_product->getVariantsCount() == 0}]
[{counter print=true assign="productlistCounter"}]
[{oxid_include_widget cl="oxwArticleBox" _parent=$oView->getClassName() nocookie=1 _navurlparams=$oViewConf->getNavUrlParams() iLinkType=$_product->getLinkType() _object=$_product anid=$_product->getId() sWidgetType=product sListType=listitem_$type iIndex=$testid blDisableToCart=$blDisableToCart isVatIncluded=$oView->isVatIncluded() showMainLink=$showMainLink recommid=$recommid owishid=$owishid toBasketFunction=$toBasketFunction removeFunction=$removeFunction altproduct=$altproduct inlist=$_product->isInList() skipESIforUser=1 testid=$testid}]
[{else}]
[{assign var="variants" value=$_product->getVariants(true, null)}]
[{foreach from=$variants item="_variant" name="variantlist"}]
[{counter print=true assign="productlistCounter"}]
[{oxid_include_widget cl="oxwArticleBox" _parent=$oView->getClassName() nocookie=1 _navurlparams=$oViewConf->getNavUrlParams() iLinkType=$_variant->getLinkType() anid=$_variant->getId() sWidgetType=product sListType=listitem_$type iIndex=$testid blDisableToCart=$blDisableToCart isVatIncluded=$oView->isVatIncluded() showMainLink=$showMainLink recommid=$recommid owishid=$owishid toBasketFunction=$toBasketFunction removeFunction=$removeFunction altproduct=$altproduct skipESIforUser=1 testid=$testid}]
[{/foreach}]
[{/if}]
[{/foreach}]
[{* Counter resetten *}]
[{counter print=false assign="productlistCounter" start=0}]
</ul>
Es wird also bei jedem Produkt erst überprüft, ob es Varianten besitzt und falls ja, werden die Varianten abgerufen und als Artikel dargestellt. Dies funktioniert so weit auch sehr gut. Einzig die Paginierung erkennt die Varianten nicht als eigenständige Artikel, sodass mehr Artikel angezeigt werden als festgelegt.
Den Counter habe ich - wie man oben sieht - ebenfalls bereits angepasst und er zählt korrekt die Produkte auf der jeweiligen Seite.
An welcher Stelle bzw. wie kann ich nun die Paginierung anpassen? Habe diesbezüglich leider noch nichts im Forum oder woanders finden können.
Vielen Dank im Voraus,
David