6

バックエンドで設定されている順序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());
}

どうすればこれを達成できますか?

4

2 に答える 2

20

これが最終的に機能したものです:

$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() );
}
于 2013-01-14T13:44:13.733 に答える
2
$product_position_array = Mage::getModel('catalog/category')->load($CategoryID)->getProductsPosition();

これは の配列を返す必要があり$product_id = $positionます。

于 2014-07-19T05:01:20.920 に答える