如何在 Magento 类别中分配随机产品位置?
how to assign random product positions in Magento category?
我在 Magento 1.9 中遇到以下问题:有些类别中有很多产品,默认排序顺序是按位置排序,而 Magento 后端中的所有产品位置都是 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();
我在 Magento 1.9 中遇到以下问题:有些类别中有很多产品,默认排序顺序是按位置排序,而 Magento 后端中的所有产品位置都是 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();