думается мне, что вполне достаточно и того кода который приведен на этом листе наверху....
вот этот
$shop->ShowItem($GLOBALS['shop_item_path']['item'], $xsl_item, $param, $external_propertys);
//Похожие товары
$row = $shop->GetValueItemProperty($GLOBALS['shop_item_path']['item'], 133); //Получаем значение свойства "Материал" текущего товара
$element['type'] = 1;
$element['prefix'] = 'and';
$element['property_id'] = 133;
$element['if'] = '=';
$element['value'] = $row['shop_properties_items_value'];
$element['sufix'] = '';
$param['select'][] = $element;
$param['current_group_id'] = $GLOBALS['shop_item_path']['group'];
$param['items_begin'] = 0;
$param['items_on_page'] = 8; //Количество товаров
$param['NotIn'] = $GLOBALS['shop_item_path']['item']; //Исключаем текущий товар
$shop->ShowShop($current_shop_id, 'ПохожиеТовары', $param);
ведь структура каталога у нас такова что в группе, к которой принадлежит какой либо товар - все товары одного вида.... положим структура пути к группе такова "обувь -> мужская обувь -> полусапоги"...
а значит что в этой группе у нас ТОЛЬКО полусапоги, тоесть аналогичные товары, просто с разными свойствами по типу материала, расмеров, уветов и прочей ереси... и мы будем точно знать что данный скрипт подсунет по допсвойству материал именно полусапоги, а не мокасины(которые лежат в другой группе) или сандалии... или не дай боже женские платформы))))) посему достаточно выбрать пару-тройку основных дополнительных свойств, которые и присобачим к каждому товару... положим это цвет и материал...
хотя, на мой взгляд, чем проще - тем лучше... свести все к одному допсвойству... например к материалу... а цвет - это вторично...
это и упростит и уменьшит размеры кода...