obtenir les détails de la commande par numéro de commande dans magento [dupliquer]
-
12-12-2019 - |
Question
J'essaie d'obtenir les détails de la commande par identifiant de commande dans mon code.Pour cela, j'ai créé un fichier php et copié ce fichier dans un dossier public_html.voici mon code :
<?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";
}
?>
Mais quand j'exécute ce code, il ne m'affiche "rien" !
j'ai essayé de var_dump($order)
, mais il ne montre également rien ni aucune erreur !
Quelqu'un peut-il m'aider à obtenir les détails de la commande et à les montrer ?
Merci
La solution
Il y a du spécifique loadByIncrementId
fonction de chargement à l’aide de l’identifiant d’incrément.
$order = Mage::getModel('sales/order')->loadByIncrementId('100000234');
Cependant, je ne pense pas que vous démarrez correctement Magento, ce qui expliquerait pourquoi vous n'obtenez pas nécessairement ce que vous voulez.Tout en incluant le app/Mage.php
vous donnera accès à la classe Mage, cela ne démarrera pas réellement Magento.Vous devez lancer l'application, quelque chose comme ceci :
<?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";
}
Autres conseils
Le numéro que vous utilisez est l'incrément_id
Dans magento, vous avez l'inctement_id séquentiel, qui est l'identifiant de commande visible.
En interne, magento utiliseentity_id, qui est utilisé pour lier les données.
Le ->load utilise l'entity_id par défaut.
Si vous changez votre code en
$order = Mage::getModel('sales/order')->load($incrementId, 'increment_id');
Vous devriez charger la commande.