Coverdale,
я обычно так делаю
$oShopOne = Core_Entity::factory('Shop', 1); // магазин откуда копируем
$oShopTwo = Core_Entity::factory('Shop', 2); // магазин куда копируем
$oShop_Groups = $oShopOne->Shop_Groups;
$oShop_Groups->queryBuilder()->where('parent_id','=',0); // выбираем все группы из корня
$aShop_Groups = $oShop_Groups->findAll(FALSE);
Core_Event::attach('shop_group.onBeforeCopy', array('Shop_Copy_Observer', 'onBeforeCopy'));
Core_Event::attach('shop_item.onBeforeCopy', array('Shop_Copy_Observer', 'onBeforeCopy'));
foreach($aShop_Groups as $oShop_Group)
{
$oShop_Group->copy();
}
$oShopTwo->recount(); // пересчитываем магазин
class Shop_Copy_Observer
{
public static function onBeforeCopy($newObject, $athis)
{
$newObject->shop_id = 2; // ID магазина куда копируем
}
}