Magento使用php获取下拉属性值

Magento使用php获取下拉属性值,php,magento,attributes,Php,Magento,Attributes,我还有一个Magento问题。 我正在尝试将所有活跃的产品分类为新的类别,这会占用很多时间。因此,现在我想导出产品并加快导出速度,但Magento导出功能并没有真正为我做到这一点,因为它在导出到csv时不会在正确的列中显示正确的值 因此,我正在使用我在StackOverflow上找到的这个php脚本,它似乎工作得很好。但我正在尝试从我们创建的两个下拉属性中获取值,不幸的是,我似乎无法正确获取 非常感谢您的帮助 <?php error_reporting(E_ALL | E_STRICT);

我还有一个Magento问题。 我正在尝试将所有活跃的产品分类为新的类别,这会占用很多时间。因此,现在我想导出产品并加快导出速度,但Magento导出功能并没有真正为我做到这一点,因为它在导出到csv时不会在正确的列中显示正确的值

因此,我正在使用我在StackOverflow上找到的这个php脚本,它似乎工作得很好。但我正在尝试从我们创建的两个下拉属性中获取值,不幸的是,我似乎无法正确获取

非常感谢您的帮助

<?php
error_reporting(E_ALL | E_STRICT);
define('MAGENTO_ROOT', getcwd());
$mageFilename = MAGENTO_ROOT . '/app/Mage.php';
require_once $mageFilename;
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);
Mage::app();
$products = Mage::getModel("catalog/product")->getCollection();
$products->addAttributeToSelect('category_ids');
$products->addAttributeToFilter('status', 1);//optional for only enabled products
$products->addAttributeToFilter('visibility', 4);//optional for products only visible in catalog     and search
$fp = fopen('exports.csv', 'w');
$csvHeader = array("sku", "z_typ", "z_bereich", "category_ids");
fputcsv( $fp, $csvHeader,";");
foreach ($products as $product){
$sku = $product->getSku();
$z_typ = $product->getResource()->getAttribute('z_typ')->getFrontend()->getValue($product);
$z_bereich = $product->getResource()->getAttribute('z_bereich')->getFrontend()->getValue($product);
$categoryIds = implode(',', $product->getCategoryIds());//change the category separator if needed
fputcsv($fp, array($sku, $z_typ, $z_bereich, $categoryIds), ";");
}
fclose($fp);
?>
对于这两个属性,这只返回NO。我还尝试了以下操作,这使两列都为空:

<?php
error_reporting(E_ALL | E_STRICT);
define('MAGENTO_ROOT', getcwd());
$mageFilename = MAGENTO_ROOT . '/app/Mage.php';
require_once $mageFilename;
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);
Mage::app();
$products = Mage::getModel("catalog/product")->getCollection();
$products->addAttributeToSelect('category_ids');
$products->addAttributeToFilter('status', 1);//optional for only enabled products
$products->addAttributeToFilter('visibility', 4);//optional for products only visible in catalog     and search
$fp = fopen('exports.csv', 'w');
$csvHeader = array("sku", "z_typ", "z_bereich", "category_ids");
fputcsv( $fp, $csvHeader,";");
foreach ($products as $product){
$sku = $product->getSku();
$z_typ = $product->getAttributeText('z_typ');
$z_bereich = $product->getAttributeText('z_bereich');
$categoryIds = implode(',', $product->getCategoryIds());//change the category separator if needed
fputcsv($fp, array($sku, $z_typ, $z_bereich, $categoryIds), ";");
}
fclose($fp);
?>

我自己发现了错误

忘记将这两个属性加载到$products数组中,因此它可能无法显示它们

无论如何,谢谢你的帮助:

对于想要使用此功能的任何人,以下是正确的代码:

<?php
error_reporting(E_ALL | E_STRICT);
define('MAGENTO_ROOT', getcwd());
$mageFilename = MAGENTO_ROOT . '/app/Mage.php';
require_once $mageFilename;
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);
Mage::app();
$products = Mage::getModel("catalog/product")->getCollection();
$products->addAttributeToSelect('category_ids');
$products->addAttributeToSelect('z_typ');
$products->addAttributeToSelect('z_bereich');
$products->addAttributeToFilter('status', 1);//optional for only enabled products
$products->addAttributeToFilter('visibility', 4);//optional for products only visible in catalog and search
$fp = fopen('exports.csv', 'w');
$csvHeader = array("sku", "z_typ", "z_bereich", "category_ids");
fputcsv( $fp, $csvHeader,";");
foreach ($products as $product){
    $sku = $product->getSku();
    $attributes = $product->getAttributes();
    $z_typ = $attributes['z_typ']->getFrontend()->getValue($product);
    $z_bereich = $attributes['z_bereich']->getFrontend()->getValue($product);
    $categoryIds = implode(',', $product->getCategoryIds());//change the category separator if needed
    fputcsv($fp, array($sku, $z_typ, $z_bereich, $categoryIds), ";");
}
fclose($fp);
?>