2013-11-22 49 views
0

我们为在Magento中制作的产品提供了php,并且正在制作.xml产品。在下面的图片中,您可以看到我们如何运行循环来获取xml源中的产品。我们也得到以下代码类别:获取php源中的类别名称Magento主要和子类别

//Prepare the loop 
     foreach($prodIds as $productId) { 
      $product->load($productId); 
      $product_data = array();  
    //Get product data 
     $product_data['title']=$product->getName(); 
     $product_data['description']= strip_tags($product->getDescription()); 
     $product_data['sku']=$product->getSku(); 
     $product_data['color']=$product->getResource()->getAttribute('color')->getFrontend()->getValue($product); 
     if($product->getSpecialPrice()) 
      $product_data['price']=number_format($product->getSpecialPrice(), 2); 
     else 
      $product_data['price']=number_format($product->getPrice(), 2); 
     $product_data['specialprice']=number_format($product->getSpecialPrice(), 2); 
     $product_data['old_price']=number_format($product->getPrice(), 2); 
     $product_data['availability']="Op voorraad"; 
     $product_data['shippingcost']="6.95"; 
     $product_data['delivery_time']="2 tot 5 werkdagen"; 
     $product_data['link']=Mage::getBaseUrl().$product->getUrlPath(); 
     $product_data['image_link']=Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product'.$product->getImage(); 
     $product_data['image_link_small']= Mage::helper('catalog/image')->init($product, 'small_image')->resize(200,200); 



    //Get feed category data 

     $childIds = Mage::getModel('catalog/product_type_configurable')->getChildrenIds($product->getId()); 
    // Echo run the loop 
    ?> 
     <product> 
      <sku><![CDATA[<?php echo $product_data['sku'] ?>]]></sku> 
      <link><![CDATA[<?php echo $product_data['link'].$source ?>]]></link> 
      <title><![CDATA[<?php echo $product_data['title'] ?>]]></title> 
      <description><![CDATA[<?php echo $product_data['description'] ?>]]></description> 
      <image_link><![CDATA[<?php echo $product_data['image_link'] ?>]]></image_link> 
      <image_link_small><![CDATA[<?php echo $product_data['image_link_small'] ?>]]></image_link_small> 
      <price><![CDATA[<?php echo $product_data['price'] ?>]]></price> 
      <old_price><![CDATA[<?php echo $product_data['old_price'] ?>]]></old_price> 
      <availability><![CDATA[<?php echo $product_data['availability'] ?>]]></availability> 
      <delivery_time><![CDATA[<?php echo $product_data['delivery_time'] ?>]]></delivery_time> 
      <id><![CDATA[<?php echo $product_data['sku'] ?>]]></id> 
      <delivery_costs><![CDATA[<?php echo $product_data['shippingcost'] ?>]]></delivery_costs> 
      <special_price><![CDATA[<?php echo $product_data['specialprice'] ?>]]></special_price> 

      <categories><?php $categoryCollection = $product->getCategoryCollection()->addAttributeToSelect('name');?><?php foreach($categoryCollection as $cat): ?><subcat><?php echo htmlentities($cat->getName()); ?></subcat><?php endforeach; ?></categories> 



     </product> 

     <?php } //End of loop ?> 
     </products> 

现在我们想要区分主要类别和子类别。使用上面的代码,我们得到一个包含所有类别的列表,它应该是两个字段,一个是主类别,另一个是子类别。

有人可以帮我修改代码吗?

回答

2

您可以检查一个类别是否是顶级类别的级别。

if ($category->getLevel() == 2){ 
    //is top category 
} 
elseif ($category->getLevel() > 2){ 
    //is subcategory 
} 

并下次发布代码,而不是截图。这是什么,蚂蚁的问题? :)

+0

Marius,感谢您的回复并对截图发表评论,我刚刚用我们使用的部分代码替换了它。在部分 ...我们显示的类别。现在我们只需要保留那个类别和一个子类别的新行。希望你能帮助 – Coen

+0

亲爱的Marius,你有没有时间看看我的问题?谢谢 – Coen

+0

@Coen我做到了。我提供了一个关于如何检查类别是否为最高级别的解决方案。这取决于你如何将它集成到你的代码中。 – Marius

相关问题