<?php
/**
 * Система управления сайтом HostCMS v. 5.xx
 * Copyright © 2005-2010 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
 *
 * Обработчик экспорта данных о товарах в CSV.
 *
 * Файл: /admin/shop/action/export_data_csv.php
 *
 * @author Hostmake LLC
 * @version 5.x
 */
 
// Инициализация классов

if(class_exists('DataBase'))
{
	$DataBase_class = & singleton('DataBase');
}
else
{
	exit();
}

if(class_exists('warehouse'))
{
	$warehouse_class = & singleton('warehouse');
}
else
{
	exit();
}

if(class_exists('shop'))
{
	$shop_class = & singleton('shop');
}
else
{
	exit();
}

// Устанавливаем время выполнения
if (!defined('DENY_INI_SET') || (defined('DENY_INI_SET') && !DENY_INI_SET))
{
	if (function_exists('set_time_limit') && ini_get('safe_mode') != '1')
	{
		// 1 час
		@set_time_limit(3600);
	}
}

// Инициализация переменных
$shop_groups_parent_id = to_int($_REQUEST['shop_groups_parent_id']);

$shop_shops_id = to_int($_REQUEST['shop_shops_id']);

$array_of_groups = array();

$array_of_items = array();

if(isset($_REQUEST['export_external_properties_allow_items']))
{
	$export_external_properties_allow_items = true;
}
else
{
	$export_external_properties_allow_items = false;
}

if(isset($_REQUEST['export_external_properties_allow_groups']))
{
	$export_external_properties_allow_groups = true;
}
else
{
	$export_external_properties_allow_groups = false;
}

if(isset($_REQUEST['export_modifications_allow']))
{
	$export_modifications_allow = true;
}
else
{
	$export_modifications_allow = false;
}

$items_external_properties = "";
$groups_external_properties = "";
$warehouses_external_string = "";
$items_external_properties_group_space = "";
$groups_external_properties_item_space = "";
$array_of_groups = array();
$array_of_items = array();

$export_price_separator = to_int($_REQUEST['export_price_separator']);

// Получаем разделитель
switch($export_price_separator)
{
	case 0:
		$export_price_separator = ',';
		break;
	case 1:
	default:
		$export_price_separator = ';';
		break;
	case 2:
		$separator = to_str($_REQUEST['import_price_separator_text']);
		if(trim($separator) != '')
		{
			$export_price_separator = $separator;
		}
		else
		{
			$export_price_separator = ';';
		}
		break;
}


if($export_external_properties_allow_items)
{
	// Необходимо экспортировать дополнительные свойства товара
	$item_property_list_res = $shop_class->GetAllListProperties($shop_shops_id);

	if($item_property_list_res)
	{
		while($item_property_list_row = mysql_fetch_assoc($item_property_list_res))
		{
			if(to_int($item_property_list_row['shop_list_of_properties_type']) == 1)
			{
				$items_external_properties .= $export_price_separator . '"' . $item_property_list_row['shop_list_of_properties_name'] . '"' . $export_price_separator . '"' . $GLOBALS['MSG_shops']['import_small_images'] . $item_property_list_row['shop_list_of_properties_name'] . '"';
				
				$items_external_properties_group_space .= $export_price_separator . '""' . $export_price_separator . '""';
			}
			else
			{
				$items_external_properties .= $export_price_separator . '"' . $item_property_list_row['shop_list_of_properties_name'] . '"';
				
				$items_external_properties_group_space .= $export_price_separator . '""';
			}
		}
	}
}



