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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top