2016-04-28 6 views
0

Wie bekomme ich alle Magento-Bestellungen von einem bestimmten Kunden mit einem bestimmten Produkt bestellt? Ich habe versucht, die folgenden:Magento Filter Bestellung nach Produkt-ID und Kundennummer

 $customer_id = Mage::getSingleton('customer/session')->getCustomerId(); 
     $customer_eamil = Mage::getSingleton('customer/session')->getCustomerEmail(); 


     $event = $observer->getEvent(); 
     $product = $event->getProduct(); 
     $product->original_price = $product->getPrice(); 
     $productID = $product->getId(); 

     $fromDate = date('Y-m-d H:i:s', strtotime(date('Y-01-01'))); 
     $toDate = date('Y-m-d H:i:s'); 

     $orders = Mage::getResourceModel('sales/order_item_collection') 
      ->addFieldToSelect('*') 
      ->addAttributeToFilter('created_at', array('from'=>$fromDate, 'to'=>$toDate)) 
      ->addAttributeToFilter('product_id', array('eq' => $productID)) 
      ->addAttributeToFilter('customer_id', $customer_id) 
     ; 

Aber alles, was ich bekommen, ist ein Fehler in meinem magento error.log: Ausnahme 'PDOException' mit der Meldung ‚SQLSTATE [42S22]: Column nicht gefunden: 1054 Unknown column 'CUSTOMER_ID' in 'where clause'‘

ich bin mit magent 1.9.2

Dank für Ihre Hilfe danken.

+0

Ist ziemlich offensichtlich ... In Ihrer Datenbank gibt es keine Tabelle mit der Spalte customer_id! – Refilon

+0

ja ich weiß. Aber wie kann ich die beiden Bedingungen kombinieren? –

Antwort

1

Bitte unten Code überprüfen Wunsch Ergebnis zu erhalten:

$customer_id = Mage::getSingleton('customer/session')->getCustomerId(); 
$customer_eamil = Mage::getSingleton('customer/session')->getCustomerEmail(); 

$event = $observer->getEvent(); 
$product = $event->getProduct(); 
$product->original_price = $product->getPrice(); 
$productID = $product->getId(); 

$fromDate = date('Y-m-d H:i:s', strtotime(date('Y-01-01'))); 
$toDate = date('Y-m-d H:i:s'); 

$orders = Mage::getResourceModel('sales/order_item_collection') 
     ->addFieldToSelect('*') 
     ->addAttributeToFilter('created_at', array('from' => $fromDate, 'to' => $toDate)) 
     ->addAttributeToFilter('product_id', array('eq' => $productID)); 

$orders->getSelect()->join(array('sales_order' => Mage::getSingleton('core/resource')->getTableName('sales/order')), 'main_table.order_id = sales_order.entity_id and customer_id=' . $customer_id, array('sales_order.entity_id')); 

echo "<pre>"; 
print_r($orders->getData()); 
exit; 

Bitte Daten am Check-out über Filter in DB verwenden.

+0

als Sie für Ihre Antwort. Es hat nicht funktioniert .. Ich bekomme eine Integritätsbedingung Verletzung: Ausnahme 'PDOException' mit Nachricht 'SQLSTATE [23000]: Integrität Einschränkung Verletzung: 1052 Spalte' created_at 'in Where-Klausel ist mehrdeutig' –

+0

Bitte entfernen Sie created_at und versuchen Sie dies einmal, weil über Skript hier arbeiten. – Nits

Verwandte Themen