if($export_external_properties_allow_groups)
{	
	// Необходимо экспортировать дополнительные свойства групп товаров
	$query = "SELECT * FROM `shop_properties_group_table` WHERE `shop_shops_id`='$shop_shops_id'";

	$dir_properties_res = $DataBase_class->query($query);

	if($dir_properties_res)
	{
		while($dir_properties_row = mysql_fetch_assoc($dir_properties_res))
		{
			//$ext_group_property_string .= $export_price_separator . '"' . $dir_properties_row['shop_properties_group_name'] . '"';
			if(to_int($dir_properties_row['shop_properties_group_type']) == 1)
			{
				$groups_external_properties .= $export_price_separator . '"' . $GLOBALS['MSG_shops']['import_big_group_images'] . $dir_properties_row['shop_properties_group_name'] . '"' . $export_price_separator . '"' . $GLOBALS['MSG_shops']['import_small_group_images'] . $dir_properties_row['shop_properties_group_name'] . '"';
				
				
				
				$groups_external_properties_item_space .= $export_price_separator . '""' . $export_price_separator . '""';
			}
			else
			{
				$groups_external_properties .= $export_price_separator . '"' . $dir_properties_row['shop_properties_group_name'] . '"';
				
				$groups_external_properties_item_space .= $export_price_separator . '""';
			}
		}
	}
}

// Получаем список складов, принадлежащих этому магазину
$aWarehouses = $warehouse_class->GetAllWarehousesForShop($shop_shops_id);

if($aWarehouses)
{	
	foreach ($aWarehouses as $warehouses_row)
	{	
		$warehouses_external_string .= $export_price_separator . "Склад \"{$warehouses_row['shop_warehouse_name']}\"";
	}
}

getGroupsID($array_of_groups, $shop_groups_parent_id, $shop_shops_id);

// Начинаем отправлять заголовки
header("Pragma: public");
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename = " . 'CSV_' .date("Y_m_d_H_i_s").'.csv'. ";");
header("Content-Transfer-Encoding: binary");

// Выводим заголовок CSV
$sLine = '"Название раздела"'.$export_price_separator.'"CML GROUP ID идентификатор группы товаров"'.$export_price_separator.'"CML GROUP ID идентификатор родительской группы товаров"'.$export_price_separator.'"Заголовок раздела(title)"'.$export_price_separator.'"Описание раздела(description)"'.$export_price_separator.'"Ключевые слова раздела(keywords)"'.$export_price_separator.'"Описание раздела"'.$export_price_separator.'"Путь для раздела"'.$export_price_separator.'"Порядок сортировки раздела"'.$export_price_separator.'"Название товара"'.$export_price_separator.'"Описание товара"'.$export_price_separator.'"Артикул товара"'.$export_price_separator.'"Артикул родительского товара"'.$export_price_separator.'"Текст для товара"'.$export_price_separator.'"Вес товара"'.$export_price_separator.'"Тип товара"'.$export_price_separator.'"Метки"'.$export_price_separator.'"Цена товара"'.$export_price_separator.'"Активность товара"'.$export_price_separator.'"Порядок сортировки товара"'.$export_price_separator.'"Путь к товару"'.$export_price_separator.'"Идентификатор налога для товара"'.$export_price_separator.'"Идентификатор валюты"'.$export_price_separator.'"Название продавца"'.$export_price_separator.'"Название производителя"'.$export_price_separator.'"Название единицы измерения"'.$export_price_separator.'"Заголовок (title)"'.$export_price_separator.'"Значение мета-тега description для страницы с товаром"'.$export_price_separator.'"Значение мета-тега keywords для страницы с товаром"'.$export_price_separator.'"Флаг индексации"'.$export_price_separator.'"Флаг ""Экспортировать в Яндекс.Маркет"""'.$export_price_separator.'"Флаг ""Экспортировать в Рамблер-Покупки"""'.$export_price_separator.'"Яндекс.Маркет основная расценка"'.$export_price_separator.'"Яндекс.Маркет расценка для карточек моделей"'.$export_price_separator.'"Дата"'.$export_price_separator.'"Дата публикации"'.$export_price_separator.'"Дата завершения публикации"'.$export_price_separator. '"Файл изображения для товара"' . $export_price_separator . '"Файл малого изображения для товара"' . $export_price_separator . '"Цена товара от"' . $export_price_separator . '"Цена товара до"' . $export_price_separator . '"Значение цены"' . $export_price_separator . '"Процент от цены"'  . $export_price_separator . '"CML ID идентификатор товара"' . $export_price_separator . '"Идентификатор пользователя сайта"' . $items_external_properties . $groups_external_properties . $warehouses_external_string . "\r\n";
 
