Magentoのストアセットアップスクリプト

店情報の新規登録をプログラムで実行する

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テーブル

に保存されており、画面キャプチャは以下のとおり。

store-config-database

ストア専用の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情報を参考にして、設定すべきキーを調査することが出来る。

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Magentoのストアセットアップスクリプトの記事にコメントを投稿