【问题标题】:Creating categories programmatically以编程方式创建类别
【发布时间】:2014-04-01 15:57:28
【问题描述】:

尝试使用更新脚本设置类别。首先我删除了 Magento 默认创建的类别,然后使用递归创建类别。我也在 modules/xml 中获得了设置:

<depends>
     <Mage_Catalog />
</depends>

我的升级脚本在这里:

/* @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();

我到底有什么:

带有子项的默认类别,这很好,然后又是默认类别。但没有品牌类别。 谢谢。

【问题讨论】:

标签: magento categories magento-1.8


【解决方案1】:

脚本必须在数据文件夹中,而不是在 mysql4 中。

【讨论】:

    猜你喜欢
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多