// Конвертируем в нужную кодировку
echo CorrectToEncoding($sLine, $_REQUEST['export_price_encoding']);

// Очищаем переменные
$items_external_properties = "";
$groups_external_properties = "";
$warehouses_external_string = "";

// Сбрасываем счетчик ресурса
if(isset($dir_properties_res) 
&& $dir_properties_res 
&& mysql_num_rows($dir_properties_res) > 0)
{
	mysql_data_seek($dir_properties_res, 0);
}

// Начинаем экспорт групп
foreach ($array_of_groups AS $group_id)
{
	$metadata = $shop_class->GetGroup($group_id, array('cache_off' => true));

	if ($metadata)
	{
	
		$id_group = $metadata['shop_groups_cml_id'];

		if ($id_group == '')
		{
			// Генерируем идентификатор группы CommerceML
			$id_group = GenCmlId($metadata['shop_groups_id']);
		}

		$id_parent_group = $metadata['shop_groups_parent_id'];
		
		// Получаем название родительской группы
		$group_row = $shop_class->GetGroup($id_parent_group, array('cache_off' => true));

		$id_parent_group_cml = $group_row['shop_groups_cml_id'];
		
		if ($id_parent_group_cml == '')
		{
			// Генерируем идентификатор родительской группы CommerceML
			$id_parent_group_cml = GenCmlId($id_parent_group);
		}

		$shop_groups_name = str_replace('"', '""',$metadata['shop_groups_name']);
		$shop_groups_description = str_replace('"', '""',$metadata['shop_groups_description']);
		$shop_groups_path = $metadata['shop_groups_path'];
		
		$shop_groups_order = $metadata['shop_groups_order'];
		
		$shop_groups_seo_title = str_replace('"', '""',$metadata['shop_groups_seo_title']);
		
		$shop_groups_seo_description = str_replace('"', '""',$metadata['shop_groups_seo_description']);
		
		$shop_groups_seo_keywords = str_replace('"', '""',$metadata['shop_groups_seo_keywords']);
		
		
		
		if($export_external_properties_allow_groups)
		{
			// Необходимо вывести информацию о значении каждого дополнительного свойства для текущей группы, если значения нет, подставляем пустоту
			while($dir_properties_row = mysql_fetch_assoc($dir_properties_res))
			{
				$property_value_row = $shop_class->GetPropertiesGroupValue(array(
				'shop_groups_id' => $group_id,
				'shop_properties_group_id' => $dir_properties_row['shop_properties_group_id']
				));
				
				if($property_value_row)
				{
					// Значение найдено, если это файл, необходимо построить путь к нему
					if(to_int($dir_properties_row['shop_properties_group_type']) == 1)
					{
						// Генерируем полный путь к файлу
						$uploaddir = $shop_class->GetGroupDir($group_id);
						$groups_external_properties .= $export_price_separator . '"' . $uploaddir . $property_value_row['shop_properties_group_value_file'] . '"' . $export_price_separator . '"' . $uploaddir . $property_value_row['shop_properties_group_value_file_small'] . '"';
					}
					// Если тип свойства - список
					elseif($dir_properties_row['shop_properties_group_type'] == 2)
					{
						if(class_exists('lists'))
						{
							// Проверяем, есть ли у нас класс списков
							$sql = "SELECT * FROM `lists_items_table` WHERE `lists_items_id`='{$property_value_row['shop_properties_group_value_value']}' AND `lists_id`='{$dir_properties_row['lists_id']}'";
							
							$value_res = $DataBase_class->query($sql);
							
							if($value_res)
							{
								$value_row = mysql_fetch_assoc($value_res);
							}
							
							if($value_row)
							{
								$groups_external_properties .= $export_price_separator . '"' . $value_row['lists_items_value'] . '"';
							}
							else
							{
								$groups_external_properties .= $export_price_separator . '""';
							}
						}
					}
					elseif($dir_properties_row['shop_properties_group_type'] == 4)
					{
						$groups_external_properties .= $export_price_separator . '"' . str_replace('"', '""', $property_value_row['shop_properties_group_value_value']) . '"';
					}
					// иначе просто выводим значение свойства 
					else
					{
						/* $groups_external_properties .= $export_price_separator . '"' . $property_value_row['shop_properties_group_value_value'] . '"'; */
						$groups_external_properties .= $export_price_separator . '"' . str_replace('"', '""', $property_value_row['shop_properties_group_value_value']) . '"';
					}
				}
				else
				{
					// Значение не найдено
					$groups_external_properties .= $export_price_separator . '""';
				}
			}
		}
		
		$sLine = '"' . $shop_groups_name . '"'.$export_price_separator.'"' . $id_group . '"'.$export_price_separator.'"' . $id_parent_group_cml . '"'.$export_price_separator.'"'.$shop_groups_seo_title.'"'.$export_price_separator.'"'.$shop_groups_seo_description.'"'.$export_price_separator.'"'.$shop_groups_seo_keywords.'"'.$export_price_separator.'"' . $shop_groups_description . '"'.$export_price_separator.'"' . $shop_groups_path .'"' .  $export_price_separator . '"' .$shop_groups_order .'"'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'. $items_external_properties_group_space . $export_price_separator . '""' . $groups_external_properties . $warehouses_external_string . "\r\n";

		// Конвертируем в нужную кодировку
		echo CorrectToEncoding($sLine, $_REQUEST['export_price_encoding']);
		
		if(isset($dir_properties_res) 
		&& $dir_properties_res 
		&& mysql_num_rows($dir_properties_res) > 0)
		{
			mysql_data_seek($dir_properties_res, 0);
		}
		
		$groups_external_properties = '';
	}
	
	if (isset($shop->MasGroup[$group_id]))
	{
		unset($shop->MasGroup[$group_id]);
	}
	
	flush();
}

