Magento $_product->getName empty

2019-07-03 03:56发布

问题:

I want to export a custom XML feed from Magento, and this is the following code I use:

<?php
header('Content-Type: text/xml'); // XML's a handy dandy format

include '../app/Mage.php'; // Include the magento core

include 'ArrayXml.php';

Mage::app(); //And start up the Magento app

$_result = array(); // Make sure we have a result array to store our products
$_products = Mage::getModel('catalog/product')->getCollection();

foreach($_products as $_product) {
$_result['produs'][] = array(
'denumire' => $_product->getName(),
'descriere_scurta' => $_product->getShortDescription(), //product's short description
'descriere_lunga' => $_product->getDescription(), // product's long description
'pret_intreg' => $_product->getPrice(), //product's regular Price
'pret_redus' => $_product->getSpecialPrice(), //product's special Price
'url_produs' => $_product->getProductUrl(), //product url
'fotografie_produs' => $_product->getImageUrl() //product's image url
);
}
$_converter = new ArrayXML();
echo $_converter->toXML($_result);

However, only the Product URL and the Image URL are giving me correct values. The rest are empty.

What gives?

回答1:

'name' and others are an attributes, so you should call addAttributeToSelect:

$_products = Mage::getModel('catalog/product')->getCollection()
    ->addAttributeToSelect(array(
        'name',
        'short_description',
        'description'
    ))
    ->addPriceData();