【问题标题】:Magento OPC Observer redirectMagento OPC 观察者重定向
【发布时间】:2014-10-28 04:29:09
【问题描述】:

我正在努力解决与某些 Magento 观察者重定向相关的特殊小问题。

我写了一个扩展并让一个观察者参与“checkout_submit_all_after”事件,结果很好。一旦付款方式为“发票”,我的小扩展程序就会自动创建发票并将订单状态设置为处理中。不幸的是,在单页结帐中提交订单后的重定向不再起作用。它总是重定向到“checkout/cart”而不是“checkout/onepage/success”。

有人知道我做错了什么吗?

这是我的代码:

class Shostra_AutoInvoice_Model_Order_Observer
{
    public function __construct()
{

}


public function auto_create_invoice($observer)
{

    $order = $observer->getEvent()->getOrder();

    if (!$order->hasInvoices()) {
        $payment = $order->getPayment()->getMethodInstance()->getTitle();
        Mage::log("payment method: " . $payment);

        if($payment=="Rechnung"){
            Mage::log("autocreating invoice");
            $invoice = $order->prepareInvoice();
            $invoice->register();
            $invoice->pay();
            $invoice->save();
            $order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true)->save();
            Mage::log("invoice created and saved");
        }
        $this->addComment('Order automatically set to paid.');
    } else {
        $this->addComment('no invoices found.');
    }

    $response = $observer->getResponse();
    $response->setRedirect(Mage::getUrl('checkout/onepage/success'));
    Mage::getSingleton('checkout/session')->setNoCartRedirect(true);
}
}

非常感谢!

【问题讨论】:

    标签: magento events redirect


    【解决方案1】:

    您为什么不尝试sales_order_save_after 事件并尝试保存它,所以手动重定向没有问题,因为 Magento 会走自己的路,

    更多解释可以参考这个链接

    http://inchoo.net/magento/magento-orders/automatically-invoice-ship-complete-order-in-magento/
    

    【讨论】:

      猜你喜欢
      • 2013-08-11
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 2011-03-10
      • 1970-01-01
      相关资源
      最近更新 更多