$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
がありません。getProduct()
したがって、欠落している、そのようなメソッドがない、または独自のメソッドを定義していて、Mage_Catalog_Model_Product
インスタンスを返さない(何らかの理由で)。
編集:
これを修正する1つの方法は、テンプレートの最初の行をから変更することです。
<?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()
カスタム属性の値を取得します。