在php提要Magento中获取包含主类别和子类别的类别名称

在php提要Magento中获取包含主类别和子类别的类别名称,magento,magento-1.7,Magento,Magento 1.7,我们有一个用于Magento的producfeed,它是用php制作的,并且正在制作一个.xml producfeed。在下图中,您可以看到我们如何运行循环以获取xml提要中的产品。我们还将获得具有以下代码的类别: //Prepare the loop foreach($prodIds as $productId) { $product->load($productId); $product_data = array()

我们有一个用于Magento的producfeed,它是用php制作的,并且正在制作一个.xml producfeed。在下图中,您可以看到我们如何运行循环以获取xml提要中的产品。我们还将获得具有以下代码的类别:

//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>
//准备循环
foreach($prodIds作为$productId){
$product->load($productId);
$product_data=array();
//获取产品数据
$product_data['title']=$product->getName();
$product_data['description']=带标签($product->getDescription());
$product_data['sku']=$product->getSku();
$product\U data['color']=$product->getResource()->getAttribute('color')->getFrontend()->getValue($product);
如果($product->getSpecialPrice())
$product_data['price']=number_格式($product->getSpecialPrice(),2);
其他的
$product_data['price']=数字_格式($product->getPrice(),2);
$product_data['specialprice']=number_格式($product->getSpecialPrice(),2);
$product\U data['old\U price']=number\U格式($product->getPrice(),2);
$product_data['availability']=“Op voorraad”;
$product_数据['shippingcost']=“6.95”;
$product_data['delivery_time']=“2至5 werkdagen”;
$product_data['link']=Mage::getBaseUrl()。$product->getUrlPath();
$product\u data['image\u link']=Mage::getBaseUrl(Mage\u Core\u Model\u Store::URL\u TYPE\u MEDIA)。'catalog/product'.$product->getImage();
$product_data['image_link_small']=Mage::helper('catalog/image')->init($product,'small_image')->resize(200200);
//获取提要类别数据
$childIds=Mage::getModel('catalog/product_type_configurable')->getChildrenIds($product->getId());
//回音循环
?> 
]]> 
]]> 
]]> 
]]> 
]]> 
]]>  
]]>
]]>
]]>
]]>
]]> 
]]> 
]]>
现在我们要区分主类别和子类别。使用上面的代码,我们得到一个包含所有类别的列表,它应该是两个字段,一个包含主类别,一个包含子类别


有人能帮我修改代码吗?

您可以按级别检查类别是否为顶级类别

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

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

Marius,谢谢你对屏幕截图的回复和评论,我只是用我们正在使用的代码的一部分替换了它。在这一部分中…我们显示了类别。现在我们只需要为类别保留该部分,为子类别保留一行。希望你能帮上忙亲爱的马吕斯,你有时间看看我的问题吗?Thanks@Coen是的。我提供了一个如何检查类别是否为顶级的解决方案。这取决于您如何将其集成到代码中。