так с этим и не разобрался. нашел в макете следующий код, может в нем собака зарыта:
// Проверяем, существует ли класс Интернет-магазина
if (Core::moduleIsActive('shop'

)
{
$Shop_Controller_Show = new Shop_Controller_Show(
Core_Entity::factory('Shop', '3'

);
$Shop_Controller_Show
->xsl(
Core_Entity::factory('Xsl'

->getByName('МагазинКаталогТоваровНаГлавнойСайт15'

)
->groupsMode('none'

->group(FALSE)
->limit(4);
$Shop_Controller_Show
->shopItems()
->queryBuilder()
->join('shop_item_discounts', 'shop_item_discounts.shop_item_id', '=', 'shop_items.id'

->join('shop_discounts', 'shop_discounts.id', '=', 'shop_item_discounts.shop_discount_id'

->clearOrderBy()
->orderBy('RAND()'

;
$Shop_Controller_Show->show();
}
?>
</div>