I just imported products into fresh magento2
instance and encountered issue that category product listing block are empty, although the products successfully appear in database . I have debugged list.phtml
block and dumped the collection query which is:
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`
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='31'
INNER JOIN `cataloginventory_stock_status` AS `stock_status_index` ON e.entity_id = stock_status_index.product_id
AND stock_status_index.website_id = '1'
AND stock_status_index.stock_id = 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
INNER JOIN `search_tmp_58171902857f18_28938044` AS `search_result` ON e.entity_id = search_result.entity_id
WHERE (stock_status_index.stock_status=1)
ORDER BY `cat_index`.`position` ASC LIMIT 9
I tried to run this raw query in in console mysql
and noticed that it fails on this part:
INNER JOIN `search_tmp_58171902857f18_28938044` AS `search_result` ON e.entity_id = search_result.entity_id
which is probably virtual table
without this JOIN
query returns collections as expected
any suggestions for directions of debugging would be much appreciated
PS
cache is turned off, and I have rebuilt indexes via bin/magento indexer:reindex
,
the theme is porto