я имею в виду следующее: что не стоит усложнять задачу там где это совершенно не нужно...
и предлагаю сделать следующее: хорошенько подумать и отобрать минимальное количество дополнительных свойств, которые можно назначить абсолютно всем товарам интернет магазина (за исключением электронного и прочее..)...
на вскидку на ум приходят материал (из чего сделан) и цвет ...
можно найти и еще несколько УНИВЕРСАЛЬНЫХ свойств, но это уже дело вашего желания....
идея такова - эти допсвойства есть у каждого вида товара, следовательно не надо будет для одного вида товаров вводить одни допсвойства, для другой категории другие свойства, для третьей - третьи и так далее до бесконечности...
в итоге на весь интернет-магазин имеем всего пару-тройку свойств, которые отвечают за вывод аналогичного товара...
ведь если помните, то по предложенной мной структуре каталога у вас внутри группы лежат однотипный товар, который отличается от товара лежащего в той же группе - только значениями свойств, как основных отобранных нами как свойства по которым будет выбираться аналогичность (материал и цвет), так и другие свойства...
и вот данный код в карточке товара покажет именно аналогичный товар, тоесть с тем же материалом..
или если добавить в код - и того же цвета....
причем все необходимое для данного кода на 2 странице есть, простой копипаст, разве только айди свойства основного свой проставить)
к примеру:
имеются у товаров 2 основных свойства для вывода аналогичных... это цвет и материал....
они заведены у нас как 130 и 131 соответственно....
следовательно код должен быть примерно таким (уж извините, сам проверить у себя не могу... у меня настолько сильно переработана структура, что вывести аналоги просто некуда)))
$row = $shop->GetValueItemProperty($GLOBALS['shop_item_path']['item'], 130);
$element['type'] = 1;
$element['prefix'] = ' or ';
$element['property_id'] = 130;
$element['if'] = '=';
$element['value'] = $row['shop_properties_items_value'];
$element['sufix'] = '';
$param['select'][] = $element;
$row = $shop->GetValueItemProperty($GLOBALS['shop_item_path']['item'], 131);
$element['type'] = 1;
$element['prefix'] = ' or ';
$element['property_id'] = 131;
$element['if'] = '=';
$element['value'] = $row['shop_properties_items_value'];
$element['sufix'] = ')'; //Суффикс для последнего свойства в списке
$param['select'][] = $element;
$param['sql_group_by'] = "GROUP BY shop_items_catalog_table.shop_items_catalog_item_id ";
$param['sql_having'] = "HAVING COUNT(shop_properties_items_table.shop_properties_items_id) = 2"; //2 - общее количество доп. свойств
$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);