1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【EC-CUBE4.3】受注一覧を特定のステータスで絞り込んだ状態で表示する方法

Last updated at Posted at 2025-06-12

はじめに

EC-CUBE4.3の管理画面で、受注一覧ページを開いたときに「新規受付(order_status_id=1)」の注文だけを初期表示させたい、という要件がありました。

要件概要

  • 管理画面の「注文一覧」メニューをクリックした際に、URL末尾に ?order_status_id=1 を自動で付加したい
  • コントローラー側の処理を変更せず、ナビゲーション設定だけで実現したい

方法

1. ナビゲーション定義ファイルの場所

EC-CUBEの管理画面のナビゲーションは、以下のようなYAMLファイルで定義されています。

app/config/eccube/packages/eccube_nav.yaml

この中で、受注一覧(注文一覧)に対応する設定は通常このようになっています:

order_master:
    name: admin.order.order_list
    url: admin_order

2. クエリパラメータ付きに書き換え

クエリパラメータを追加します。

order_master:
    name: admin.order.order_list
    url: admin_order
    param: { order_status_id: 1 }

3. コントローラーでのパラメータ受け取り

app/Customize/Controller/Admin/Order/OrderController.phpindex() メソッドでは、以下のように order_status_id パラメータを受け取り、検索条件に反映しています:

$page_no = 1;
$viewData = [];

if ($statusId = (int) $request->get('order_status_id')) {
    $viewData = ['status' => [$statusId]];
}

$searchData = FormUtil::submitAndGetData($searchForm, $viewData);

このため、URLに ?order_status_id=1 が含まれていれば、自動的に新規受付(ステータスID=1)の注文がフィルタされた状態で一覧が表示されます。


まとめ

管理画面ナビゲーションのYAML定義にパラメータを追加するだけで、注文一覧ページの初期状態を「新規受付のみ」に変更できます。
簡単かつ保守性も高いため、要件にマッチする場合はこの方法がおすすめです。

※ こちらの記事はChatGPTにまとめてもらいました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?