我有一个maganto安装(1.4.0.1),有几个网站和几个商店/商店视图。此外,我在所有商店视图中都有不同的产品。当我去我的帐户时 - >我在表中的订单显示了所有商店的订单。我可以在某个地方配置或在代码中更改某些内容,以便从当前的开放式商店视图中获得订单列表吗?
换句话说,如果我在我的网站mywebsite.com/store2上的商店2 mywebsite.com/store2/sales/order/history/它显示所有网站的订单历史,但我需要我显示订单只是形成“store2”。
我希望有人能回答这个或类似的问题,如果能帮助我,我将不胜感激。
约旦
答案 0 :(得分: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)
答案 1 :(得分: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语句。我认为您可能会有一些带有** _网站后缀**的订单表,如果是这样的话,您可以轻松地将其加入我们现有的收藏品