おはようございます、スタックオーバーフロー!PrestaShop - actionOrderStatusPostUpdateフック:それは本当に始まるべきか?
クイック質問。フックのドキュメント(http://doc.prestashop.com/display/PS15/Hooks+in+PrestaShop+1.5)によれば、 "actionOrderStatusPostUpdate"という名前のフックは、私が正しく理解していれば、オブジェクトの注文状況が既に変更された後に起動されることを意味していますか?
したがって、私はorderStatusがすでに変更されていると思っていました。問題なく、コード内で安全に変更することができました。私のコードには、「支払いを受け取った」ステータスに行く瞬間に商品をスキャンする条件付きブロックが含まれています。注文に「制限されたアイテム」が含まれていると、ユーザーに通知し、注文ステータスを「Restricted:理由)」(ID:15)コードを実行してフックが起動すると、状態が終了してすぐに「支払い受領済み」に置き換えられます。
https://www.dropbox.com/s/uc4ebr2ybytx2ks/Screenshot%202016-03-15%2012.52.47.jpg
POST更新フックのために、この正常な動作ですか?ステータスは既に変更されているはずですので、どうして変更されるのですか?
...
$history = new OrderHistory();
$history->id_order = (int) $order_id;
$history->changeIdOrderState(15, (int) $order_id);
...
私はそれが正常に変更さを保証できるようにこれを行うには別の方法があります:
...
} else {
// Restricted order...
$order->setCurrentState(15, 1);
...
私もこれは試してみましたか?
EDIT
私は同じことを尋ねるこの質問を認識しています:Prestashop - Change order status when payment is validatedを、それもまだ応答されるべきであり、私にはこれがないの助けのです。
EDIT私ができる最善を試してみて、コードの論理的な流れを説明することである
:ユーザーまたは他の何かが、注文のステータスを変更し
- 、フック火災(hookActionOrderStatusPostUpdate)をモジュールから削除します。
- 注文のステータスが「お支払い受諾済み」の場合は、次のセクションに進みます。
- 次に、私が使用する特定のフラグの順序で注文、配送先住所、
- 注文が制限されている場合、この後に制限を解決するために会社に顧客に連絡できるケースが他のシステムで登録されています(「配送先住所、請求書住所、特定の製品機能など」)注文が注文状態に設定されるべきである:規制が適用されることを示すために「制限付き」(id。15)。順序が制限されていない場合、それは処理のために別のシステムに渡されます
- など
をあなたはどの支払いモジュールを使用していますか? – prestarocket
コードはPost Order State Changeフックで実行されているため、支払モジュールには無関係ですが、テストのために私はちょうど "銀行振込"を使用します... –
[Prestashop - 支払いの有効性が確認されたときの注文ステータスの変更] (https://stackoverflow.com/questions/28408612/prestashop-change-order-status-when-payment-is-validated) –