获取已购买的可下级产品ID的订单ID
-
13-12-2019 - |
题
如何从购买的下级产品中获取订单ID?
请检查我以下代码:
$purchased = Mage::getResourceModel('downloadable/link_purchased_collection')
->addFieldToFilter('customer_id', $customer_id)
->addOrder('created_at', 'desc');
$purchasedItems = Mage::getResourceModel('downloadable/link_purchased_item_collection')
->addFieldToFilter('purchased_id', array('in' => $purchasedIds))
->addFieldToFilter('status',
array(
'nin' => array(
Mage_Downloadable_Model_Link_Purchased_Item::LINK_STATUS_PENDING_PAYMENT,
Mage_Downloadable_Model_Link_Purchased_Item::LINK_STATUS_PAYMENT_REVIEW
)
)
)
->setOrder('item_id', 'desc');
foreach ($items as $item)
{
-- Here I wand to get Order id of each items ---
}
. 解决方案
这不是最好的解决方案,因为它涉及循环中的负载,但它比没有更好。
foreach ($items as $item)
{
$orderItemId = $item->getOrderItemId();
$orderItem = Mage::getModel('sales/order_item')->load($orderItemId);
$orderId = $orderItem->getOrderId();//this is what you need
}
. 其他提示
我认为简单的查询轻松为您工作
$readConnection = Mage::getSingleton('core/resource')->getConnection('core_read');
$sfoi = Mage::getSingleton("core/resource")->getTableName('sales_flat_order_item');
foreach ($items as $item)
{
$itemId=$item->getId();
$query="SELECT order_id FROM $sfoi WHERE item_id=$itemId";
$results = $readConnection->fetchAll($query);
$orderId=$results[0]['order_id'];
}
.