1

我有一个带有多个网站和多个商店/商店视图的 maganto 安装(1.4.0.1)。此外,我在所有商店视图中都有不同的产品。当我进入我的帐户-> 我的订单在表格中显示来自所有商店的订单。我可以在某处配置或更改代码中的某些内容以仅从当前打开的商店视图中列出带有订单的列表吗?

换句话说,如果我在我的网站 mywebsite.com/store2 的订单 mywebsite.com/store2/sales/order/history/ 上去商店 2,它会显示所有网站的订单历史记录,但我需要我显示订单只需形成“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 '这个列,你可以在其中找到它还包含网站名称

不幸的是,我在这个主订单表或其相关表中找不到网站 ID 来对订单集合进行JOIN 语句。我认为您可能有一些带有 **_website后缀**的订单表,如果是这种情况,您可以轻松地将其加入我们现有的集合

于 2013-03-06T07:16:29.553 回答