Вычисление минимальной цены группы товаров

Image for Вычисление минимальной цены группы товаров

Приведенное решение позволит вычислить и вывести минимальную цену на товары подгрупп текущей группы интернет-магазина.

Решение используется на сайте http://lumierelight.ru/ , но на данный момент во всех разделах есть товары с нулевой ценой, поэтому наглядной демонстрации не получится.

Установка:

Помещаем в код ТДС нижеприведенный код перед вызовом $Shop_Controller_Show->show();

// КАД: получаем минимальную цену товара для каждой группы
//id Родительской группы
$parent_group_id = (isset($Shop_Controller_Show->group))?$Shop_Controller_Show->group:0;
//id Магазина
$shop_id = (Core_Array::get(Core_Page::instance()->libParams, 'shopId'))?Core_Array::get(Core_Page::instance()->libParams, 'shopId'):3;

$oGroups =  Core_Entity::factory('shop_group');
$oGroups->queryBuilder()
	->where('parent_id', '=', $parent_group_id)
	->where('shop_id', '=', $shop_id);
$oGroups = $oGroups->findAll();


$oXml = Core::factory('Core_Xml_Entity')->name("groups_min_prices");

foreach ($oGroups as $oGroup)
{
	$aChildren = $oGroup->Shop_Groups->getGroupChildrenId();
	$aChildren[] = $oGroup->id;

	$oInfSysItem = Core_Entity::factory('shop_item');
	$oInfSysItem->queryBuilder()
		->from("shop_items")
		->where('shop_group_id', 'in', $aChildren)
		->order('price')
		->limit(1);
	$oInfSysItem = $oInfSysItem->findAll();

	if (isset($oInfSysItem[0]) && $oInfSysItem = $oInfSysItem[0])
	{
		$oXmlItem = Core::factory('Core_Xml_Entity')->name("group_min_price")->value($oInfSysItem->price)->addAttribute('id', $oGroup->id);
		$oXml->addEntity($oXmlItem);
	}
}

$Shop_Controller_Show->addEntity($oXml);
// /КАД: получаем минимальную цену товара для каждой группы

 

Использование:

В xsl "МагазинКаталогТоваров", в шаблоне вывода групп используем следующий код для вывода минимальной цены для группы, где 

  <xsl:value-of select="format-number(/shop/groups_min_prices/group_min_price[@id=$id], '## ###', 'my')"/> 

Где $id - идентификатор группы.

comments powered by Disqus


Следующий "Ошибка 404 на странице Интернет-магазина или Информационной системы" К списку Предыдущий "Открытие сайта"