2012-01-23 3 views
0

私は私のような新しい得意先3と店舗2の注文画面を作成して何かにそれを指すようにしたい基本的には、このボタンをMagento:顧客と管理エリアに新しい注文を作成するためのURLは何ですか?

「ジョンソンの注文作成」という名前の管理をテーマに、内のボタンを作成しましたこの:

$key=Mage::getSingleton('adminhtml/url')->getSecretKey("sales_order_create","index"); 
echo $COUrl=Mage::helper("adminhtml")->getUrl("adminhtml/sales_order/new/",array("customer_id"=>"3","key"=>$key)); 

私を助けることができますか?

答えて

2

キーを指定する必要はありません。getUrlは、管理コンテキストのときにそれを行います。

このような startを使用している場合、それはとてもストアが指定することはできません customer_idを除くすべてのパラメータをワイプ
echo $this->getUrl('*/sales_order_create/start', array('customer_id' => 3)); 

。 URLを*/sales_order_create/indexに変更しても新しいオーダーが開始されないため、問題が発生する可能性があるため、store_idパラメータを尊重します。それはあなたがあなた自身の使用のための新しいコントローラとアクションを作成し、それがほぼ正確Mage_Adminhtml_Sales_Order_CreateController::startAction()ようにする必要があります動作するように取得するには:

/** 
* Start order create action 
*/ 
public function startAction() 
{ 
    Mage::getSingleton('adminhtml/session_quote')->clear(); 
    $this->_redirect('*/sales_order_create', array(
     'customer_id' => $this->getRequest()->getParam('customer_id'), 
     'store_id' => $this->getRequest()->getParam('store_id') 
    )); 
} 
+0

ねえ、真剣に - ビッグ感謝を。これは非常に便利なようです。私はこれを朝に最初に試してみよう。私はコントローラーの作成方法について100%ではありませんが、それは私に研究する何かを与えるでしょう。答えにもう一度感謝します。 – Shane

+0

コントローラは[包括的に文書化されています](http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-3-magento-controller-dispatch)。 – clockworkgeek

+0

もう一度おねがいします! :-) – Shane