Доброго времени суток.
Не знаю, актуален ли вопрос с количеством товара в группах магазина (общем и внутри группы), потому что только недавно начал знакомиться с 6 версией. В чём суть вопроса:
когда перемещаешь товар из одной группы в другую, то количество items_count и items_total_count, не обновляется. Как решение - постоянно использовать функционал "Пересчитать", не особо удобно.
Посмотрел, что в модели группы соответствующий метод присутствует, а именно modifyCountItems, но в методе move класса Shop_Item_Model он не задействован. Для решения проблемы сделал следующее:
1. Немного изменил метод move класса Shop_Item_Model:
public function move($iShopGroupId)
{
$this->Shop_Group->decCountItems(); // уменьшаем кол-во товара в текущей группе
$this->shop_group_id = $iShopGroupId;
$return = $this->save();
$this->Shop_Group->incCountItems(); // увеличиваем кол-во товара в новой группе
return $return;
}
2. И в методе Shop_Group_Model.modifyCountItems добавил проверку на первую итерацию рекурсии, так как изменение количества товара внутри группы (не путать с общим) не должно затрагивать родительские группы:
public function modifyCountItems($int = 1, $first = true)
{
$first && $this->items_count += $int;
$this->items_total_count += $int;
$this->save();
if ($this->parent_id != 0 /*&& $this->parent_id != $this->id*/ && !is_null($this->Shop_Group->id))
{
$this->Shop_Group->modifyCountItems($int, false);
}
return $this;
}
Проблема пропала. Надеюсь, кому-то это понадобится.