Получить идентификатор заказа от приобретенного допустимого идентификатора продукта

magento.stackexchange https://magento.stackexchange.com//questions/75538

  •  13-12-2019
  •  | 
  •  

Вопрос

Как я могу получить удостоверение личности заказа от приобретенного нисходящего продукта?

Пожалуйста, проверьте мой код ниже:

$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'];    
    }
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top