У нас есть producfeed для Magento, который сделан в php и создает XML-файл. На изображении ниже вы можете увидеть, как мы запускаем цикл, чтобы получить продукты в корне XML. Мы также получаем категории со следующим кодом:Получить название категории в php feed 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>
Теперь мы хотим, чтобы сделать разницу между основными категориями и подкатегориями. С приведенным выше кодом мы получаем список со всеми категориями, и это должно быть два поля: одно с основными категориями и одно с подкатегориями.
Может кто-нибудь помочь мне изменить код?
Marius, спасибо за ваш ответ и комментарий на скриншот, я просто заменил его частью кода, который мы используем. В части ... мы показываем категории. Теперь нам нужно сохранить это только для категорий и новой строки для подкатегорий. Надеюсь, ты сможешь помочь –
Coen
Дорогой Мариус, ты успел взглянуть на мой вопрос? Спасибо – Coen
@Coen я сделал. И я предложил решение о том, как проверить, является ли категория верхним уровнем или нет. Это зависит от вас, как вы интегрируете это в свой код. – Marius