2012-02-19 135 views
2

我想從所有訂單中檢索具有特定(自定義)選項值(由客戶在前端提供)的所有產品ID - 無論商店/網站。Magento - 使用特定的自定義選項檢索訂單產品

該選項的文本字段(Mage_Catalog_Model_Product_Option_Type_Text),該SKU(和標題)是test_option,我期待的值是綠色

我更喜歡用原始MySQL查詢來做到這一點,但使用Magentos模型/集合的解決方案肯定就足夠了。

+0

我確實在'sales_flat_order_item'表中找到了'product_options'字段。然而,它似乎是JSON編碼的,這會使得使用簡單的MySQL查詢來過濾困難(和低效)。 – Vitamin 2012-02-19 13:50:27

回答

0

嘗試用下面的代碼

<?php $collection = Mage::getResourceModel('sales/order_collection'); 
$productIds = array(); 
foreach($collection as $order) { 
    $order = Mage::getModel('sales/order')->load($order->getId()); 
    $items = $order->getAllItems(); 
    foreach ($items as $item){ 
     $proOptions = $item->getProductOptions(); 
     if($proOptions['options']){ 
      $productIds[] = $item->getProductId(); 
     } 
    } 
} 
?> 

$ productIds變量返回所有產品ID具有特定(自定義)選項值。

願意幫助你!

0

對於直接的sql查詢,你可以試試這個。如果你想提出一些條件,你可以根據你的要求添加。

SELECT sfoi.product_id FROM sales_flat_order e 
LEFT JOIN 
sales_flat_order_item sfoi 
ON 
(e.entity_id = sfoi.order_id) 
相關問題