Magentoで注文があったときに管理者に通知するための電子メールテンプレートを追加しました。メールからオーダーステータスを変更する
電子メールのバックエンドに行かずに、管理者が注文のステータスを処理に変更できるように、電子メールにボタンまたはリンクを追加する必要があります。
どうすればいいですか?以下は
Magentoで注文があったときに管理者に通知するための電子メールテンプレートを追加しました。メールからオーダーステータスを変更する
電子メールのバックエンドに行かずに、管理者が注文のステータスを処理に変更できるように、電子メールにボタンまたはリンクを追加する必要があります。
どうすればいいですか?以下は
は、ステータスのあなたが状況を更新するための
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();
上記のコードでは、完全なステータス以外のすべてのステータスが更新されます。請求書と出荷が作成された場合にのみ注文が完了します。請求書と出荷が作成されると、注文は自動的に完了に変更されます。
ですので、以下のコードを使用することができます。
請求書
$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);
このコードは電子メールテンプレートにのみ追加されますか? –
このプロセスを完了するには、まず、カスタムURL ex:domain.com/controller/action/order_id/123を使用して電子メールテンプレートにボタンを作成します。作成されたボタンをクリックするたびに、order_idパラメータを取得するカスタムURLが呼び出されます。このorder_idを使用すると、前述の追加コードを実行して注文ステータスを変更できます。 –
の作成は要求を認証し、レコードを更新トークンでMagentoの上、電子メールのURLと同じに変数を追加しますか? – Syfer
あなたは私がMagentoで新しい時にそれを始める方法を知ることができます。 –