Вывод товаров из текущей группы и подгрупп первого уровня текущей группы:
1. В настройках типовой создаете свой контроллер, наследуете стандартный и переопределяете метод
class My_Shop_Controller_Show extends Shop_Controller_Show
{
/**
* Set item's condition by shop_group_id
* @return self
*/
protected function _groupCondition()
{
!$this->group && parent::_groupCondition();
return $this;
}
}
2. Там же используете
My_Shop_Controller_Show вместо Shop_Controller_Show
3. В типовой перед показом
// Массив групп, из которых показывать товары
$aGroups = array($Shop_Controller_Show->group);
$oShop_Group_Main = Core_Entity::factory('Shop_Group', $Shop_Controller_Show->group);
// Массив подгрупп
$aShop_Groups = $oShop_Group_Main
->Shop_Groups
->findAll();
// У группы есть подгруппы
if (count($aShop_Groups))
{
foreach ($aShop_Groups as $oShop_Group)
{
$aGroups[] = $oShop_Group->id;
}
}
$Shop_Controller_Show
->shopItems()
->queryBuilder()
->where('shop_group_id', 'IN', $aGroups);