Magento在签出成功后自动导出文件
我最近安装了一个Magento模块以CSV格式导出订单,但我需要让Magento在结帐后直接导出我需要的文件 我看到模块使用这种代码进行导出:Magento在签出成功后自动导出文件,magento,csv,export,Magento,Csv,Export,我最近安装了一个Magento模块以CSV格式导出订单,但我需要让Magento在结帐后直接导出我需要的文件 我看到模块使用这种代码进行导出: $file = Mage::getModel('bluejalappeno_orderexport/export_csv')->exportOrders($orders); $this->_prepareDownloadResponse($file, file_get_contents(Mage::getBaseDir('export').'
$file = Mage::getModel('bluejalappeno_orderexport/export_csv')->exportOrders($orders);
$this->_prepareDownloadResponse($file, file_get_contents(Mage::getBaseDir('export').'/'.$file));
$this->_redirect('*/*/');
我尝试将相同的代码粘贴到Success.phtml中,但我收到一个错误,错误是“Invalid method”,我做了一项研究,发现调用该方法的类必须扩展类“Mage_Adminhtml_Controller_Action”,但我不知道如何在phtml文件中实现这一点
有人知道如何或更好地知道实现这一点的不同方法吗
感谢对于另一种方法,您应该使用观察者来附加到订单成功事件,
签出\u onepage\u控制器\u成功\u操作
如果您使用的是onepage签出,似乎是一种不错的方法。查看更多@
要使用观察者,您需要创建自定义模块
<?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
}
}
添加到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>
现在,当您成功执行订单时,它将触发观察器,观察器将触发您的方法,如果您的逻辑正确,它将触发CSV导出
注意\u preparedownloadsresponse
是一种特定于管理员的方法,因此您无法在前端使用它
如果订单处理超时,首先要检查您如何使用$observer
,因为它可能非常大
至于实际的逻辑,很难给您提供建议,因为您已经为我们提供了三行代码,但它应该相当简单。您解决了您的问题吗?我今天才有时间尝试这个方法,它给了我这个错误:致命错误:在第30行调用未定义的方法bluejalapeno\u Orderexport\u Model\u Observer::\u preparedownloadsresponse()在/home/freemaeu/public\u html/app/code/community/bluejalapeno/Orderexport/Model/Observer.php中谢谢您的帮助!我实现了这个,我得到了这个错误:致命错误:调用未定义的方法Bluejalapeno\u Orderexport\u Model\u Observer::\u prepareDownloadResponse()在/home/freemaeu/public\u html/app/code/community/Bluejalapeno/Orderexport/Model/Observer.php的第30行,这肯定与该方法只对管理员可用有关,有没有办法在前端使用它?@黑客66基本上是说这个方法不存在我不认为
\u preparedownloadsresponse()
可以在$this
上访问任何地方,你可能都需要Mage::某物->\u preparedownloadsponse()`我现在也试过了。似乎我无法从外部调用受保护的函数。。致命错误:调用受保护的方法Mage\u Core\u Controller\u Varien\u Action::\u preparedownloadsresponse()来自/home/freemaeu/public\u html/app/code/community/bluejalappno/Orderexport/Model/Observer.php第30行的上下文“Bluejalappno\u Orderexport\u Model\u Observer”,是我唯一一次在网格中使用该方法,可能还有另一种生成下载请求的方法。