我正試圖編寫一些自定義邏輯,用於在Magento商店中瀏覽和搜索。Magento的getAttributeText不一致
所以我想我會爲Mage_Catalog_Model_Layer和Mage_CatalogSearch_Model_Layer覆蓋getProductCollection。
我試圖根據某些屬性的值對集合中的某些產品做出決定,但我似乎無法獲取所有屬性的文本值。
的功能,因爲我已經覆蓋是:
public function getProductCollection()
{
if (isset($this->_productCollections[$this->getCurrentCategory()->getId()])) {
$collection = $this->_productCollections[$this->getCurrentCategory()->getId()];
} else {
$collection = $this->getCurrentCategory()->getProductCollection();
$this->prepareProductCollection($collection);
$this->_productCollections[$this->getCurrentCategory()->getId()] = $collection;
}
//ben
$collection->addAttributeToSelect('parent_sku');
$collection->addAttributeToSelect('door_color');
foreach($collection as $product) {
echo "\nSKU: ".$product->getSku()."\n";
$product_data = $product->getData();
if(isset($product_data['parent_sku']) && ($product_data['parent_sku'] != '')) {
echo "GETDATA PARENT: ".$product_data['parent_sku']."\n";
}
if($product->getAttributeText('parent_sku') != '') {
echo "ATTR TEXT PARENT: ".$product->getAttributeText('parent_sku')."\n";
}
if($product->getAttributeText('door_color') != '') {
echo "ATTR TEXT COLOR: ".$product->getAttributeText('door_color')."\n";
}
}
//end ben
return $collection;
}
這將產生輸出,如:
SKU:TEST_SKU_1
GETDATA家長:TEST_SKU_2
ATTR文本顏色:黑色
公告:
我添加'parent_sku'和'door_color'作爲要選擇的屬性。
我可以通過訪問door_color $產品 - > getAttributeText()
使用$產品 - 我不能訪問parent_sku> getAttributeText()
我可以通過$產品 - 訪問parent_sku>的getData()
任何時候,我打電話$ product-> getAttributeText('parent_sku')它返回false。
我認爲這是一個緩存問題,但我沖刷緩存,似乎沒有幫助。
有沒有人有線索爲什麼我不能通過getAttributeText()訪問'parent_sku'的值?
就是這樣。謝謝。 – ben 2011-03-17 21:26:01