2011-01-12 93 views
5

Magento有沒有辦法找到包含給定產品的所有訂單?如果可以從管理小組完成,那將會更好。Magento:查找包含產品的訂單

報告 - >產品 - >產品訂購讓我知道產品銷售的日期和訂購數量,但我需要知道哪些特定訂單包含產品。

謝謝!

+1

的[獲取在Magento擴展令有一定的產品列表]可能重複(http://stackoverflow.com/questions/18125638/get-a -Mono-extension-that-have-a-certain-product) – RichardBernards 2014-11-27 11:32:08

+0

也許你應該改變接受的答案...... – RichardBernards 2015-06-10 09:35:05

回答

7

您可以通過簡單的MySQL查詢得到: -

select order_id from sales_flat_order_item where product_id=//given product id 

OR

您可以根據自己的需要自定義報表。

+0

是的,這幾乎是我所嘗試過的。我的錯誤是,因爲我有產品的名稱而不是product_id,所以在「description」字段而不是「name」字段中查找產品名稱。 – fdierre 2011-01-12 14:53:11

+0

如果magento設置爲不使用平面表,這將如何工作? – Benubird 2013-02-22 14:48:53

4

如果你想獲得的,而不是ORDER_ID的increment_id(增量訂單號),你可以簡單地使用此聲明:

SELECT o.increment_id 
FROM sales_flat_order_item oi 
INNER JOIN sales_flat_order o ON o.entity_id = oi.order_id 
WHERE product_id=XXX ORDER BY o.increment_id DESC; 
19

我在回答另一個問題這個問題; Get a list of orders in magento extension that have a certain product

對於快速參考:

$productId = {PRODUCT_ID}; 
$orders = array(); 
$collection = Mage::getResourceModel('sales/order_item_collection') 
    ->addAttributeToFilter('product_id', array('eq' => $productId)) 
    ->load(); 
foreach($collection as $orderItem) { 
    $orders[$orderItem->getOrder()->getIncrementId()] = $orderItem->getOrder(); 
}