Anonymous
Программное создание категорий
Сообщение
Anonymous » 09 июл 2024, 00:43
Пытаюсь установить категории с помощью скрипта обновления. Сначала я удаляю категорию, которую Magento создает по умолчанию, затем создаю категории с помощью рекурсии. Также я получил настройки в модулях/xml:
Здесь у меня есть сценарий обновления:
Код: Выделить всё
/* @var $installer Mage_Eav_Model_Entity_Setup */
$installer->startSetup();
Mage::register('isSecureArea', true);
Mage::getModel('catalog/category')->load(2)->delete();
Mage::unregister('isSecureArea');
$categories = array(
array(
'name' => 'Brand Category',
'children' => array(
array(
'name' => 'Carrier Bags',
'children' => array(
array(
'name' => 'Retail Bags',
),
array(
'name' => 'Outlet Bags',
),
),
),
array(
'name' => 'Giftpackaging',
),
),
),
array(
'name' => 'Default Category',
'children' => array(
array(
'name' => 'Draagtassen',
'children' => array(
array(
'name' => 'Papier',
'children' => array(
array(
'name' => 'Luxe papier',
),
array(
'name' => 'Kraft papier',
),
),
),
),
),
array(
'name' => 'Geschenkverpakkingen',
'children' => array(
array(
'name' => 'Geschenkdozen',
),
array(
'name' => 'Cadeauzakken',
),
array(
'name' => 'Cadeau-/Inpakpapier',
),
),
),
),
),
);
function createCat(array $data, $path = '1') {
$data = array_merge(
array(
'is_active' => 1,
'is_anchor' => 0,
'display_mode' => 'PRODUCTS',
'custom_use_parent_settings' => 0,
'path' => $path,
),
$data
);
$children = array();
if (isset($data['children'])) {
$children = $data['children'];
unset($data['children']);
}
$category = Mage::getModel('catalog/category')->setData($data)->save();
if (!empty($children)) {
foreach ($children as $child) {
createCat($child, $category->getPath());
}
}
}
foreach ($categories as $cat) {
createCat($cat);
}
$this->endSetup();
В итоге у меня есть:
Категория по умолчанию с детьми, это хорошо, а затем один раз категория по умолчанию более. Но нет категории бренда.
Спасибо.
Подробнее здесь:
https://stackoverflow.com/questions/227 ... mmatically
1720475024
Anonymous
Пытаюсь установить категории с помощью скрипта обновления. Сначала я удаляю категорию, которую Magento создает по умолчанию, затем создаю категории с помощью рекурсии. Также я получил настройки в модулях/xml: [code] [/code] Здесь у меня есть сценарий обновления: [code]/* @var $installer Mage_Eav_Model_Entity_Setup */ $installer->startSetup(); Mage::register('isSecureArea', true); Mage::getModel('catalog/category')->load(2)->delete(); Mage::unregister('isSecureArea'); $categories = array( array( 'name' => 'Brand Category', 'children' => array( array( 'name' => 'Carrier Bags', 'children' => array( array( 'name' => 'Retail Bags', ), array( 'name' => 'Outlet Bags', ), ), ), array( 'name' => 'Giftpackaging', ), ), ), array( 'name' => 'Default Category', 'children' => array( array( 'name' => 'Draagtassen', 'children' => array( array( 'name' => 'Papier', 'children' => array( array( 'name' => 'Luxe papier', ), array( 'name' => 'Kraft papier', ), ), ), ), ), array( 'name' => 'Geschenkverpakkingen', 'children' => array( array( 'name' => 'Geschenkdozen', ), array( 'name' => 'Cadeauzakken', ), array( 'name' => 'Cadeau-/Inpakpapier', ), ), ), ), ), ); function createCat(array $data, $path = '1') { $data = array_merge( array( 'is_active' => 1, 'is_anchor' => 0, 'display_mode' => 'PRODUCTS', 'custom_use_parent_settings' => 0, 'path' => $path, ), $data ); $children = array(); if (isset($data['children'])) { $children = $data['children']; unset($data['children']); } $category = Mage::getModel('catalog/category')->setData($data)->save(); if (!empty($children)) { foreach ($children as $child) { createCat($child, $category->getPath()); } } } foreach ($categories as $cat) { createCat($cat); } $this->endSetup(); [/code] В итоге у меня есть: Категория по умолчанию с детьми, это хорошо, а затем один раз категория по умолчанию более. Но нет категории бренда. Спасибо. Подробнее здесь: [url]https://stackoverflow.com/questions/22790945/creating-categories-programmatically[/url]