店情報の新規登録をプログラムで実行する
Mage::app()経由でMagentoの機能をプログラムから利用できるようになる
MagentoにPHPのプログラムでストア情報を登録する方法。
stackoverflowにストアセットアップに関するページがあった。
Magento: set config values of just created website?
Mage::app()を利用することで、MagentoのModelを経由してデータベースに店情報を格納できる。おそらく店情報だけでなく、Magentoの管理画面で操作できるすべてのデータをMage::app()で操作可能。
stackoverflowの記事では、
require_once 'app' . DIRECTORY_SEPARATOR . 'Mage.php'; Mage::app();
としているが、
$new_dirs = array( 'cache_dir' => 'R:\magento\var\cache', ); Mage::app(null, null, $new_dirs);
Magentoランタイム外からMage::app()を利用する場合で、キャッシュファイルの場所を変更している場合は、Mage::runの場合と同様に、引数を渡すことで、キャッシュファイルの場所をカスタマイズすることが出来る。
店情報のキーの調べ方
stackoverflowの記事では、
- website
- store group
- store view
の設定を行い、ストアをセットアップした後、店情報として、
- 店の名前
- 電話番号
を設定(コンフィグレーション)している。
コードの中で設定したい情報をキー配列にしてセットアップを行っているが、設定するキー名はMagentoのデータベースを参照することで調査することが出来る。
店情報は、
core_config_dataテーブル
に保存されており、画面キャプチャは以下のとおり。
ストア専用のbase_urlも追加で設定した状態になるが、そのためのコードは以下の方法で可能。
$data = array('base_url' => 'http://hoge.magento.local/'); $groups = array(); foreach ($data as $key => $value) { $groups['secure']['fields'][$key]['value'] = $value; } $data = Mage::getModel('adminhtml/config_data') ->setSection('web') ->setWebsite($website->getCode()) ->setGroups($groups) ->save();
core_config_dataテーブルのpath情報を参考にして、設定すべきキーを調査することが出来る。