2012-07-16 83 views
1

我正在为商店创建一些新的电子邮件模板。Magento,新订单电子邮件模板总数

我有模板95%的工作我唯一的问题是,在表中显示的订单项目,我似乎无法找到合计拉入文件,链接到显示下面的问题的图像。

enter image description here

当然,我希望能够增加一些内嵌代码到这个领域,由于它是为电子邮件,也改变左边的标签。我已经成功地跟踪总计面积下降到以下文件

模板/销售/订单/ totals.phtml

我不知所措我以什么文件,这然后调用。

回答

3

如果您在

layout/sales.xml:268 

看你会看到布局手柄sales_email_order_items。里面有一个块“order_totals”,它有该模板。要添加新的电子邮件地址,您只需将其添加为该电子邮件的子项即可。在第275行,你可以看到他们添加了一个名为“税”的块。

在totals.phtml文件中,你可以看到它调用$ this-> getTotals()作为foreach的一部分。该方法定义为

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; 
}