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()):
ます。物事がうまくいかないのはこの時点です。SQL を手動で実行したときに両方のサーバーがデータベース内の注文を報告しているにもかかわらず、ステージング サーバーでは報告されたサイズは 0 ですが、ライブ サーバーでは報告されたサイズは 0 です。
だから私には、$ordersオブジェクトがライブサーバー上のphtmlファイルによって正しく渡されたりフェッチされたりしていないようです。
他のアイデアやヘルプは大歓迎です。