我只是想让所有属于某个category ID
的产品按照Position
顺序设置在后端。
我似乎已经尝试过每一个可用的例子都无济于事。
我正在使用的基本代码如下(手动加载magento的外部php文件):
// Load Magento
require_once $_SERVER['DOCUMENT_ROOT'] . "/app/Mage.php";
umask(0);
Mage::app();
// set Store ID
$store_id = Mage::app()->getStore()->getStoreId();
// set Cat ID
$cat_id = 345;
$cat = Mage::getModel('catalog/product')->setId(345);
$products = Mage::getModel('catalog/product')
->getCollection()
->addCategoryFilter($cat)
->addAttributeToSelect("*")
->setOrder('name','asc')
->load();
foreach($products as $p) {
var_dump($p->getName());
}
我怎么能实现这个目标?
答案 0 :(得分:19)
这才是最终奏效的:
$cat_id = 345;
$category = Mage::getModel('catalog/category')->load($cat_id);
$collection = $category->getProductCollection()->addAttributeToSort('position');
Mage::getModel('catalog/layer')->prepareProductCollection($collection);
foreach ($collection as $product) {
var_dump( $product->getName() );
}
答案 1 :(得分:2)
$product_position_array = Mage::getModel('catalog/category')->load($CategoryID)->getProductsPosition();
这应该返回一个$product_id = $position
的数组。