カスタム注文状態を作成し、ビューで「ボタン」または「選択リスト」を使用して、それらの状態を切り替えます。
たとえば、完了とマークされたすべての注文の表が表示されるビューがあります。各注文の状態を切り替えることができるように、各行に「ボタン」または「選択リスト」を追加したいと思います。
これはできますか?
このモジュールをチェックしてください Commerceカスタムオーダーステータス カスタムステータスを支援します。
そこで2つあります。
A.注文情報フックの1つを使用して、カスタム注文状態を定義します。
B. commerce_orderベースのVBOビューを作成し、注文の状態を変更する操作を追加します。各行のボタンではなく、単なるチェックボックスまたはラジオボタンですが、その方法でバッチ更新できます。
または、注文を編集して、編集フォームで状態を設定します。
これに関するドキュメントは不明瞭であることがわかりました。参考のために、ここにプログラムでステータス(状態ではない)を追加する例を示します。これにより、「キャンセル済み」状態の下に新しい「クレジットカード障害」ステータスが追加されます。
function mymodule_commerce_order_status_info() {
$order_statuses['ccfail'] = array(
'name' => 'ccfail',
'title' => t('Credit card failure'),
'state' => 'canceled',
);
return $order_statuses;
}
前の例のコードに問題がありましたが、これは、既存の「キャンセル済み」ステータスの後に新しいステータス「返金済み」を既存の「キャンセル済み」ステータスに追加する方法として私にとってはうまくいきました。
function mymodule_commerce_order_status_info_alter(&$order_statuses) {
$order_statuses['refund'] = array(
'name' => 'refund',
'title' => t('Refunded'),
'state' => 'canceled',
'cart' => FALSE,
'weight' => 10,
);
}
'cart'インデックスは必須であり、含めない場合は、未定義のインデックスエラーが発生することに注意してください。