Orders – Change Shipping and Billing Address Programmatically

billing-addressordersprogrammaticallyshipping-address

How can i change shipping and billing adress from order programmatically?
I tried this but don't work.

$shippingAddress = Mage::getModel('sales/order_address')
->setFirstname("value")
->setMiddlename("value")
->setLastname("value")
->setSuffix("value")
->setCompany("value")
->setStreet("value"))
->setCity("value")
->setCountry_id("value")
->setRegion("value")
->setRegion_id("value")
->setPostcode("value")
->setTelephone("value")
->setFax("value");

and

$order->setShippingAddress($shippingAddress)
->setShipping_method('flatrate_flatrate');

Best Answer

if you want update shipping address of an order then you need load order then load it address object:

Step1:Order load by orded id

$order = Mage::getModel('sales/order')->load($orderId);

Step2:Get shipping address Id.

$order->getShippingAddress()->getId();

Step3:Then reset shipping address object:

$shippingAddress = Mage::getModel('sales/order_address')->load($order->getShippingAddress()->getId());

$shippingAddress
->setFirstname("value")
->setMiddlename("value")
->setLastname("value")
->setSuffix("value")
->setCompany("value")
->setStreet("value"))
->setCity("value")
->setCountry_id("value")
->setRegion("value")
->setRegion_id("value")
->setPostcode("value")
->setTelephone("value")
->setFax("value")->save();
Related Topic