Obtenha o ID do pedido do ID do produto adquirido para download
-
13-12-2019 - |
Pergunta
Como posso obter o ID do pedido do produto adquirido para download?
Por favor, verifique meu código abaixo:
$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 ---
}
Solução
Esta não é a melhor solução porque envolve ter uma carga em loop, mas é melhor que nada.
foreach ($items as $item)
{
$orderItemId = $item->getOrderItemId();
$orderItem = Mage::getModel('sales/order_item')->load($orderItemId);
$orderId = $orderItem->getOrderId();//this is what you need
}
Outras dicas
Acho que uma consulta simples funciona facilmente para você
$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'];
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange