【问题标题】:Magento help (PHP)Magento 帮助 (PHP)
【发布时间】:2014-03-25 12:55:30
【问题描述】:

我最近尝试在 1.8 上运行 Magento 扩展 - 该扩展与此版本不兼容。但是,我正在尝试解决兼容性问题,所以如果有人有任何意见,那就太好了。

错误本身说:

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

foreach 块是:

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

或者,如果有人可以推荐一个方便的产品附件扩展。

【问题讨论】:

标签: php magento magento-1.8


【解决方案1】:

我刚刚在 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 关系(相关、交叉销售、追加销售),但您可以轻松添加其他类型的 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,
);

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

【讨论】:

  • 你是明星!我正在使用 Simple Configurable Products 扩展,它也重写了 Mage_Catalog_Model_Product - 完全忘记了我正在使用它!将 Anais_Accessories 更改为依赖它就可以了。非常感谢
  • @ChristopherThrower 为了安全起见,请检查简单可配置产品扩展是否仍能正常运行。
  • 似乎运行正常。顺便说一句 - 产品附件数据是否出现在产品导出中,我在那里看不到任何东西
  • @ChristopherThrower。没有。抱歉,它没有链接到导入/导出功能。您只能从 UI 中使用它(或者您可以根据需要创建导入/导出功能)
  • 不确定如何为此扩展功能,不过我会研究一下 - 我有大约 3,000 种产品需要添加附件,因此通过 CSV 文件执行此操作会更快:-)
猜你喜欢
  • 1970-01-01
  • 2011-01-10
  • 2010-12-30
  • 2012-06-21
  • 2011-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多