Magento – Recuperando o último pedido (last order) de seu Magento

magento-imagem-pedido-01

Recuperar o último pedido (last order) é algo recorrente no desenvolvimento Magento, principalmente no desenvolvimento de extensões.

Para conseguir acessar informações de quem comprou, informações de entrega, dos produtos comprados e outras informações, você irá precisar obter o objeto do seu pedido em questão. Há diversos caminhos para recuperar o último pedido.

Pegar pedido através da sessão do checkout

$lastOrderId = Mage::getSingleton('checkout/session')
 ->getLastRealOrderId();

$order = Mage::getModel('sales/order')
 ->loadByIncrementId($lastOrderId);

Dessa forma você irá recuperar o id do último pedido (order) e irá carregar o pedido através do método ‘loadByIncrementId()’.

Caso você esteja codificando no admin, a sessão de checkout não irá existir e esse método não irá funcionar.

Pegar pedido através do model

Dessa forma você irá recuperar todos os pedidos do magento.

Porém utilizando collection fica fácil ordenar os pedidos e recuperar apenas o último pedido que você deseja.

$orders = Mage::getModel('sales/order')->getCollection()
 ->setOrder('increment_id','DESC')
 ->setPageSize(1)
 ->setCurPage(1);

$order = $orders->getFirstItem();

Caso você queira listar todos os pedidos, você não precisa limitar o collection com o método ‘getFirstItem()’ e apenas ordene o mesmo.

Se você precisa apenas do ID dos pedidos na sua loja, utilize o método ‘getEntityId()’:

$order = $orders->getFirstItem()->getEntityId();

E uma instalação Magento Multilojas?!

Caso você queira recuperar o último pedido de uma instalação multilojas, uma solução melhor é:

$orders = Mage::getModel('sales/order')->getCollection()
 ->setOrder('created_at','DESC')
 ->setPageSize(1)
 ->setCurPage(1);

$order = $orders->getFirstItem();

[toggle title=”Fonte”]
http://denisspalenza.com/
[/toggle]

2014-07-25T19:48:25+00:00

RECEBA DICAS VALIOSAS NO SEU EMAIL

x