2
我想問你一些能夠幫助我解決問題的信息。 我的目的是從Magento數據庫獲取每個訂單的特定產品數量(訂單必須處於確切的定義狀態)。我使用Magento以外的批處理/腳本,但使用Mage:app。我不知道是否應該從模型開始(這似乎是合乎邏輯的方法,但是同時很慢)或直接在數據庫上工作(這更困難)。在Magento中獲取特定訂單中的產品數量
謝謝你的任何建議。
問候,
我想問你一些能夠幫助我解決問題的信息。 我的目的是從Magento數據庫獲取每個訂單的特定產品數量(訂單必須處於確切的定義狀態)。我使用Magento以外的批處理/腳本,但使用Mage:app。我不知道是否應該從模型開始(這似乎是合乎邏輯的方法,但是同時很慢)或直接在數據庫上工作(這更困難)。在Magento中獲取特定訂單中的產品數量
謝謝你的任何建議。
問候,
查詢數據庫並不複雜:在結果
SELECT *
FROM sales_flat_order o
LEFT JOIN sales_flat_order_item i ON o.entity_id = i.order_id
WHERE o.status IN ('pending', 'processing')
AND i.product_id = <YOUR_PRODUCT_ID>
total_qty_ordered
場將代表訂購數量。
通過模型獲得訂購的商品數量不重或者:
<?php
require_once('app/Mage.php');
umask(0);
Mage::app('default');
$core_resource = Mage::getSingleton('core/resource');
$orders = Mage::getResourceModel('sales/order_collection');
$orders->getSelect()->joinLeft(array('ordered_products' => $core_resource->getTableName('sales/order_item')), 'main_table.entity_id = ordered_products.order_id', array('ordered_products.*'));
$orders->addAttributeToSelect('*')
->addFieldToFilter('status', array('in' => array('pending', 'processing')))
->addAttributeToFilter('main_table.store_id', Mage::app()->getStore()->getId())
->addAttributeToFilter('ordered_products.product_id', array('eq' => '2'));
foreach($orders as $order) {
echo 'Order #' . $order->getId() . ': ' . $order->getData('total_qty_ordered') . '<br/>';
}
第一種方法可能是快,但第二個將磁升級安全的。所以你決定使用哪種方法。
非常感謝您的幫助 – Lormitto 2012-07-20 11:44:24
請檢查更新的magento代碼。現在它可以在一個系列中獲得你所需要的。 – 2012-07-20 12:04:42
還有一個問題。你是否知道在訂單的情況下是否可以通過屬性獲取項目。我想避免foreach並通過自定義屬性獲取特定項目,並且根本不知道是否可能? – Lormitto 2012-07-20 12:14:15