首页>Magento>source

Magento如何在为客人下订单之前更新结算/发货订单。

我知道我需要使用什么观察员事件并熟悉它.我想知道的是如何获得结算/发货或用什么代码写入来更新它.我只找到了有关如何更新已下订单的地址的信息。

最新回答
  • 2019-12-5
    1 #

    我没有尝试这个代码,所以你应该自己完善它: 你需要一个具有更新账单和送货地址功能的观察者,这是你需要在你的xml中做的事情:

    <sales_order_save_before>
        <observers>
            <custom_observer>
                <type>singleton</type>
                <class>Custom_Module_Model_Observer</class>
                <method>updateaddress</method>
            </custom_observer>
        </observers>
    </sales_order_save_before>
    

    然后在您的观察者中,您需要检查该帐户是否为来宾帐户,然后更新其报价:

    public function updateaddress(Varien_Event_Observer $observer) {
        $session = $observer->getEvent()->getCheckoutSession();
        $sessionCustomer = Mage::getSingleton("customer/session");
        $quote = $this->_quote = Mage::getModel('sales/quote')->setStoreId(Mage::app()->getStore()->getId())->load($session->getQuoteId());
        $address = $quote->getShippingAddress();
        if (!$sessionCustomer->isLoggedIn()) {
            $address->setData($reset);
            $quote->setShippingAddress($address);
            $quote->setBillingAddress($address);
            $quote->collectTotals()->save();
        }
    }
    

  • ce 1.8.1.0:启用APC时检出时出现错误网关(nginx,FPM)
  • products:限制Magento中每个字段的管理员用户权限