今回は商品管理の一番下に新規メニュー項目を追加することを考えます。
まずメニューから開けるページが必要ですのでコントローラーを作成し、新しいページを作った後でそのページをメニューに追加してみましょう。今回はeccube_nav.yamlを編集するもっとも簡単な方法をご紹介します。

管理画面に新規ページを作る方法は下記URLで紹介しています。
管理画面に2ステップで新規ページを作る方法

それでは、このページを商品管理のメニューに追加してみます。

初期状態での管理画面のメニュー一覧はapp/config/eccube/packages/eccube_nav.yamlに配列として記載されています。
商品のメニュー部分は下記のようになっています。

parameters:
    eccube_nav:
        product:
            name: admin.product.product_management
            icon: fa-cube
            children:
                product_master:
                    name: admin.product.product_list
                    url: admin_product
                product_edit:
                    name: admin.product.product_registration
                    url: admin_product_product_new
                class_name:
                    name: admin.product.class_management
                    url: admin_product_class_name
                class_category:
                    name: admin.product.category_management
                    url: admin_product_category
                product_tag:
                    name: admin.product.tag_management
                    url: admin_product_tag
                product_csv_import:
                    name: admin.product.product_csv_upload
                    url: admin_product_csv_import
                category_csv_import:
                    name: admin.product.category_csv_upload
                    url: admin_product_category_csv_import
                #商品管理に新規メニュー追加

category_csv_importの下に次のように追記することでメニューを追加することができます。

product_new_menu:
    name: 新メニュー
    url: admin_new_menu

new_menuはメニューにつけるID名で、このメニューをアクティブにしたい時にtwigから指定します。
nameは表示する名称
urlはコントローラーのRouteで指定したURLの名前です。

動作検証

これで管理画面にアクセスするとカテゴリCSV登録の下に新規メニューが追加されました。twigでメニューの位置を指定しているのでアクティブ表示になっています。

メニュー追加

eccube_nav.yamlを編集するとバージョンアップの際に上書きされてしまう可能性があります。
大きなカスタマイズをするとバージョンアップできない可能性も高いですが、バージョンアップをご検討の方はEccubeNav(NavCompilerPass)の仕組みを利用するか、app/config/eccube/packages/prodなどに複製して用いると良いかもしれません。


関連するカスタマイズ

XServerのSSH接続でPHP5.4ではなくPHP7を指定してbin/console実行... EC-CUBE4はphp7.1以上が必須要件になっており、bin/consoleスクリプトを使う場合はコマンドラインでもPHP7が必要です。 エックスサーバーのようにSSHが接続できるレンタルサーバーでも最初はPHPのバージョンが5.4となっています。ですので、下記の手順に従って、実行できるPHP...
デバッグモードを有効化する方法 .envファイル... EC-CUBE4系をデバッグモードで実行する方法をご紹介します。 デバッグモードとは? EC-CUBE4では通常エラーが発生しても「システムエラーが発生しました。大変お手数ですが、サイト管理者までご連絡ください。」と表示されるだけで原因が全く分かりません。 エラーの原因がユーザーに...
4系で管理画面に2ステップで新規ページを作る方法... EC-CUBE4では、ページの作成が3系と比べて非常に簡単になりました。 今回は管理画面に新規ページを作成する方法をご紹介します。実際にhttp://管理画面/new_menuというURLでアクセスできるページを作っていきます。 コントローラークラスの作成 app/Customize/Co...
4系で納品書のロゴをオリジナルに変える方法(位置サイズ調整)... EC-CUBE4系では納品書の発行機能が2系同様、本体に組み込まれました。 3系ではプラグイン提供でしたが、納品書機能はどのサイトも必要になるものだから...という判断です。 今回は納品書のロゴをオリジナルに差し替える方法をご紹介します。 ロゴ画像を差し替えるには? 納品書のロゴを差し替...