简介:我使用的是"Magestore giftoucher"模块,在下订单时,默认情况下不会保存发货地址(仅限礼品卡产品)。由于礼券不是实物产品,因此未发货。它通过电子邮件发送给收件人。但不知何故,我想使发货地址类似于帐单地址。
所以我尝试过:在app/code/local/Magestore/Giftcoker/Model/Observer.php 下
在函数:->orderSaveAfter中,我写了下面的代码,但没想到它不起作用。
$order = $observer->getEvent()->getOrder();
$billing_address = $order->getBillingAddress();
$shippingAddress = Mage::getModel('sales/order_address')
->setCustomerId($billing_address->getCustomerId())
->setCustomerAddressId($billing_address->getCustomerAddressId())
->setFirstname($billing_address->getFirstname())
->setMiddlename($billing_address->getMiddlename())
->setLastname($billing_address->getLastname())
->setSuffix($billing_address->getSuffix())
->setCompany($billing_address->getCompany())
->setStreet($billing_address->getStreet())
->setCity($billing_address->getCity())
->setCountry_id($billing_address->getCountryId())
->setRegion($billing_address->getRegion())
->setRegion_id($billing_address->getRegionId())
->setPostcode($billing_address->getPostcode())
->setTelephone($billing_address->getTelephone())
->setFax($billing_address->getFax());
$order = Mage::getModel('sales/order')->load($order->getId());
$order->setShippingAddress($shippingAddress);
$order->save();
请说明这里出了什么问题!感谢
you need to add code in sales_order_place_before event
public function orderPlaceBefore($observer) {
$order = $observer->getEvent()->getOrder();
$billing_address = $order->getBillingAddress();
$shippingAddress = Mage::getModel('sales/order_address')
->setCustomerId($billing_address->getCustomerId())
->setCustomerAddressId($billing_address->getCustomerAddressId())
->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_SHIPPING)
->setFirstname($billing_address->getFirstname())
->setMiddlename($billing_address->getMiddlename())
->setLastname($billing_address->getLastname())
->setSuffix($billing_address->getSuffix())
->setCompany($billing_address->getCompany())
->setStreet($billing_address->getStreet())
->setCity($billing_address->getCity())
->setCountry_id($billing_address->getCountryId())
->setRegion($billing_address->getRegion())
->setRegion_id($billing_address->getRegionId())
->setPostcode($billing_address->getPostcode())
->setTelephone($billing_address->getTelephone())
->setFax($billing_address->getFax());
$order->setShippingAddress($shippingAddress);
}