簡體   English   中英

Magento按分級價格為當前客戶群篩選產品集合

[英]Magento filter product collection by tier price for current customer group

如何通過查看是否已設置當前客戶組的價格來過濾產品集合?

我認為我需要查看catalog_product_entity_tier_price表,以查看集合中每個產品的current customer_group_id是否存在條目(如果沒有,則應從集合中排除/過濾該產品),但我可以弄清楚如何做到這一點。

背景:某些客戶群無法使用某些產品,我們正在使用等級價格進行確定(即,是否存在等級價格,是否包含在集合和顯示中,如果沒有,則排除並不顯示)。

任何幫助深表感謝

是的,這應該是可以實現的,但是請不要以表的形式考慮,而是以對象和集合的方式考慮。

Product對象具有getTierPrice方法,該方法使用Factory模式來根據產品類型(簡單,捆綁銷售等)返回層級定價。 該方法在計算等級價格時會檢查當前訪問者的組。

因此,層價格不是經典的Magento的屬性,這意味着您不能按屬性進​​行過濾,而是可以使用集合上的walk函數計算層價格,然后按更新后的值過濾集合。

步行功能的示例可能是:

$collection = Mage::getModel('catalog/product')->getCollection();
$collection->walk('Namespace_Module_Helper_Data::removeStockData',array());

然后在您的Namespace_Module_Helper_Data ,您將得到以下內容:

public static function removeStockData($product = null)
{
    $product->setData('stock_item',null);
    return;
}

或者,您可以通過foreach循環運行集合:

foreach($collection->getItems() as $key => $item){
   if($item->getTierPrice($qty) == $item->getPrice()){  //insert your own criteria
        $collection->removeItemByKey($key);
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM