从 Magento 1.9 中的产品获取自定义属性

Get custom attribute from product in Magento 1.9

我正在尝试根据产品 SKU 获取一些产品数据。这是有效的,但我还需要同时获得一个自定义添加的属性,名为 'sku_supplier'。这可能吗?

这是我得到的:

require $_SERVER['DOCUMENT_ROOT'] . "/app/Mage.php";
Mage::app();

$sku = '748547';

$products = Mage::getResourceModel('catalog/product_collection');
$products->addAttributeToSelect('*');
$products->addAttributeToFilter('visibility', array('neq' => 1));
$products->addAttributeToFilter('status', 1);
$products->addAttributeToFilter('sku', $sku);
$products->setCurPage(1)->setPageSize(1);
$products->load();

if ($products->getFirstItem()) {
    $product       = $products->getFirstItem();
    $strProdName   = $product->getName();
    $strProdSku    = $product->getSku();
    $strProdSkuSup = $product->getSku_Supplier(); // <= I want to show this
}else{
    $addError          = 'true';
    $addErrorMessage[] = 'Error...';    
}

提前致谢,

只需删除下划线:

$strProdSkuSup = $product->getSkuSupplier();  
$strProdSkuSup = $product->getData('sku_supplier'); //alternative 

Magento 将 snake_case 转换为驼峰命名法,当你想使用 magic getters 时; IE。具有属性代码 cool_custom_attribute 的属性将转换为 coolCustomAttribute,即 $product->getCoolCustomAttribute().

编辑:

可能需要加载产品模型,因为有时我遇到过当您将其从集合中拉出时并非所有自定义属性都已附加(出于性能原因我猜测)。类似于:

$_product = Mage::getModel('catalog/product')->load($product->getId());
$strProdSkuSup = $_product->getSkuSupplier();  

另外,你知道有一个 dedicated StackExchange site for Magento 吗?

使用这个

$strProdSkuSup = $product->getSkuSupplier();

而不是

$strProdSkuSup = $product->getSku_Supplier();