2011-06-20 30 views
2

私はmagentoを初めて使いました。私が見る限り、注文状態には「保留中」、「処理中」、「完了済み」というラベルが付けられています。顧客がチェックアウトすると、状態は「保留中」になり、請求または出荷によって状態が「処理中」になり、両方が完了すると状態は「完了」になります。私が間違っていれば私を修正してください。Magentoでオーダーライフサイクルを変更するにはどうすればよいですか?

新しい州を紹介したいと思いますが、ステータスはではありません。上のいずれかの状態になったら新しいステータスを導入することができました。マゼンタがどのように状態を管理し、それを修正/新しい状態を追加する方法を学ぶ。必要に応じてコアコードを変更することができます。

私の質問は、どのように新しい状態(ステータスではない)を導入するのか、あるいはどのように私は注文のライフサイクルを変更/変更するのですか?

コードのどの部分がオーダーのライフサイクルを管理しているか教えてください。どんな助けや手がかりもありがとうございます。

PS:今はv1.5.1.0を使用しています。

答えて

2

ごconfig.xmlにあなたが何かのようなを持つことになりますが、状態は変更したい時はいつでもそう...

<config> 
    <global> 
     <sales> 
      <order> 
       <states> 
        <my_state translate="label"> 
         <label>My State</label> 
         <statuses> 
          <pending default="1"/> 
         </statuses> 
         <visible_on_front/> 
        </my_state> 
       </states> 
      </order> 
     </sales> 
    </global> 
</config> 

は、その後、あなたがコアをオーバーライドしたり、状態を変更するためにオブザーバーを追加することができます(くださいドン「Tは、直接コアを編集!)状態のデフォルトの状態を行います

$order->setState("my_state"); 
$order->save(); 

....($orderと仮定すると、有効なため、すでにロードされて行く準備ができている)のようなもので。あなたが設定したい場合は、ステータスは、二番目のパラメータで..だから

$order->setState("my_state","complete"); 
$order->save(); 

HTH config.xmlの

+0

が、それはこれらの定義は廃止され、それらはデータベースに格納されていると言うことを置きます。だから私はデータベースを変更し、今私はいくつかの他の州があります。しかし、問題は、注文パイプラインは依然として同じです。つまり、「チェックアウト - >請求書 - >出荷」です。私の質問は、新しい州を統合しようとしていたことです。あなたはこれについて何か考えていますか?あなたは私に実装を見なければならない道を私に与えることができますか? 基本的には、ボタンを追加したいのですが、出荷後に表示されるようになります。状態が変更されるようにボタンを追加したい場合は、受信/見直しなどの状態に変更されます。 – fitne

+0

それから、entity_idというオーダーでurlに行き、entity_idでオーダー・モデルをロードして、上にリストしたものを実行してください...あなたには、文字通りこれで多くの詳細を与える必要があります。オブザーバーを追加することも、独立した独自のプロセスを作成することもできます。 – sbditto85

+0

たとえば、請求書を作成すると、状態は「処理中」になります。私が貨物を作るとき、私はそれが "出荷される"ようにしたい。このステップの後、別のボタンが表示され、状態が「インストール済み」に変わります。その目的は、デバイスのインストーラの動作をMagento内で追跡したいということです。彼らがインストールすると、私はサービスを開始するので、 "インストール済み"から "準備完了"に状態を変更する別のボタンもなければなりません。 – fitne