Ок спасибо за ответ, действительно, все по аналогии делается для магазина....
такой вопрос, а как сделать так чтоб выбрались все товары не содержащие этого доп свойства?
Пример:
$newProductsNOT = new Shop_Controller_Show(Core_Entity::factory('Shop', 3));
$newProductsNOT->xsl(Core_Entity::factory('Xsl')->getByName('newProductOfHomeVIP'))->groupsMode('none')->itemsForbiddenTags(array('text'))->group(FALSE)->limit($nextCount);
// Объединение с нужной таблицей свойств
$newProductsNOT->shopItems()->queryBuilder()->leftJoin('shop_item_properties', 'shop_items.shop_id', '=', 'shop_item_properties.shop_id')->leftJoin('property_value_ints', 'shop_items.id', '=', 'property_value_ints.entity_id',array(array('AND' => array('shop_item_properties.property_id', '=', Core_QueryBuilder::expression('`property_value_ints`.`property_id`')))))
// Идентификатор дополнительного свойства
->where('shop_item_properties.property_id', '=', 70)
// Значание дополнительного свойства
->where('property_value_ints.value', '=', '1')
->groupBy('shop_items.id')
// Количество свойств
->having('COUNT(shop_item_properties.shop_id)', '=', 1)->clearOrderBy()->orderBy('shop_items.datetime');
$newProductsNOT
->addEntity(
Core::factory('Core_Xml_Entity')
->name('outCount')
->value("$nextCount")
)
->show();
В данном запросе выбираются товары с доп свойством 70, а нужно выбрать товары у которых этого и еще нескольких свойств нет.