1

1つのmagantoインストール(1.4.0.1)があり、いくつかのWebサイトといくつかのストア/ストアビューがあります。また、すべてのストアビューで異なる製品があります。[マイアカウント]->[テーブルの注文]に移動すると、すべてのストアからの注文が表示されます。現在開いているストアビューからの順序でリストを作成するために、どこかで構成したり、コード内の何かを変更したりできますか?

つまり、自分のWebサイトmywebsite.com/store2の注文でストア2にアクセスすると、mywebsite.com / store2 / sales / order / history /すべてのWebサイトからの注文履歴が表示されますが、注文を表示する必要があります「store2」を形成するだけです。

誰かがこの問題または同様の問題に答えてくれることを願っています。助けていただければ幸いです。

ヨルダン

4

2 に答える 2

3

ものすごく単純。

それぞれの販売注文履歴ブロックapp\code \ core \ Mage \ Sales \ Block \ Order\History.phpファイルをローカルコードプールに上書きします

現在のストアIDでコレクションをフィルタリングするだけです。

             $store_id = Mage::app()->getStore()->getId();
             $orders = Mage::getResourceModel('sales/order_collection')
        ->addFieldToSelect('*')
        ->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getCustomer()->getId())
        ->addFieldToFilter('state', array('in' => Mage::getSingleton('sales/order_config')->getVisibleOnFrontStates()))
        ->addFieldToFilter('store_id',$store_id)
        ->setOrder('created_at', 'desc')
    ;

上記のコードのこれらの行に注意してください

        /*Current Store View ID*/
        $store_id = Mage::app()->getStore()->getId();

        /*Filtering the order collection by current store id*/
        ->addFieldToFilter('store_id',$store_id)
于 2013-03-05T09:40:15.503 に答える
2
    /*GetCurrent Website Name*/
    $currentWebsiteName = Mage::app()->getStore()->getWebsite()->getName();        
    $currentWebsiteName_LIKE_PHRASE = '%'.$currentWebsiteName.'%';

    /*Filter the Order Collection by Current Website Name*/
    $orders = Mage::getResourceModel('sales/order_collection')
        ->addFieldToSelect('*')
        ->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getCustomer()->getId())
        ->addFieldToFilter('state', array('in' => Mage::getSingleton('sales/order_config')->getVisibleOnFrontStates()))
        ->addAttributeToFilter('store_name', array('like' => $currentWebsiteName_LIKE_PHRASE))
        ->setOrder('created_at', 'desc');

   /*Note the Below Line*/
   ->addAttributeToFilter('store_name', array('like' => $currentWebsiteName_LIKE_PHRASE))

現在のウェブサイト名でフィルタリングしています。sales_flat_orderテーブルで、この列' store_name 'を表示できます。この列には、Webサイト名も含まれています

残念ながら、このメインの注文テーブルまたは関連するテーブルで、注文コレクションにJOINステートメントを作成するためのWebサイトIDが見つかりません。** _ websiteサフィックス**が付いた注文テーブルがあると思います。その場合は、既存のコレクションに簡単に参加できます。

于 2013-03-06T07:16:29.553 に答える