支払いが受け入れられた後、ページコントローラーから注文ステータスを「完了」に更新する必要があります。
Drupal 8?)
これに関するドキュメントは見つかりません。 Drupal 7.の例があります。
// Updating Order status.
$orderObj = commerce_order_load($orderID);
commerce_order_status_update($orderObj, 'canceled', TRUE, 'Order Voided');
$orderObj->log = 'Order cancelled programatically';
commerce_order_save($orderObj);
Commerce Orderクラスのステートマシンメソッドを使用します。
それはこのようなものですが、それはあなたがあなたの注文状態と呼んだものに依存します。
$order_state = $orderObj->getState();
$order_state_transitions = $order_state->getTransitions();
$order_state->applyTransition($order_state_transitions['complete']);
$orderObj->save();
わからない場合は、いつでも$order_state_transitions
配列を使用して、どのオプションがあるかを確認します。
単純にsetメソッドを使用できます。
$order->set('state', 'completed');
$order->save();
私はあなたが注文を「置く」ことを望んでいると思います。このイベントのイベントハンドラーを購読する必要があります:commerce_order.order.paid
そしてこのハンドラコードで:
public function paymentCompletedHandler($event) {
$order = $event->getOrder();
$order->getState()->applyTransitionById('place');
return;
}