Вывод конкретных товаров через ShowShop

#
Вывод конкретных товаров через ShowShop
вообщем есть массив с id товаров например $goodsid

есть код:
$shop = & singleton('shop');
$param['current_group_id'] = false;
$external_propertys = array();
$shop->ShowShop(1,'МагазинКаталогТоваров',$param,$external_propertys);


Возможно ли куда нибудь передать массив с id товаров ну или циклом кому нибудь их перечислить.

Форум и доки перерыл ну все что можно есть и доп параметры и группы и модификации - но не могу найти как по id товара. М.Б. просто пятница

Если кто то встречал подскажите....
#
Re: Вывод конкретных товаров через ShowShop
как самый тупой вариант в лоб - фильтр по основному свойству id товара, с выражением IN в суффиксе.

Похожий по смыслу фильтр, только для элементов инфосистемы, я на днях приводил вот здесь: http://www.hostcms.ru/forums/22/5673/
Заказов не беру. Консультирую редко.
#
Re: Вывод конкретных товаров через ShowShop
я так понимаю $element['value'] = - судамассив;

что то типа:

$element = array();
$element['type']=0;
$element['prefix'] = 'and';
$element['name'] = 'id';
$element['if'] = '=';
$element['value'] = $goodsid; //массив с id товаров
$element['sufix'] = '';
$param['select'][]=$element;


Вот еще как вариант взять массив с id всех товаров исключить из него нужные и передать - $param['NotIn'] Только как то жутко это звучит
#
Re: Вывод конкретных товаров через ShowShop
Воспользовался $param['NotIn']   - передал туда значения товаров обратных от необходимых.
#
Re: Вывод конкретных товаров через ShowShop
denisov999, ну вообще-то я имел в виду не denisov999 писал(а):
$element['value'] = — судамассив;
и уже тем более не denisov999 писал(а):
взять массив с id всех товаров исключить из него нужные и передать — $param['NotIn']
, и совершенно не случайно привел в своем посте ссылку на другую тему, в которую вы, видимо, так и не заглянули. Потому как массив надо передавать не в value а в suffix, "расправленным" в строку и внутри условия IN
Вот так:
// массив с идентификаторами нужных товаров
$items = array(1, 2, 3, 4, 5, 6, 7);
// совершенно не важно, как вы его получите, просто вбив idшники хардкодом,
// или поместите их туда через методы api.
// Я так показал для простоты примера

// если $items определена, если это массив и если он не пустой
if (isset($items) && is_array($items) && sizeof($items)) {
    
    // "раскрываем" массив в строку, через запятую
    $items_string = implode(',', $items);

    $element = array();

    $element['type'] = 0; // фильтр по основному свойству товара
    $element['prefix'] = ' and ('; // префикс
    $element['name'] = 'shop_items_catalog_table.shop_items_catalog_item_id'; // полное название поля, включая название таблицы
    $element['if'] = '>'; // фиктивное условие.
    $element['value'] = '0'; //фиктивное условие.
    
    // а вот тут собственно само условие, задающее вывод только нужных нам товаров!
    // SQL-оператор IN с перечнем нужных идентификаторов в скобках!
    $element['sufix'] = " AND shop_items_catalog_table.shop_items_catalog_item_id IN ({$items_string}) )";

    $property['select'][] = $element; // ну и передаем фильтр в параметры метода ShowShop()

}


Я, кстати, не уверен в необходимости фиктивных значений при фильтрации по основному свойству, вероятно сам фильтр можно переписать и так:
    $element = array();

    $element['type'] = 0; // фильтр по основному свойству товара
    $element['prefix'] = ' and '; // префикс
    $element['name'] = 'shop_items_catalog_table.shop_items_catalog_item_id'; // полное название поля, включая название таблицы
    $element['if'] = ''; // фиктивное условие.
    $element['value'] = ''; //фиктивное условие.
    
    // а вот тут собственно само условие, задающее вывод только нужных нам товаров!
    // SQL-оператор IN с перечнем нужных идентификаторов в скобках!
    $element['sufix'] = " IN ({$items_string}) ";

    $property['select'][] = $element; // ну и передаем фильтр в параметры метода ShowShop()
Заказов не беру. Консультирую редко.
Авторизация