16.08.2012 23:41
Я добавил дополнительный атрибут сортировки товара по ID:
$_productCollection = $this->getLoadedProductCollection()->addAttributeToSort('entity_id', 'ASC');
Данный запрос был получен функцией:
$_productCollection->printLogQuery(true);
SELECT `e`.*, `cat_index`.`position` AS `cat_index_position`, `price_index`.`price`, `price_index`.`tax_class_id`, `price_index`.`final_price`, IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`, `price_index`.`min_price`, `price_index`.`max_price`, `price_index`.`tier_price`, IF(availibility_option_value_t2.value_id IS NULL, availibility_option_value_t1.value, availibility_option_value_t2.value) AS `availibility` FROM `catalog_product_entity` AS `e` INNER JOIN `catalog_category_product_index` AS `cat_index` ON cat_index.product_id=e.entity_id AND cat_index.store_id=1 AND cat_index.visibility IN(2, 4) AND cat_index.category_id='5' AND cat_index.is_parent=1 INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id AND price_index.website_id = '1' AND price_index.customer_group_id = 0 LEFT JOIN `catalog_product_entity_int` AS `availibility_t1` ON e.entity_id=availibility_t1.entity_id AND availibility_t1.attribute_id='132' AND availibility_t1.store_id=0 LEFT JOIN `catalog_product_entity_int` AS `availibility_t2` ON e.entity_id=availibility_t2.entity_id AND availibility_t2.attribute_id='132' AND availibility_t2.store_id='1' LEFT JOIN `eav_attribute_option_value` AS `availibility_option_value_t1` ON availibility_option_value_t1.option_id=IF(availibility_t2.value_id > 0, availibility_t2.value, availibility_t1.value) AND availibility_option_value_t1.store_id=0 LEFT JOIN `eav_attribute_option_value` AS `availibility_option_value_t2` ON availibility_option_value_t2.option_id=IF(availibility_t2.value_id > 0, availibility_t2.value, availibility_t1.value) AND availibility_option_value_t2.store_id=1 ORDER BY `availibility` ASC, `e`.`entity_id` ASC LIMIT 30
При выполнении этого запроса через phpMyAdmin результаты всегда верные, сортируются сначала по наличию, потому по ID. Но на выдаче товаров на сайте, всё равно результаты не сортируются по ID