2011-05-26 52 views
2

我擔心我偶然發現了未知的Magento領土。我已經精疲力盡了Google搜索功能的剩餘部分了,所以我想我會在這裏嘗試我的運氣。Magento電子郵件模板:塊無法從adminhtml呈現

我們的平臺是Magento Enterprise 1.9.1.1。

我們使用一個古老的打印解決方案,通過ODBC讀取訂單。因此,我們不能直接從Magento的MySQL數據庫中讀取它(由於很有可能發生變化)。我所做的是擴展Mage_Sales_Model_Order,以在返回parent :: _ beforeSave()之前用直接SQL查詢截取_beforeSave()函數到另一個數據庫。有可能有更好的方法來做到這一點,但現在已經完成並且功能強大,而且不管問題出在哪裏。

如果拋出任何SQL錯誤,則會回滾更新,並將錯誤&訂單數據傳遞給將錯誤信息發送到郵件列表的函數。在一個.phtml文件/區域/ EN_US /模板/電子郵件的電子郵件模板文件/調用來處理數據的陣列,像這樣:

{{block type='core/template' area='frontend' template='/email/errors/order/beforesave.phtml' orderdata=$orderdata errors=$errors}} 

這是我的功能從/區域/ EN_US /模板/電子郵件借用/sales/shipment_new.phtml。這也是我打開路障的地方。如果用戶在處理訂單時遇到錯誤,電子郵件會從前端啓動。如果您從adminhtml進行訂單更改,則會發送電子郵件,但不包含上述提到的區塊。

我嘗試過在塊調用中沒有area ='frontend',並且該腳本無論如何表現出相同的行爲。

我認爲這個問題可能出現在我的XML中,儘管從管理員和前端發現模板本身就沒有問題(並且這個模塊不需要在我的XML中定義)。在Magento自己的文件或互聯網上的任何地方,我也找不到這樣的例子。

任何幫助將不勝感激。這是我的頭!

  • 邁克

回答

0

你設置實際的電子郵件模板中的 「區域」?例如:

$emailTemplate = Mage::getModel('core/email_template');  
$emailTemplate 
    ->setDesignConfig(array('area' => 'frontend', 'store' => $storeId)); 
0

可能重複sharing template between frontend and backend (admin or adminhtml) in magento

不要故意重振死去的問題;只是捆綁了鬆散的結局。

@ColinM:我的想法和你的想法一樣,但是不知怎的,這對我沒有任何作用。也許我不明白setDesignConfig()的用途。總之,上面的鏈接對我來說是完美的,與原來的海報相同。