Вы не упомянули, на какой версии Magento вы находитесь. Я протестировал нижеследующее на 1.4.1.1 и внес некоторые изменения, чтобы это был работающий пример.
Основным отличием является изменение от
Mage::app()->reinitStores();
до
Mage::app()->getConfig()->reinit();
, который перезагружает конфигурацию, а также перезагружает кеш.
Полный пример:
<?php
require_once 'app' . DIRECTORY_SEPARATOR . 'Mage.php';
Mage::app();
/* Website information */
$website_data = array(
'name' => 'Website Name',
'code' => 'website_company',
'sort_order' => '2',
'is_active' => 1,
);
/* Save website */
$website = Mage::getModel('core/website');
$website->setData($website_data);
$website->save()->load();
/* Save store */
$storeGroup = Mage::getModel('core/store_group');
$storeGroup->setData(
array(
'root_category_id' => '3',
'website_id' => $website->getId(),
'name' => 'Store',
)
);
$storeGroup->save()->load();
$store = Mage::getModel('core/store');
$store->setData(
array(
'website_id' => $website->getId(),
'name' => $storeGroup->getName(),
'code' => 'store_' . $website->load()->getId(),
'group_id' => $storeGroup->getGroupId(),
'is_active' => 1,
)
);
$store->save()->load();
/* Re-init */
Mage::app()->getConfig()->reinit();
/* Config data array example */
$data = array('name' => 'Company 1', 'phone' => '056 22 33 61');
/* Set config values in array */
$groups = array();
foreach ($data as $key => $value) {
$groups['store_information']['fields'][$key]['value'] = $value;
}
/* Save config values */
$data = Mage::getModel('adminhtml/config_data')
->setSection('general')
->setWebsite($website->getCode())
->setGroups($groups)
->save();