Morozov&Pimnev blog

Полезные решения, шпаргалки и примеры по html, css, js, jQuery, MySQL, PHP, HostCMS, ssh.

Копирование групп, подгрупп и их товаров всего интернет магазина в другой магазин в HostCMS v6

Есть странность, при копировании интернет-магазина в HostCMS, происходит только копирование его настроек, доставок, платежных систем, цен итд, но не его групп и товаров, так что для этого мы можем использовать следующий код:

<?php
	$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 магазина куда копируем
		}
	}
?>

shop_items, хуки, core_event, php, hostcms6, shop, shop_groups


Комментарии

Еще б значения свойств правильнр копировались, цены б не было.
Иначе получаются куча дублей значений свойств.., которые не привязаны к товарам нового магазина

Мария 16.11.2021 15:48:35 #