magento - reindex类别产品位置

时间:2013-05-14 09:33:38

标签: php mysql magento entity-attribute-value

我开发了一个带有拖放功能的自定义产品分类模块,为了简单和速度,它直接更新到EAV表。我用以下方式保存这个新职位:

$write = Mage::getSingleton('core/resource')->getConnection('core_write');
$write->beginTransaction();

for ($i = 0; $i < sizeof($ids); $i++)
{
    $query = "UPDATE catalog_category_product SET position='".$i."' WHERE product_id='".$ids[$i]."' AND category_id='".$cat."'";
    $write->query($query);
}

$write->commit();

我的问题是我如何只对受影响的更改强制重新索引,以便在前端显示位置排序。

我试图派遣几个不同的事件,例如:

Mage::dispatchEvent('catalog_product_flat_rebuild', array(
    'store_id' => Mage::app()->getStore()->getStoreId(),
    'table'    => Mage::getResourceSingleton('catalog/category_flat')->getMainStoreTable(Mage::app()->getStore()->getStoreId())
));

但是我仍然在前端看到旧的排序顺序,而且这将重新索引完整的平面表,我更愿意重新索引我更改位置的产品ID和类别ID的数组。关于如何实现这一目标的任何想法?

提前致谢!

0 个答案:

没有答案