获取magento中的产品属性值

时间:2013-01-10 06:44:43

标签: php zend-framework magento

您好我使用以下代码获得了产品的最大元素,但它没有显示产品<{strong>的size attribute,大小属性在前端可见,但我不明白为什么不用这段代码打印

<?php
ob_start();
session_start();
ini_set('display_errors', 1);
//for order update
include '../../../../app/Mage.php';
Mage::app('default');
echo '<pre>';
if(isset($_REQUEST['productid'])){
$productId = $_REQUEST['productid'];
}else{

$productId = '12402'; // product ID 10 is an actual product, and used here for a test
}
$product = Mage::getModel('catalog/product')->load($productId);  //load the product     
//$product_id = $product->getId();
//$created_at = $product->getcreated_at();
//$description = $product->getdescription();
//$short_description = $product->getshort_description();
//$sku = $product->getsku();
//$size_fit = $product->getsize_fit();
//$style_ideas = $product->getstyle_ideas();
//$name = $product->getname();
//$price = $product->getprice();
//$stocklevel = (int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($product)->getQty();  

5 个答案:

答案 0 :(得分:3)

如果是size_fit属性(我猜这是因为它是你代码中唯一的大小尝试......)使用$product->getSizeFit()。仅限大小使用$product->getSize()。如果没有返回任何内容,请发布属性安装程序(如果有)。 Mufadall他的回答也是正确的,但判断你的代码只是使用了错误的语法。

基本上根据魔法获取方法,第一个字母变为大写字母,所有其他字母变成下划线。

例如:要抓取my_sample_attribute,请使用getMySampleAttribute()

getData('my_sample_attribute')也是一个选项,但你不应该这样做,因为在某些情况下,对于某些属性getData('attribute')会返回一个不同的值,然后getAttribute() ...

答案 1 :(得分:2)

$product->getData($attribute_code);

将返回实际的属性值。对于带有类型下拉列表的属性,它将返回选项ID

$product->getResource()->getAttribute($attribute_code)->getFrontend()->getValue($product);

将返回实际值

答案 2 :(得分:1)

您可以使用:

$product->getData('Your Attribute ID');

答案 3 :(得分:0)

转到尺寸属性并检查产品列表中使用的下拉菜单,如果设置为否,则将其设置为是,之后您可以使用其他产品属性获取尺寸属性

答案 4 :(得分:0)

您可以使用getters或getData(); getter使用magic __get()方法设置为magento,您可以通过以下方式使用它:

$product->getDescription() // ( to get description attribute)
$product->getShortDescription() // (to get short_description attribute)

所以基本上你用下划线爆炸属性,然后大写单词,你将得到你在“获取”之后需要放的东西。

这是我一直非常有用的东西

Zend_Debug::dump($product->getData());

这可以获取您必须使用的所有数据。如果您缺少数据,则表示未加载数据。

祝你好运!