Comment obtenir l'adresse de livraison par identifiant d'adresse de livraison?

9

J'ai l'objet de commande. De là, je peux obtenir l'ID de l'adresse de livraison. Quelqu'un peut-il suggérer comment dériver l'adresse de livraison par identifiant d'adresse de livraison?

Sukeshini
la source

Réponses:

15

Vous pouvez utiliser l'objet order_address pour obtenir l'adresse de livraison:

 $address = Mage::getModel('sales/order_address')->load($shippingId);
// $shippingId is the id you get from order object.
$custName = $address->getName();
$custAddr = $address->getStreetFull();
$region = $address->getRegion();
$country = $address->getCountry();

Ou utiliser

print_r(get_class_methods($address)); 

pour voir quelles méthodes peuvent être utilisées sur l'objet adresse ($ address).

j'espère que cela résoudra votre problème :)

Shathish
la source
7

Pour obtenir l'adresse d'un objet de commande, vous pouvez simplement faire $order->getShippingAddress()

En supposant

$order_id = 123; // put your order id here
$order = Mage::getModel('sales/order')->load($order_id);

alors

$address = $order->getShippingAddress();
$custName = $address->getName();
$custAddr = $address->getStreetFull();
$region = $address->getRegion();
$country = $address->getCountry();
Renon Stewart
la source
J'ai déjà résolu ma question il y a des mois. Même si vous appréciez la réponse. +1
Sukeshini
$addressest vide quand j'utilise $address = $order->getShippingAddress()mais quand j'utilise $address = Mage::getModel('sales/order_address')->load($shippingId);Il retourne l'adresse
Pradeep Singh
2

Shathish vous a donné une réponse agréable et correcte.

Cependant, vous pouvez utiliser la méthode singleton et une requête:

$shimnetId = "1"; // use your shipment id: 

$read = Mage::getSingleton('core/resource')->getConnection('core_read');

$query = "SELECT * FROM sales_flat_order_address WHERE entity_id='".$shipmentId."'";

$results = $read->fetchAll($query);

var_dump($results);

sales_flat_order_address contient à la fois l'adresse de facturation et l'adresse de livraison.

J'espère que cela fonctionnera pour vous.

MagentoBoy
la source
2
Je n'ai pas testé votre solution. Mais je pense qu'il est préférable de développer selon la façon dont Magento s'est développé plutôt que d'utiliser des requêtes SQL directes dans la source. Quoi qu'il en soit, appréciez votre suggestion. Merci
Sukeshini