我正在运行 Magento Enterprise 1.9,客户在“我的帐户”的“订单历史记录”部分没有看到任何订单。我已经调试了很多,只是无法弄清楚发生了什么。奇怪的是,在我们的登台服务器上,它工作正常。
到目前为止我所做的:
1)确保<visible_on_front/>
应用于其中的每个订单状态/app/code/core/Mage/Sales/etc/config.xml
(因此它们都应该是可见的)。
2)app\code\core\Mage\Sales\Block\Order\History.php
(查看文件源)从数据库中获取订单并使用$this->setOrders($orders);
. 我已经调试了这个对象并输出了原始 SQL 来得到这个:
SELECT `main_table`.*
FROM `sales_flat_order` AS `main_table`
WHERE ( main_table.customer_id = '4' )
AND ( state IN ( 'new', 'processing', 'complete', 'closed',
'canceled', 'holded', 'payment_review' ) )
这确实为我的测试客户返回了暂存服务器和实时服务器上的订单。
3)app\design\frontend\enterprise\astleyclarke\template\sales\order\history.phtml
(查看文件源)是对应的模板文件,负责输出订单。它使用 抓取订单$_orders = $this->getOrders();
并使用if($_orders->getSize()):
. 正是在这一点上,事情出了问题。实时服务器上报告的大小为 0,尽管当我手动运行 SQL 时,尽管两台服务器都报告了数据库中的订单,但它不在登台服务器上。
所以对我来说,$orders 对象似乎没有被实时服务器上的 phtml 文件正确传递或获取。
非常感谢任何其他想法或帮助。