我添加了电子邮件模板,以便在订购Magento时通知管理员。
我需要在电子邮件中添加一个按钮或链接,以允许管理员将订单状态更改为处理状态,而无需从电子邮件转到后端。
如何做到这一点?
答案 0 :(得分:0)
以下是您可以使用的状态
const STATE_NEW = 'new';
const STATE_PENDING_PAYMENT = 'pending_payment';
const STATE_PROCESSING = 'processing';
const STATE_CLOSED = 'closed';
const STATE_CANCELED = 'canceled';
const STATE_HOLDED = 'holded';
const STATE_PAYMENT_REVIEW = 'payment_review';
更新状态的代码。
$order = Mage::getModel('sales/order')->load($orderid, 'increment_id');
$order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true);
$order->save();
以上代码将更新除COMPLETE状态以外的所有状态。只有在创建发票和发货时,订单才会完成。创建发票和发货后,订单将自动更改为完成。
所以你可以使用下面的代码。
创建发票
$invoice = $order->prepareInvoice()
->setTransactionId($order->getId())
->addComment($comment)
->register()
->pay();
$transaction_save = Mage::getModel('core/resource_transaction')
->addObject($invoice)
->addObject($invoice->getOrder());
$transaction_save->save();
create shipmnet
$itemQty = $order->getItemsCollection()->count();
$shipment = Mage::getModel('sales/service_order', $order)->prepareShipment($itemQty);
$shipment = new Mage_Sales_Model_Order_Shipment_Api();
$shipmentId = $shipment->create($orderId);