2013-07-11 51 views
0

我正在使用他們的類別獲取所有產品,低於我正在使用的代碼,但我希望獲得產品的位置。 我沒有得到如何更改我的代碼,以便它會進行優化。如何在magento中獲得產品的位置

$products = Mage::getModel('catalog/product')->getCollection()->addAttributeToSort('position'); 
       $prodIds=$products->getAllIds(); 
       if(count($prodIds)>0) 
       { 
        $product = Mage::getModel('catalog/product'); 
        $i=0; 
        foreach($prodIds as $productId) 
        { 
         $ids= array(); 
         $productCollection = Mage::getModel('catalog/product')->load($productId); 
         $final['prodCat_list'][$i]['sku']= $productCollection ->getSku(); 
         $final['prodCat_list'][$i]['product_id']= $productId; 
         $final['prodCat_list'][$i]['name']= $productCollection ->getName(); 
         $final['prodCat_list'][$i]['image']=$productCollection ->getThumbnailUrl(); 
         $final['prodCat_list'][$i]['description']=$productCollection ->getDescription(); 
         $final['prodCat_list'][$i]['short_description']=$productCollection ->getShortDescription(); 
         $final['prodCat_list'][$i]['weight']=$productCollection ->getWeight(); 
         $final['prodCat_list'][$i]['created_at']=$productCollection ->getCreatedAt(); 
         $final['prodCat_list'][$i]['updated_at']=$productCollection ->getUpdatedAt(); 
         $final['prodCat_list'][$i]['price']=$productCollection ->getPrice(); 
         $final['prodCat_list'][$i]['special_price']=$productCollection ->getSpecialPrice(); 
         $final['prodCat_list'][$i]['tax_class_id']=$productCollection ->getTaxClassId(); 
         $final['prodCat_list'][$i]['cat_id']= implode(',',$productCollection ->getCategoryIds()); 
         $ids[$i]=$result[$i]['category_ids']; 
         foreach($productCollection ->getCategoryIds() as $categoryId) 
         { 
          $category = Mage::getModel('catalog/category')->load($categoryId); 
          $final['prodCat_list'][$i]['cat_name'][$categoryId]= $category->getName(); 
         } 
         $i++; 
        } 

我還想在$ final ['prodCat_list']變量中添加產品的位置。

回答

0

您應該考慮清理該代碼。無論如何,下面是解決你的問題。

foreach($productCollection ->getCategoryIds() as $categoryId) 
{ 
    $category = Mage::getModel('catalog/category')->load($categoryId); 
    $final['prodCat_list'][$i]['cat_name'][$categoryId]= $category->getName(); 

    // new code starts here   
    $positions = $category->getProductsPosition(); 

    if ($positions) { 
     $final['prodCat_list'][$i]['cat_name'][$categoryId]['position'] = $positions[$productId]; 
    } 
} 
相關問題