2011-11-29 9 views
10

Estoy intentando crear un sitio web, almacenarlo y verlo programáticamente. Encontré este código:Cómo crear un sitio, almacenar y ver programaticamente en magento

$websiteModel = Mage::getModel('core/website'); 

$postData = array(); 
$postData['website']['name'] = 'Store Name'; 
$postData['website']['code'] = 'store_name'; 
$postData['website']['sort_order'] = ''; 
//$postData['website']['is_default'] = ''; 
$postData['website']['website_id'] = ''; 

$websiteModel->setData($postData['website']); 

¿Funcionaría algo así? Además, ¿cuáles serían los modelos asociados con la tienda y la vista? Gracias.

Respuesta

30

Usar este código:

//#addWebsite 
    /** @var $website Mage_Core_Model_Website */ 
    $website = Mage::getModel('core/website'); 
    $website->setCode('<your_website_code_here>') 
     ->setName('<your_website_name>') 
     ->save(); 

//#addStoreGroup 
    /** @var $storeGroup Mage_Core_Model_Store_Group */ 
    $storeGroup = Mage::getModel('core/store_group'); 
    $storeGroup->setWebsiteId($website->getId()) 
     ->setName('<your_store_name>') 
     ->setRootCategoryId('<needed_root_category_id>') 
     ->save(); 

//#addStore 
    /** @var $store Mage_Core_Model_Store */ 
    $store = Mage::getModel('core/store'); 
    $store->setCode('<your_store_view_code_here>') 
     ->setWebsiteId($storeGroup->getWebsiteId()) 
     ->setGroupId($storeGroup->getId()) 
     ->setName('<your_store_view_name>') 
     ->setIsActive(1) 
     ->save(); 

Si necesita hacerlo desde frontend - añada la línea Mage::registry('isSecureArea'); antes de este código.

+0

Gracias, funcionó maravillosamente bien. ¿Podría decirme cómo configuro la url base para un sitio web en particular? Gracias de nuevo. – Nithin

+0

Este [post] (http://stackoverflow.com/questions/3601643/magento-set-config-values-of-just-created-website) me ayudó a establecer los valores de configuración para el sitio web creado. – Nithin

+0

Muchas gracias ...! Me salvó el tiempo ... :) –

Cuestiones relacionadas