覗いてみたら
layout/sales.xml:268
レイアウト ハンドル sales_email_order_items が表示されます。内部には、そのテンプレートを持つブロック「order_totals」があります。メールに新しい合計を追加するには、その子として追加するだけです。275 行目に、'tax' という名前のブロックが追加されていることがわかります。
totals.phtml ファイル内で、foreach の一部として $this->getTotals() を呼び出していることがわかります。そのメソッドはで定義されています
Mage/Sales/Block/Order/Totals.php:281
これは、すでに定義されている合計を返すだけです。このデータは、次のように定義された config.xml ファイルによって入力されます。
<global><sales><quote><totals>...
totals.phtml に戻り、合計にブロックが定義されているかどうかを確認します。これは、config.xml ファイル内のフィールドになります。カスタマイズしたい合計モデルがある場合は、そのようにします。
それ以外の場合は、ページがレンダリングされる前に (44 行目の _beforeToHtml() を呼び出します)、子ブロックを反復処理し、メソッド 'initTotals' に応答する場合は、そのメソッドを呼び出します。そのメソッドは、合計を表すオブジェクトを作成し、それを親に追加する必要があります。たとえば、最近書いた合計ブロックのコードは次のとおりです (公開できないコードに基づいています)。
public function initTotals()
{
if ((float)$this->getParentBlock()->getSource()->getMytotalAmount() == 0) {
return $this;
}
$total = new Varien_Object(array(
'code' => $this->getNameInLayout(),
'block_name'=> $this->getNameInLayout(),
'area' => $this->getArea()
));
$after = $this->getAfterTotal();
if (!$after) {
$after = 'subtotal';
}
$this->getParentBlock()->addTotal($total, $after);
return $this;
}
これが役に立ったことを願っています。