【问题标题】:Change to custom shipping address during checkout结帐时更改为自定义送货地址
【发布时间】:2015-07-10 11:18:56
【问题描述】:

几天来一直在尝试解决这个问题,但没有任何运气,并用尽了所有想法。

我需要在结帐期间以编程方式将报价单和订单的收货地址更改为自定义地址。客户只需输入帐单地址(输入不同收货地址的单选选项对他们隐藏)。

我为以下事件创建了一个观察者:

checkout_controller_onepage_save_shipping_method

并且我在 config.xml 中定义的函数触发没有任何问题。现在我尝试了无数种来自谷歌和其他帖子的方法来更新送货地址,但它们都会产生异常“请指定送货方式”。

我是否遗漏了一些明显的东西,有没有办法在上述事件中创建自定义收货地址?希望有人能帮忙。

【问题讨论】:

  • 发布一些代码以显示您如何更新收货地址。也许您更改了地址,但没有提供送货方式。

标签: magento magento-1.7


【解决方案1】:

不要监听 checkout_controller_onepage_save_shipping_method,而是监听 controller_action_predispatch_checkout_onepage_saveBilling 或 controller_action_postdispatch_checkout_onepage_saveBilling。您需要获取送货方式的费率,因为您需要一个送货地址(在您的情况下是帐单地址)。

在您的观察者方法中,获取报价和送货地址,例如:

public function saveBillingObserver($observer){

    $quote = Mage::getSingleton('checkout/session')->getQuote();

    $shippingAddress = $quote->getShippingAddress();
    $shippingAddress->setStreet(array('123 Main Street'))
       ->setCity('Los Angeles')
       ->setRegionId(12)
       ->setPostcode('90034')
       ->save();
}

您可以更改收货地址并保存。

【讨论】:

    猜你喜欢
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 2011-09-23
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 2021-10-10
    相关资源
    最近更新 更多