2014-03-25 123 views
0

我最近试图在1.8上运行Magento扩展 - 扩展与此版本不兼容。不过,我正在努力解决兼容性问题,所以如果任何人有任何可能会很棒的意见。Magento帮助(PHP)

错误本身说:

为的foreach()在/app/code/community/Anais/Accessories/Block/Adminhtml/Catalog/Product/Edit/Tab/Accessories.php上提供参数无效线254

在foreach块是:

foreach (Mage::registry('current_product')->getAccessoriesProducts() as $product) { 
    $products[$product->getId()] = array('position' => $product->getPosition()); 
} 

替代地,如果任何人都可以推荐产品附件,这将是很方便的扩展。

+0

你对我们要建议的扩展的要求是什么? –

+0

请阅读http://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx(“问题标题”) - 谢谢! – reto

+0

@PavanKumar需求是,它需要用于产品配件(工作方式与相关产品相同,Upsells和Cross销售),但用于显示配件。 –

回答

4

我刚刚测试了CE-1.8.1上的扩展,它运行平稳。
清除缓存并禁用编译,然后重试。
另请注意,扩展程序会重写Mage_Catalog_Model_Product类(产品型号)。

我知道这不是一个好的方法(不是我最好的工作,我可能会说 - 但我开发这个,而我仍然学习很多)。检查您是否有其他扩展程序重写该模型。

你可以用一个看起来像这样的简单php代码来检查。

echo get_class(Mage::getModel('catalog/product')); 

如果你打印的是Mage_Catalog_Model_Product那么它肯定是缓存问题。

如果您收到Anais_Accessories_Model_Product,那么扩展名确实有问题。

如果您还有其他内容,例如Namespace_Module_Catalog_Product,那么您有另一个扩展名来重写产品型号。

为了解决这个问题,您需要使Anais_Accessories扩展名取决于重写产品型号的扩展名。
为此,在app/etc/modules/Anais_Accessories.xml中添加以下代码作为<active>标记的同级。

<depends> 
    <Namespace_Module /> <!-- put here the name of the extension that rewrites the product model --> 
</depends> 

然后,你需要做的Anais_Accessories扩展的产品模型扩展您从echo声明得到了上面的模型。

编辑app/code/community/Anais/Accessories/Model/Product.php和替换

class Anais_Accessories_Model_Product extends Mage_Catalog_Model_Product{ 

class Anais_Accessories_Model_Product extends Namespace_Module_Catalog_Product{ //make it extend the value you got from the echo statement above. 

有...这应该涵盖所有的情况下,你仍然得到保持和使用您的是重写的产品型号其他分机(如果你有)。

[编辑]

有点偏离主题,但它是太长,不适合在注释:

有关产品的关系,我可以推荐你这个扩展的快速导入:https://github.com/tzyganu/ProductRelationsImport。它仅适用于默认的Magento关系(相关,crosssels,加售),但您可以轻松添加其他类型的pf关系。只需从app/code/community/Easylife/Relations/Model/Import/Relation.php编辑方法getAllOptions,然后添加一个像其他人一样的新关系。

$this->_options[] = array(
    'label' => Mage::helper('easylife_relations')->__('Accessories'), 
    'value' => Anais_Accessories_Model_Product_Link::LINK_TYPE_ACCESSORIES, 
); 

但是在尝试之前备份你的db。它仍处于测试阶段。

+0

你是明星! 我正在使用简单配置产品扩展,它也重写了Mage_Catalog_Model_Product - 完全忘记了我正在使用它! 更改Anais_Accessories取决于已完成的技巧。非常感谢您 –

+0

@ChristopherThrower为了安全起见,请检查简单可配置产品扩展是否仍然应该如此。 – Marius

+0

似乎运作良好。撇开 - 产品配件数据是否出现在产品出口中,我看不到 –