В магазине приложений мы делаем так:
if ($Shop_Controller_Show->item)
{
$oShop = $Shop_Controller_Show->getEntity();
// XML-сущность, к которй будут добавляться похожие приложения
$oSimilarXmlEntity = Core::factory('Core_Xml_Entity')->name('similar');
// Добавляем XML-сущность контроллеру показа
$Shop_Controller_Show->addEntity($oSimilarXmlEntity);
$oShop_Items = $oShop->Shop_Items;
$oShop_Items
->queryBuilder()
->select('shop_items.*')
->where('shop_items.active', '=', 1)
->where('shop_items.shop_group_id', '=', $Shop_Controller_Show->group)
->where('shop_items.id', '!=', $Shop_Controller_Show->item)
->limit($limit)
->clearOrderBy()
->orderBy('RAND()');
$aShop_Items = $oShop_Items->findAll(FALSE);
foreach ($aShop_Items as $oShop_Item)
{
$oSimilarXmlEntity->addEntity(
$oShop_Item->clearEntities()
->addForbiddenTag('text')
);
}
}
Добавляется в ТДС магазина. В XML пойдет тег similar, в нем будут товары текущей группы, кроме просматриваемого товара. Ну а далее просто выводите их в XSL-шаблоне товара.