2014-03-25 166 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

似乎運作良好。撇開 - 產品配件數據是否出現在產品出口中,我看不到 –