Sm Shopby无法初始化Reindexer流程

时间:2015-11-16 12:47:58

标签: php magento pdo

我似乎在Magento上有索引问题。所有可用的索引索引都很好,除了一个:

Sm Shopby

通过以下错误编制索引时,我无法确定问题是什么。

var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css');
xhr.addEventListener('load', function() {
    console.log('style loaded', this.responseText);
});
xhr.addEventListener('error', function(e) {
    console.error('style load failed');
});
xhr.send();

我查看了Pdo.php文件,但我并不是百分之百确定我追求的是什么。我尝试了几个问题,设法解决了产品平台数据的问题。类别平面数据,但不是此特定索引。

任何线索?

感谢。

2 个答案:

答案 0 :(得分:8)

n也是这个问题。我把它缩小到了Attribute.php的问题。 打开app / code / local / Sm / Shopby / Model / Resource / Indexer / Attribute.php

在第65行附近,您将找到名为_getAttribute的受保护函数。 从此改变,

 protected function _getAttributes($attributeId = null){
        $collection = Mage::getSingleton('eav/config')
            ->getEntityType(Mage_Catalog_Model_Product::ENTITY)
            ->getAttributeCollection()
            ->addFieldToFilter('`main_table`.`frontend_input`', array('in' => array('select', 'multiselect')));
        if (!empty($attributeId)) {
            $collection->addFieldToFilter('`main_table`.`attribute_id`', $attributeId);
        }

        return $collection;
    }

代替此代码,

 protected function _getAttributes($attributeId = null){
        $collection = Mage::getSingleton('eav/config')
            ->getEntityType(Mage_Catalog_Model_Product::ENTITY)
            ->getAttributeCollection()
            ->addFieldToFilter('main_table.frontend_input', array('in' => array('select', 'multiselect')));
        if (!empty($attributeId)) {
            $collection->addFieldToFilter('main_table.attribute_id', $attributeId);
        }

        return $collection;
    }

改变了什么? 我唯一改变的是删除第69和71行的撇号(')。这意味着'main_table'。'frontend_input'现在变为main_table.frontend_input。现在脚本正确地更新了SQL。在Admin和Shell中都有。

答案 1 :(得分:7)

同样的问题,现在解决了。

'main_table.frontend_input'存在但'`main_table`.`frontend_input`'(在SQL查询中转换为```main_table```.```frontend_input```)没有。

转到Sm_Shopby_Model_Resource_Indexer_Attribute并移除`

更新: Sm_Shopby_Model_Resource_Indexer_Attribute是一个SM Shopby扩展的类。

该文件保留在magento_folder / app / code / ... /Sm/Shopby/Model/Resource/Indexer/Attribute.php中,要更改的函数是_getAttributes。