你可以这样做:
首先获取类别:
$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();