0

我正在获取所有产品及其类别,低于我正在使用的代码,但我想获得产品的位置。我不知道如何更改我的代码以便优化。

 $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'] 变量中添加产品的位置。

4

1 回答 1

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];
    }
}
于 2014-01-31T14:43:34.287 回答