我正在尝试获取一些基于产品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
当您想使用魔术 setter/getter 时,Magento将snake_case转换为camelCase; IE。属性代码为cool_custom_attribute的属性将转换为coolCustomAttribute,即$product->getCoolCustomAttribute()
编辑:
您可能需要加载产品模型,因为有时我会遇到将所有自定义属性都从集合中拉出时附加的所有自定义属性的情况(我想是出于性能方面的考虑)。就像是:
$_product = Mage::getModel('catalog/product')->load($product->getId());
$strProdSkuSup = $_product->getSkuSupplier();
另外,您知道有一个dedicated StackExchange site for Magento吗?

关于php - 从Magento 1.9中的产品获取自定义属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27959415/

10-16 06:43
查看更多