// Очищаем кэш
$shop_class->MasGroup = array();
$shop_class->CacheGoupsIdTree = array();

// Сбрасываем счетчик ресурса
if(isset($item_property_list_res) 
&& $item_property_list_res 
&& mysql_num_rows($item_property_list_res) > 0)
{
	// Возвращаем указатель набора данных в начало
	mysql_data_seek($item_property_list_res, 0);
}

$where_case = "";

// Для корня условия по группам в SQL-запрос не дописываем
if ($shop_groups_parent_id && count($array_of_groups) > 0)
{
	$where_case = " AND `shop_groups_id` IN (" . implode(',' , $array_of_groups) . ")";
}

// Получаем идентификаторы товаров
$sql = "SELECT * FROM `shop_items_catalog_table`
WHERE `shop_shops_id`='$shop_shops_id' {$where_case}";

$result = $DataBase_class->query($sql);

if($result)
{
	while($row = mysql_fetch_assoc($result))
	{
		$array_of_items[] = $row['shop_items_catalog_item_id'];
	}
}

$array_of_items = implode(",", $array_of_items);

if($array_of_items == '')
{
	$array_of_items = 0;
}

$ext_mod_query = " AND `shop_items_catalog_modification_id`='0' ";

if($export_modifications_allow && $array_of_items != 0)
{
	$ext_mod_query = " OR `shop_items_catalog_modification_id` IN ($array_of_items) ";
}

// Финальный запрос на выборку товаров и модификаций товаров
$query = "SELECT * FROM `shop_items_catalog_table`
WHERE `shop_shops_id`='$shop_shops_id'
AND (`shop_items_catalog_item_id` IN ($array_of_items)
$ext_mod_query) ORDER BY `shop_items_catalog_modification_id` ASC";

