Magento:設定値をコマンドラインで変更したい

YK
2024-05-16
2024-05-16

はじめに

Magentoのシステム設定値を変更する場合、管理画面からだけでなく、コマンドラインからも変更する事が可能です。
私も、通常は管理画面から設定変更する事がほとんどですが、例えばシステム切り替えによる一括変更等が必要となる場合や、複数店舗で変更が必要な場合、コマンドラインにお世話になっています。

やってみよう

ここでは例として、システム設定値である「総合受付の送信者メールアドレス」を変更する方法を説明します。

ちなみに管理画面だとどこで変更できる?

 [STORES > Configration > GENERAL > Store Email Address ]より、「General Contact」の【Sender Email】にて設定変更が可能です。

コマンドラインで変更する前に

設定パスを確認する

「総合受付の送信者メールアドレス」の設定パスは、"trans_email/ident_general/email" となります。

参考:機密性の高いシステム固有の設定

 

スコープを確認する

変更したい対象のスコープを確認します。
スコープが「ウェブサイト」や「ストア」の送信者メールアドレスを変更したい場合、対象のスコープコード(code)を確認する必要があります。

スコープコードはDBから確認できます(管理画面からも確認できます)。


■ウェブサイト

store_websiteテーブルの「code」を確認します。

SELECT * FROM store_website;

■ストア

storeテーブルの「code」を確認します。

 SELECT * FROM store;

 

コマンドを実行する

[スコープ:デフォルト]の場合
bin/magento config:set "trans_email/ident_general/email" "hoge@future-s.com"

→デフォルトの送信者メールアドレスが「hoge@future-s.com」に設定されます。

 

[スコープ:Mainウェブサイト]の場合

scopeパラメータに「website」、scope-codeパラメータにMainウェブサイトのcode「main」を指定します。

bin/magento config:set --scope="website" --scope-code="main" "trans_email/ident_general/email" "hoge@future-s.com"

→Mainウェブサイトの送信者メールアドレスが「hoge@future-s.com」に設定されます。

 

[スコープ:Test1ストア]の場合

scopeパラメータに「store」、scope-codeパラメータにTest1ストアのcode「test1_store_view」を指定します。

bin/magento config:set --scope="store" --scope-code="test1_store_view" "trans_email/ident_general/email" "hoge@future-s.com"

→Test1ストアの送信者メールアドレスが「hoge@future-s.com」に設定されます。

 

さいごに

最初はMagentoに馴染みが無さすぎて、なにかと管理画面やDB(core_config_dataテーブルで管理されています)から対応しがちでしたが、慣れてしまえば、MagentoのCLIはとても便利なツールでした。ぜひ活用してみてください。