2011-09-12 88 views
0

嗨,我正在一個外部應用程序,它顯示了一個magento商店所有訂購的項目。Magento僅獲得產品SELECTED ATTRIBUTE?

可顯示訂購的產品屬性的查詢是這樣的:

select group_concat(distinct(b.value) separator '<br/>') from catalog_product_entity_varchar a , eav_attribute_option_value b , eav_attribute c 
    where a.value = b.option_id 
    and c.attribute_id = a.attribute_id 
    and c.is_user_defined = 1 
    and a.entity_id = PRODUCT_ID 

這是VARCHAR類型的屬性,我用同樣的查詢來獲取int和文本的屬性。我只是將表名從catalog_product_entity_varchar更改爲catalog_product_entity_int和catalog_product_entity_text。

我遇到的問題是我獲得了所有的產品屬性,製造商,供應商......並且由於我們有很多商店,我不想用附加的sql where子句檢索所有附加屬性!

任何解決方案只獲取選定的屬性?

+0

你總是可以從平板產品表中選擇 –

+0

平板產品表顯示有關產品信息,但並非所有的屬性值 的一個例子就是我要找的,例如我們得到了一個iPhone作爲一個可配置的產品。 它有3個相關的簡單產品 第一:顏色:黑色 - 型號:3 二:顏色:白色 - 型號:4 三:顏色:灰色 - 型號:5 客戶確實購買了第三個 所以我想得到這個:iPhone - 灰色/ 5 相反,我得到了整個屬性(供應商,製造商和一些附加屬性) – Wadii

+0

以及如果你需要購買,然後從訂單相關的平板表中選擇 –

回答

0

以下將抓取PHP中的集合。你只需要改變你選擇的屬性。通過添加 - > addOrderedQty,它可以獲得訂購的數量。現在我明白你正在使用外部應用程序。我發佈的原因是,您可以將Mage.php加載到您的應用程序中,並直接使用它,或者您可以運行一次,然後在數據庫中查看查詢,然後使用該查詢來完成您期望的操作。

$visibility = array( 
         Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH, 
         Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG 
       ); 

$_productCollection = Mage::getResourceModel('reports/product_collection') 
           ->addAttributeToSelect('*') 
           ->addOrderedQty() 
           ->addAttributeToFilter('visibility', $visibility) 
           ->setOrder('ordered_qty', 'desc');