【问题标题】:Magento set products category sort number programmaticallyMagento 以编程方式设置产品类别排序号
【发布时间】:2013-11-23 07:09:42
【问题描述】:

我正在为我的一位客户将数据从 oscommerce 导入到 magento。

已成功导入包括产品、类别和客户在内的所有数据。剩下的最后一件事是在设置类别后添加产品分类号。

我需要以下步骤:

导入产品 -> 为产品分配类别 -> 从 oscommerce 表中设置产品排序顺序(显示顺序)。

我搜索了很多,但我找不到在特定类别中设置产品排序顺序的方法。

任何帮助将不胜感激。

【问题讨论】:

    标签: magento magento-1.7


    【解决方案1】:

    默认情况下,产品在类别中的排序顺序由管理类别部分的“类别产品”选项卡中的位置列确定。

    我猜您需要批量更新每个类别的产品排序顺序。假设您可能需要编写一个 php 脚本,该脚本可以使用 sql 查询更新数据库中表 'catalog_category_product' 中的 'position' 列。

    文件可以保存在您的 magento 安装的根目录中。下面的代码只是给出一个想法,您需要修改/添加/删除代码才能根据您的要求完成它,然后从浏览器中点击文件。

    <?php
    
    $mageFilename = 'app/Mage.php';
    require_once $mageFilename;
    Mage::setIsDeveloperMode(true);
    ini_set('display_errors', 1);
    umask(0);
    Mage::app('admin');
    Mage::register('isSecureArea', 1);
    Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
    
    set_time_limit(0);
    ini_set('memory_limit','1024M');
    
    /***************** UTILITY FUNCTIONS ********************/
    function _getConnection($type = 'core_read'){
        return Mage::getSingleton('core/resource')->getConnection($type);
    }
    
    function _getTableName($tableName){
        return Mage::getSingleton('core/resource')->getTableName($tableName);
    }
    
    function _updatePosition($position, $categoryId, $productId){
        $connection     = _getConnection('core_write');
        $sql = "UPDATE " . _getTableName('catalog_category_product') . " ccp
                    SET  ccp.position = ?
                WHERE  ccp.category_id = ?
                AND ccp.product_id = ?";
        $connection->query($sql, array($position, $categoryId, $productId));
    } 
    

    希望有帮助!

    【讨论】:

    • 您好 div,感谢您的帮助,尽管从答案中我只能收集到这些值保存在 catalog_category_product 中的知识。不过再次感谢。
    • 我只是试图表明,当您完成产品导入和类别分配后,您可以制作一个脚本,从您的 OsCommerce 数据中读取“prod_id”和“sort_order”(一些您可能拥有的 CSV 格式)并使用正确的排序顺序填写 magento 的“catalog_category_product”表。
    猜你喜欢
    • 2015-08-08
    • 2011-09-23
    • 2013-08-16
    • 2011-12-11
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 2012-12-02
    • 2014-08-15
    相关资源
    最近更新 更多