Cuando empezamos un proyecto con Magento, lo más tedioso quizá es introducir los datos en la aplicación. Para la importación de productos existen herramientas integradas en Magento que desarrollan esta función.
Sin embargo las categorías no, vamos a ver un pequeño script que nos importará las categorías en base a una cadena json o un array php.
En la raíz de la instalación magento creamos un fichero e introducimos el siguiente código.
// initialize magento environment for 'default' store
require_once 'app/Mage.php';
Mage::app('default');
// Get the data from a JSON font
$json = '[{"name":"T Shirts","subcats":[{"name":"Black"},{"name":"White"},{"name":"Orange"},{"name":"Yellow"}]},{"name":"Jeans","subcats":[{"name":"Shorts","subcats":[{"name":"Black"},{"name":"White"},{"name":"Orange"},{"name":"Yellow"}]},{"name":"Larges","subcats":[{"name":"Black"},{"name":"White"},{"name":"Orange"},{"name":"Yellow"}]}]}]';
// Translate it into an associative array
$cat = json_decode($json, true);
/*
$cat = array(
array(
'name' => 'T Shirts',
'subcats' => array(
array('name' => 'Black'),
array('name' => 'White'),
array('name' => 'Orange'),
array('name' => 'Yellow')
)
),
array(
'name' => 'Jeans',
'subcats' => array(
array(
'name' => 'Shorts',
'subcats' => array(
array('name' => 'Black'),
array('name' => 'White'),
array('name' => 'Orange'),
array('name' => 'Yellow')
)
),
array(
'name' => 'Larges',
'subcats' => array(
array('name' => 'Black'),
array('name' => 'White'),
array('name' => 'Orange'),
array('name' => 'Yellow')
)
)
)
)
);
*/
// Foreach first level category begin the recursive process
for($i=0; $isetStoreId(0); //default/all
if($cat['path']) {
$parent = $cat['path'];
} else {
$parent = '1/2';
$cat['parent_id'] = 0;
}
$category->addData(array(
'name' => $cat['name'],
'path' => $parent,
'description' => '',
'meta_title' => '',
'meta_description' => '',
'landing_page' => '',
'display_mode' => 'PRODUCTS',
'is_active' => 1,
'is_anchor' => 0,
'url_key' => ''
));
try {
// Saving the data
$category->save();
// Getting the inserted ID
$catID = $category->getId();
// Foreach subcategory insert into db
for($i=0; $igetMessage();
}
}
Ahora simplemente ejecutamos el código a través de linea de comandos y ya tenemos creado nuestro árbol de categorías.
Note: Si no queréis importarlo desde json y preferís crear un array php pues descomentáis el trozo comentado y listos.
Espero que os sea útil!