我想從所有訂單中檢索具有特定(自定義)選項值(由客戶在前端提供)的所有產品ID - 無論商店/網站。Magento - 使用特定的自定義選項檢索訂單產品
該選項的文本字段(Mage_Catalog_Model_Product_Option_Type_Text
),該SKU(和標題)是test_option,我期待的值是綠色。
我更喜歡用原始MySQL查詢來做到這一點,但使用Magentos模型/集合的解決方案肯定就足夠了。
我想從所有訂單中檢索具有特定(自定義)選項值(由客戶在前端提供)的所有產品ID - 無論商店/網站。Magento - 使用特定的自定義選項檢索訂單產品
該選項的文本字段(Mage_Catalog_Model_Product_Option_Type_Text
),該SKU(和標題)是test_option,我期待的值是綠色。
我更喜歡用原始MySQL查詢來做到這一點,但使用Magentos模型/集合的解決方案肯定就足夠了。
嘗試用下面的代碼
<?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具有特定(自定義)選項值。
願意幫助你!
對於直接的sql查詢,你可以試試這個。如果你想提出一些條件,你可以根據你的要求添加。
SELECT sfoi.product_id FROM sales_flat_order e
LEFT JOIN
sales_flat_order_item sfoi
ON
(e.entity_id = sfoi.order_id)
我確實在'sales_flat_order_item'表中找到了'product_options'字段。然而,它似乎是JSON編碼的,這會使得使用簡單的MySQL查詢來過濾困難(和低效)。 – Vitamin 2012-02-19 13:50:27