2012-07-16 82 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; 
}