我想从所有订单中检索具有特定(自定义)选项值(由前端客户提供)的所有产品ID - 无论商店/网站如何。
该选项是文本字段(Mage_Catalog_Model_Product_Option_Type_Text
),SKU(和标题)是 test_option ,我正在寻找的值是绿色。
我更喜欢使用原始MySQL查询来执行此操作,但使用Magentos模型/集合的解决方案肯定就足够了。
答案 0 :(得分: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。
它可以帮助你!
答案 1 :(得分: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 )