Closed nagrgkgc closed 4 years ago
PR is here for fix https://github.com/DivanteLtd/magento2-vsbridge-indexer/pull/334
Original query
SELECT e
.*, IF(at_name.value_id > 0, at_name.value, at_name_default.value) AS name
FROM catalog_category_entity
AS e
INNER JOIN catalog_category_entity_varchar
AS at_name_default
ON (at_name_default
.row_id
= e
.entity_id
) AND (at_name_default
.attribute_id
= '45') AND at_name_default
.store_id
= 0
LEFT JOIN catalog_category_entity_varchar
AS at_name
ON (at_name
.row_id
= e
.entity_id
) AND (at_name
.attribute_id
= '45') AND (at_name
.store_id
= 1) WHERE ((e
.entity_id
IN(3, 622, 1717, 595, 1809))) AND (e.created_in <= '1575980700') AND (e.updated_in > '1575980700')
should be
SELECT e
.*, IF(at_name.value_id > 0, at_name.value, at_name_default.value) AS name
FROM catalog_category_entity
AS e
INNER JOIN catalog_category_entity_varchar
AS at_name_default
ON (at_name_default
.row_id
= e
.row_id
) AND (at_name_default
.attribute_id
= '45') AND at_name_default
.store_id
= 0
LEFT JOIN catalog_category_entity_varchar
AS at_name
ON (at_name
.row_id
= e
.row_id
) AND (at_name
.attribute_id
= '45') AND (at_name
.store_id
= 1) WHERE ((e
.entity_id
IN(3, 622, 1717, 595, 1809))) AND (e.created_in <= '1575980700') AND (e.updated_in > '1575980700')
Hi Team,
in file, module-vsbridge-indexer-catalog/Model/ResourceModel/Product/Category.php
private function loadCategoryName(array $loadCategoryIds, $storeId)
should be joining with row_id and not entity_id.
change from $categoryCollection->joinAttribute('name', 'catalog_category/name', 'entity_id');
to
$categoryCollection->joinAttribute('name', 'catalog_category/name', 'row_id');