【问题标题】:how to assign random product positions in Magento category?如何在 Magento 类别中分配随机产品位置?
【发布时间】:2016-11-29 19:13:35
【问题描述】:

我在 Magento 1.9 中遇到以下问题:其中有很多产品的类别,默认排序顺序是按位置,Magento 后端中的所有产品位置都是 1。所以当你打开一个类别时会发生什么在前端首先展示了许多类似的产品,然后是另一组类似类型的产品。我想以某种方式(通过脚本或其他任何方式)随机化他们的位置,以便不同类型的产品混合在一起。

例如,我有葡萄酒类别, 香槟和威士忌及产品 在其中,我也有类别生日产品,其中包括这些类别的产品。当在前端打开类别时,首先会出现很多威士忌产品 然后展示了很多酒......等等,我希望它们混合在一起。提前感谢您 任何帮助!

【问题讨论】:

    标签: magento magento-1.9


    【解决方案1】:

    你可以这样做:

    首先获取类别:

    $category = Mage::getModel('catalog/category')
    ->setStoreId(Mage_Core_Model_App::ADMIN_STORE_ID)
    ->load($categoryId);
    

    然后是它的产品定位:

    $products = $category->getProductsPosition();
    

    这将是一个这样组织的数组:

    product_id_1 => position_1
    product_id_1 => position_2
    

    因此,对于其中一种产品,只需设置一个随机位置(此处为 0 到 9999 之间):

    foreach($products as $productId => $position ){
        $products[$productId] = '' . rand(0,9999);
    }
    

    最后保存:

    $category->setPostedProducts($products);
    $category->save();
    

    下面是一个可以放在 /shell magento 目录中的脚本:

    <?php
    require_once './abstract.php';
    
    class RandomCategoryOrder extends Mage_Shell_Abstract {    
        private $_categoryId = 188;
    
        public function run(){
            $category = Mage::getModel('catalog/category')
            ->setStoreId(Mage_Core_Model_App::ADMIN_STORE_ID)
            ->load($this->_categoryId);
    
            $products = $category->getProductsPosition();
    
            foreach($products as $productId => $position ){
                $products[$productId] = '' . rand(0,9999);
            }
    
            $category->setPostedProducts($products);
    
            try{
                $category->save();
            }catch(Exception $e){
                echo $e->getMessage();
            }
        }    
    
    }
    $randowCategoryOrder = new RandomCategoryOrder();
    $randowCategoryOrder->run();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多