$items_res = $DataBase_class->query($query);


// Начинаем экспорт товаров
while ($item_data = mysql_fetch_assoc($items_res))
{
	$item_id = $item_data['shop_items_cml_id'];

	if ($item_id == '')
	{
		$item_id = GenCmlId($item_data['shop_items_catalog_item_id']);
	}

	//$id_parent_item = GenCmlId($item_data['shop_groups_id']);
	
	$id_parent_group = $item_data['shop_groups_id'];
		
	$group_row = $shop_class->GetGroup($id_parent_group, array('cache_off' => true));

	$id_parent_item = $group_row['shop_groups_cml_id'];
	
	if ($id_parent_item == '')
	{
		// Генерируем идентификатор родительской группы CommerceML
		$id_parent_item = GenCmlId($item_data['shop_groups_id']);
	}

	// Получаем имя продавца
	$seller_row = $shop_class->GetSeller($item_data['shop_sallers_id']);
	
	// Получаем название производителя
	$producer_row = $shop_class->GetProducer($item_data['shop_producers_list_id']);
	
	// Получаем название единицы измерения
	$mesures_row = $shop_class->GetMesure($item_data['shop_mesures_id']);
	
	$items_external_properties = '';
	
	if($export_external_properties_allow_items)
	{
		// Получаем данные о дополнительных свойствах товара
		while($item_property_list_row = mysql_fetch_assoc($item_property_list_res))
		{
			$item_ids = $item_data['shop_items_catalog_item_id'];
			$property_ids = $item_property_list_row['shop_list_of_properties_id'];
			
			$query = "SELECT * FROM `shop_properties_items_table` 
			WHERE `shop_items_catalog_item_id`='$item_ids'
			AND `shop_list_of_properties_id`='$property_ids'";
			
			$res = $DataBase_class->query($query);
			//shop_properties_items_file
			if($res && mysql_num_rows($res) == 1 && $row = mysql_fetch_assoc($res))
			{
				// Проверяем, если тип свойства - файл, составляем полный путь к файлу от папки UPLOADDIR
				if(to_int($item_property_list_row['shop_list_of_properties_type']) == 1)
				{
					// Генерируем полный путь к файлу
					$uploaddir = $shop_class->GetItemDir($item_ids);
				
					// Необходимо проверить, хранится ли оригинальное имя изображения или оно генерируется автоматически
					$shop_row = $shop_class->GetShop($shop_shops_id);
					
					/* if($shop_row['shop_shops_file_name_conversion'] == 0)
					{ */
					/* $items_external_properties .= $export_price_separator . '"' . $uploaddir . $row['shop_properties_items_file'] . '"'; */
					
					if(to_str($row['shop_properties_items_file']) != "")
					{
						$items_external_properties .= $export_price_separator . '"' . $uploaddir . $row['shop_properties_items_file'] . '"';
					}
					else
					{
						$items_external_properties .= $export_price_separator . '""';
					}
					
					if(to_str($row['shop_properties_items_file_small']) != "")
					{
						$items_external_properties .= $export_price_separator . '"' . $uploaddir . $row['shop_properties_items_file_small'] . '"';
					}
					else
					{
						$items_external_properties .= $export_price_separator . '""';
					}
				}
				// Если тип свойства - список
				elseif(to_int($item_property_list_row['shop_list_of_properties_type']) == 2)
				{
					// Проверяем, есть ли у нас класс списков
					if(class_exists('lists'))
					{
						$lists = & singleton('lists');
						
						$sql = "SELECT * FROM `lists_items_table` WHERE `lists_items_id`='{$row['shop_properties_items_value']}' AND `lists_id`='{$item_property_list_row['lists_id']}'";
						
						$value_res = $DataBase_class->query($sql);
						
						if($value_res)
						{
							$value_row = mysql_fetch_assoc($value_res);
						}
						
						if($value_row)
						{
							$items_external_properties .= $export_price_separator . '"' . $value_row['lists_items_value'] . '"';
						}
						else
						{
							$items_external_properties .= $export_price_separator . '""';
						}
					}
					else
					{
						$items_external_properties .= $export_price_separator . '""';
					}
				}
				else
				{
					// Свойство доступно для товара, выводим его значение, предварительно продублировав символ ограничителя
					$items_external_properties .= $export_price_separator . '"' . str_replace('"', '""', $row['shop_properties_items_value']) . '"';
				}
			}
			else
			{
				 // Свойство НЕ ЗАДАНО для товара
				// Проверяем, если тип свойства - файл, составляем полный путь к файлу от папки UPLOADDIR
				if(to_int($item_property_list_row['shop_list_of_properties_type']) == 1)
				{
					$items_external_properties .= $export_price_separator . '""' . $export_price_separator . '""';
				}
				else
				{
					$items_external_properties .= $export_price_separator . '""';
				}
			}
		}
	}
	
	if(isset($item_property_list_res) 
	&& $item_property_list_res 
	&& mysql_num_rows($item_property_list_res) > 0)
	{
		mysql_data_seek($item_property_list_res, 0);
	}
	
	// Генерируем пути для основных изображений товара
	$uploaddir = $shop_class->GetItemDir($item_data['shop_items_catalog_item_id']);
	
	if($item_data['shop_items_catalog_image'] != '')
	{
		$big_image_full_path = $uploaddir . $item_data['shop_items_catalog_image'];
	}
	else
	{
		$big_image_full_path = '';
	}
	
	if($item_data['shop_items_catalog_small_image'] != '')
	{
		$small_image_full_path = $uploaddir . $item_data['shop_items_catalog_small_image'];
	}
	else
	{
		$small_image_full_path = '';
	}
	
	$mod_string = '';
	
	if(to_int($item_data['shop_items_catalog_modification_id']) != 0)
	{
		// Необходимо получит артикул родительского товара
		$item_row = $shop_class->GetItem($item_data['shop_items_catalog_modification_id']);
	
		$mod_string = $item_row['shop_items_catalog_marking'];
	}

	$warehouses_external_string = '';
		
	/////////////////////////////////////
	if($aWarehouses)
	{	
		foreach ($aWarehouses as $warehouses_row)
		{	
			$warehouses_external_string .= $export_price_separator . '"' . $warehouse_class->GetItemCountForWarehouse($warehouses_row['shop_warehouse_id'], $item_data['shop_items_catalog_item_id']) . '"';
		}
	}
	
	if (class_exists('Tag'))
	{
		$oTag = & singleton('Tag');

		$tags_array = $oTag->GetTagRelation(array('shop_items_catalog_item_id' => $item_data['shop_items_catalog_item_id']));

		$mytags = array();

		if ($tags_array)
		{
			foreach ($tags_array as $tag)
			{
				$mytags[] = $tag['tag_name'];
			}
		}

		$items_catalog_tags = implode(', ', $mytags);
	}
	else
	{
		$items_catalog_tags = '';
	}
	
	$sLine = '""'.$export_price_separator.'"' . 
	$id_parent_item . '"'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'"' . 
	str_replace('"', '""', $item_data['shop_items_catalog_name']) .'"'.$export_price_separator.'"' . 
	str_replace('"', '""', $item_data['shop_items_catalog_description']) . '"'.$export_price_separator.'"' .
	$item_data['shop_items_catalog_marking'] . '"'.$export_price_separator.'"'.
	$mod_string . '"'.$export_price_separator.'"' . 
	str_replace('"', '""', $item_data['shop_items_catalog_text']) . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_weight'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_type'] .  '"'.$export_price_separator.'"' . 
	$items_catalog_tags . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_price'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_is_active'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_order'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_path'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_tax_id'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_currency_id'] . '"'.$export_price_separator.'"' . 
	str_replace('"', '""', $seller_row['shop_sallers_name']) . '"'.$export_price_separator.'"' . 
	str_replace('"', '""',$producer_row['shop_producers_list_name']) . '"'.$export_price_separator.'"' . 
	str_replace('"', '""',$mesures_row['shop_mesures_name']) . '"'.$export_price_separator.'"' . 
	str_replace('"', '""',$item_data['shop_items_catalog_seo_title']) . '"'.$export_price_separator.'"' . 
	str_replace('"', '""',$item_data['shop_items_catalog_seo_description']) . '"'.$export_price_separator.'"' . 
	str_replace('"', '""',$item_data['shop_items_catalog_seo_keywords']) . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_indexation'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_yandex_market_allow'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_rambler_pokupki_allow'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_yandex_market_bid'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_yandex_market_cid'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_date_time'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_putoff_date'] . '"'.$export_price_separator.'"' . 
	$item_data['shop_items_catalog_putend_date'] . '"'.$export_price_separator.'"' . 
	$big_image_full_path . '"' .$export_price_separator. '"' . $small_image_full_path . '"'.$export_price_separator. '""'.$export_price_separator. '""' .$export_price_separator.'""' .$export_price_separator.'""' .$export_price_separator.'"'.$item_data['shop_items_cml_id'].'"' .$export_price_separator.'"'. $item_data['site_users_id'] .'"' .$items_external_properties . $groups_external_properties_item_space .$warehouses_external_string . "\r\n";
	
	// Нужно получить список всех специальных цен и вывести их вслед за товаром
	$special_price_res = $shop_class->GetAllSpecialPricesForItem($item_data['shop_items_catalog_item_id']);
	
	if($special_price_res)
	{
		while($special_price_row = mysql_fetch_assoc($special_price_res))
		{
			$sLine .= '""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""'.$export_price_separator.'""' . $export_price_separator.'""' . $export_price_separator . '""'.$export_price_separator. '"'.$special_price_row['shop_special_prices_from'].'"' .$export_price_separator.'"'.$special_price_row['shop_special_prices_to'].'"' .$export_price_separator.'"'.$special_price_row['shop_special_prices_price'].'"' .$export_price_separator.'"'.$special_price_row['shop_special_prices_percent'].'"' .$export_price_separator.'"'.$item_data['shop_items_cml_id'].'"'."\r\n";
		}
	}

	// Конвертируем в нужную кодировку
	echo CorrectToEncoding($sLine, $_REQUEST['export_price_encoding']);
	
	$items_external_properties = '';
	
	flush();
	
	if (isset($shop->MasGroup[$item_data['shop_groups_id']]))
	{
		unset($shop->MasGroup[$item_data['shop_groups_id']]);
	}
	
	$shop_class->CacheGetItem = array();
}

exit();

// Пишем рекурсивную функцию для получения идентификаторов групп
function getGroupsID(&$array_of_groups, $shop_groups_parent_id, $shop_shops_id)
{
	$DataBase_class = & singleton('DataBase');
	
	$array_of_groups[] = $shop_groups_parent_id;

	// Получаем все дочерние группы переданной нам группы
	$sql = "SELECT * FROM `shop_groups_table`
	WHERE `shop_groups_parent_id`='$shop_groups_parent_id'
	AND `shop_shops_id`='$shop_shops_id'";
	
	$result = $DataBase_class->query($sql);
	
	if($result)
	{
		while($row = mysql_fetch_assoc($result))
		{
			getGroupsID($array_of_groups, $row['shop_groups_id'], $shop_shops_id);
		}
	}
}

function GenCmlId($shop_groups_id)
{
	$temp = 'ID';

	$shop_groups_id = to_str($shop_groups_id);

	$len = 8 - mb_strlen($shop_groups_id);

	for ($i = 0; $i < $len; $i++)
	{
		$temp .= '0';
	}

	return $temp .= $shop_groups_id;
}
 ?>