Вам нужно будет создать блок, который появится в левом столбце.Давайте создадим функцию для получения начального списка идентификаторов продуктов.Если ваш блок расширяется Mage_Catalog_Block_Product_List
, то ему может понравиться что-то вроде этого:
public function getCurrentProductIds()
{
return $this->getLoadedProductCollection()->getAllIds();
}
Но это будет работать только для продуктов, которые в данный момент отображаются на странице.Если вам нужно показать все связанные продукты на более поздних страницах в категории, функция может выглядеть следующим образом:
public function getCurrentProductIds()
{
return Mage::registry('current_category')->getProductCollection()->getAllIds();
}
Любая функция вернет список целых чисел.
Далее следуетсущественная часть.Получение связанных продуктов.
public function getCrossSellsCollection()
{
$productIds = $this->getCurrentProductIds();
$link = Mage::getSingleton('catalog/product_link')
->useCrossSellLinks(); // very important, this sets the linkTypeId to 5
$collection = $link->getProductCollection()
->addProductFilter($productIds) // find products associated with these
->addExcludeProductFilter($productIds) // don't let these sames ones be loaded twice, that's a guaranteed error
->addAttributeToSelect(array('name', 'url_key, 'url_path')); // list as many attributes here as you need
return $collection;
}
Возвращает объект Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection
, который можно перебирать из шаблона так же, как список продуктов.Этот бит открыт для корректировки и создания тем по вашему усмотрению.
<?php $_crossSellsCollection = $this->getCrossSellsCollection(); ?>
<?php if ($_crossSellsCollection->count()): ?>
<ul>
<?php foreach ($_crossSellsCollection as $_product): ?>
<li>
<a href="<?php echo $_product->getProductUrl() ?>"><?php echo $_product->getName() ?></a>
</li>
<?php endforeach ?>
</ul>
<?php endif ?>
(Надеюсь, вы недавно узнали, как принимать ответы, но ваш 0% -ный показатель говорит о другом)