我有一个属性cdn_image_name
,适用于大约90,000种产品。最近内容编辑报告说,大约有三种产品缺少图像。我已经向Magento的getData()方法指出了这个问题。
这是与原始代码类似的代码。
$cdnImageName = $product->getData('cdn_image_name');
我也试过了:
$cdnImageName = $product->getCdnImageName();
$cdnImageName = $product->getAttributeText('cdn_image_name');
在Magento管理界面中,我看到填充了正确值的字段。我检查了数据库它也有价值。它只是通过我尝试过的任何方式返回“null”。
注意:没有拼写错误,我已经检查了“n”次,它几乎适用于所有产品,只有少数。
答案 0 :(得分:3)
如果您在产品列表中设置'会出现此问题。没有'。只需在“管理属性”中更改它。
答案 1 :(得分:2)
如果您使用自定义属性,则可以像
一样使用它$cdnImageName = Mage::getResourceModel('catalog/product')->getAttributeRawValue($product_new->getData("entity_id"), "cdn_image_name", $storeID);
$product_new->getData("entity_id") = your product id
修改强>
同时检查
$_item = $this->getProduct()->getId();
$_resource = $this->getProduct()->getResource();
$optionValue = $_resource->getAttributeRawValue($_item, 'cdn_image_name', Mage::app()->getStore());
echo $optionvalue;
希望这对你有用。
答案 2 :(得分:0)
你可以试试这个
$cdnImageName = Mage::getResourceModel('catalog/product')->getAttributeRawValue($product->getId(), 'cdn_image_name');
由于
答案 3 :(得分:0)
您可以使用直接SQL查询,然后在Magento中获取它:
// Create read and write connections to the database
$resource = Mage::getSingleton('core/resource');
$connRead = $resource->getConnection('core_read');
// find out attribute id of cdn_image_name from the Magento database
$attributeId = 123;
$sqlCdnImageName = "SELECT `cpet`.`value`
FROM `catalog_product_entity` `cpe`
INNER JOIN `catalog_product_entity_text` `cpet`
ON `cpe`.`entity_id` = `cpet`.`entity_id`
WHERE `cpet`.`attribute_id` = $attributeId
AND `cpe`.`entity_id` = " . $product->getId() . ";";
$cdnImageName = $connRead->fetchOne($sqlCdnImageName);