Magento OPC观察器重定向

Magento OPC观察器重定向,magento,events,redirect,Magento,Events,Redirect,我正在努力解决一个特殊的小问题,这个问题与某个Magento观察器的重定向有关 我编写了一个扩展,并在“checkout\u submit\u all\u after”事件中添加了一个观测者,效果很好。一旦付款方式为“发票”,我的小扩展就会自动创建发票,并将订单状态设置为“正在处理”。不幸的是,在单页签出中提交订单后的重定向不再有效。它总是重定向到“checkout/cart”,而不是“checkout/onepage/success” 有人知道我做错了什么吗 这是我的密码: class Sho

我正在努力解决一个特殊的小问题,这个问题与某个Magento观察器的重定向有关

我编写了一个扩展,并在“checkout\u submit\u all\u 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);
}
}

非常感谢

为什么不在事件后尝试
sales\u order\u save\u并尝试保存它,这样就不会出现手动重定向的问题,因为Magento将自行处理

您可以参考此链接了解更多说明

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