2011-01-12 20 views
5

Gibt es einen Weg in Magento, alle Bestellungen zu finden, die ein bestimmtes Produkt enthalten? Es wäre noch besser, wenn es von der Verwaltungspanel getan werden könnte.Magento: Bestellungen finden, die ein Produkt enthalten

Berichte -> Produkte -> Produkte bestellt gibt mir den Tag, an dem das Produkt verkauft wurde und wie viele Bestellungen es enthalten, aber ich muss wissen, welche spezifischen Bestellungen das Produkt enthalten.

Vielen Dank!

+1

möglich Duplikat [Hier finden Sie eine Liste der Aufträge in magento-Erweiterung, die ein bestimmtes Produkt haben] (http://stackoverflow.com/questions/18125638/get-a -list-of-orders-in-magento-extension-die-haben-ein-bestimmtes-produkt) – RichardBernards

+0

vielleicht solltest du die angenommene antwort ändern ... – RichardBernards

Antwort

7

Sie können durch einfache mysql Abfrage erhalten: -

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

ODER

Sie können die Berichte anpassen nach Ihren Bedürfnissen.

+0

Yup, das ist fast das was ich versucht habe. Mein Fehler war, da ich den Produktnamen anstelle der Produkt-ID hatte, nach dem Produktnamen in dem Feld "Beschreibung" anstelle des Felds "Name" suchen. – fdierre

+0

Wie würde das funktionieren, wenn Magento keine flachen Tabellen verwendet? – Benubird

+1

@Benubird die Entscheidung, flache Tabellen zu verwenden oder betrifft nicht nur den Katalog, Bestellungen verwenden immer flache Tabellen (zumindest seit einer frühen Version von Magento, vielleicht 1.2) – OSdave

4

Wenn Sie die increment_id (die inkrementelle Bestellnummer) anstelle des order_id erhalten möchten, können Sie einfach diese Anweisung verwenden:

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; 
+0

Obwohl dies ein Jahr später ist, muss ich sagen, dass dies der nützlichere Code in dieser Frage ist, und ich merke, dass ich alle paar Wochen darauf als Referenz zurückkommen werde. Vielen Dank. – James

+0

Schön das zu hören, danke;) – Patrick

19

ich diese Frage in einer anderen Frage beantwortet wurden; Get a list of orders in magento extension that have a certain product

Für schnelle Referenz:

$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(); 
} 
+2

Dies sollte die richtige Antwort sein IMO ... Sie sollten nicht direkt in die Datenbank abfragen, das ist eine viel bessere und elegante Lösung. –

+1

Auch wenn es sich um die richtige Antwort handelte, wäre es besser gewesen, diese Frage als Duplikat zu kennzeichnen, anstatt diese Frage zu beantworten. – Luke

+0

@ Coulton ein bisschen nach dem Schlag, aber zu der Zeit konnte ich nicht markieren ... Daher auf diese Weise – RichardBernards

Verwandte Themen