我正在努力解决与某些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);
}
}
非常感谢!
答案 0 :(得分:1)
为什么不尝试sales_order_save_after
事件并尝试保存,因此Magento手动重定向不会出现问题,
您可以参考此链接获取更多解释
http://inchoo.net/magento/magento-orders/automatically-invoice-ship-complete-order-in-magento/