你的代碼假定$this->getProduct()
返回Mage_Catalog_Model_Product
對象。
錯誤Fatal error: Call to a member function getId() on a non-object
告訴我們,$this->getProduct()
實際上做不返回任何對象(但可能null
代替)。
模板
app/design/frontend/base/default/template/email/order/items/order/default.phtml
你在說什麼,包括在Mage_Sales_Block_Order_Email_Items_Order_Default
,但是一個faik此塊在默認情況下沒有任何getProduct()
方法。
所以,要麼你錯過了,沒有這樣的方法,或者你已經定義了你自己的方法,並且它不返回一個Mage_Catalog_Model_Product
實例(無論什麼原因)。
編輯:解決這一問題將是你的模板的第一線,從
<?php $_item = $this->getItem() ?>
<?php $_order = $this->getItem()->getOrder() ?>
改變
<?php $_item = $this->getItem() ?>
<?php $_product = Mage::getModel('catalog/product')->load($_item->getProductId()) ?>
<?php $_order = $this->getItem()->getOrder() ?>
此更改後
的一種方式,你可以使用
$_product->getSubtitle()
以獲取您的自定義屬性的值。
如果您爲'catalog_product'實體創建了自定義屬性,那麼' - > getData('subtitle')'(注意getData中的'D')或' - > getSubtitle()'應該可以工作。 –
非常感謝您的回覆!開始認爲我是獨立的。我使用最初發布的代碼得到的錯誤如下'致命錯誤:調用非成員函數上的成員函數getId()'。當我說自定義屬性時,它是我在magento後端創建的屬性。所以我不確定你的意思是'如果你爲catalog_product實體創建了自定義屬性' –
只是爲了確保:你正在談論自定義_attributes_('Catalog - > Attributes - > Manage Attributes - > Add New Attribute' ),但不是關於自定義_variables_('System - > Custom Variables'),對吧? –