obter detalhes do pedido por ID do pedido no magento [duplicado]
-
12-12-2019 - |
Pergunta
Estou tentando obter detalhes do pedido por ID do pedido em meu código.Para isso criei um arquivo php e copiei esse arquivo para uma pasta em public_html.este é o meu código:
<?php
error_reporting( E_ALL );
require_once "lib/nusoap.php";
require_once "../app/Mage.php";
try {
$order = Mage::getModel('sales/order')->load('100000234');
$orderData = $order->getData();
print_r($orderData);
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
?>
Mas quando executo esse código, ele não mostra "nada" para mim!
Eu tentei var_dump($order)
, mas também não mostra nada nem erro!
Alguém pode me ajudar a obter detalhes do pedido e mostrá-lo?
Obrigado
Solução
Há específico loadByIncrementId
função para carregar usando o ID de incremento.
$order = Mage::getModel('sales/order')->loadByIncrementId('100000234');
No entanto, não acredito que você esteja inicializando o Magento corretamente, o que explicaria por que você não está necessariamente conseguindo o que deseja.Embora inclua o app/Mage.php
lhe dará acesso à classe Mage, na verdade não inicializará o Magento.Você precisa iniciar o aplicativo, algo assim:
<?php
error_reporting( E_ALL );
require_once "lib/nusoap.php";
require_once "../app/Mage.php";
Mage::app('admin');
try {
$order = Mage::getModel('sales/order')->loadByIncrementId('100000234');
print_r($order->debug());
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
Outras dicas
O número que você está usando é o increment_id
No magento você tem o inctement_id sequencial, que é o id da ordem visível.
Internamente, o magento usa entidade_id, que é usado para vincular dados.
O ->load usa o entidade_id por padrão.
Se você alterar seu código para
$order = Mage::getModel('vendas/pedido')->load($incrementId, 'increment_id');
Você deve carregar o pedido.