Вам нужно будет создать блок, который появится в левом столбце. Давайте сделаем функцию, чтобы получить начальный список идентификаторов продуктов. Если ваш блок расширяет 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% предполагает othewise)
GOT IT СПАСИБО за помощь –
Спасибо, clockworkgeek. Жаль, я не могу понизить автора вопроса (125 баллов репутации) :) – Wiseman