是啊,這應該是可以實現的,但儘量不要去想它在表中的條款,而是作爲對象和集合。
Product對象有一個方法getTierPrice
,它使用Factory模式根據產品類型(Simple,Bundle等)返回層定價。該方法在計算層級價格時檢查當前訪問者的組。
因此,層級價格不是經典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);
}
}
謝謝。雖然我理解你在理論上說的話,但我沒有成功地付諸實踐。你有任何鏈接到實際的代碼示例,可以幫助我瞭解如何做到這一點? – 2011-02-09 19:47:03