至于另一种方法,您应该使用观察者附加到订单成功事件,checkout_onepage_controller_success_action
如果您使用单页结帐,这似乎是一个不错的方法。查看更多@ http://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/
要使用观察者,您需要创建一个自定义模块。
添加到您的 config.xml
<global>
...
<events>
<checkout_onepage_controller_success_action>
<observers>
<namespace_modulename_observer>
<type>model</type>
<class>Namespace_Modulename_Model_Observer</class>
<method>exportCsvOnCheckout</method>
</namespace_modulename_observer>
</observers>
</checkout_onepage_controller_success_action>
</events>
...
</global>
Model/Observer.php
在您的自定义模块中创建。
<?php
class Invent_Healthystart_Model_Observer
{
public function exportCsvOnCheckout($observer)
{
..put your logic here..
Mage::log($observer); // $observer has varying amounts of access to models depending on the event
}
}
现在,当您成功订购时,它将触发观察者,该观察者将触发您的方法,如果您的逻辑正确,它将触发 CSV 导出。
注意_prepareDownloadResponse
是我认为的管理员特定方法,因此您将无法在前端使用它。
如果订单流程超时,首先要检查的是您如何使用它,$observer
因为它可能非常大。
至于实际的逻辑,因为你已经给我们提供了三行代码,所以很难给你建议,但它应该是相当微不足道的。