Magento:如何在产品页面获取制造商名称?

13

我想在product/view.phtml中显示制造商名称。 我已经使用了各种函数,例如

<?php echo $_product->getAttributeText('manufacturer');?>
<?php echo $this->htmlEscape($_product->getData('manufacturer'));
<?php echo $_product->getData('manufacturer'); ?>

但是它们都没有帮助。那么如何在产品查看页面获取制造商名称。

8个回答

24

如上所述,您需要遵循以下几个步骤:

1)前往属性集,并确保“manufacturer”已分配给您正在使用的属性集。

2)确保已将一些制造商添加到属性选项中。

3)将其中一个选项分配给您的产品。

根据您的Magento版本,这应该有效:

<?php echo $_product->getAttributeText('manufacturer') ?>

我能看到你遇到的错误:

gives error Call to a member function getManufacturer() on a non-object in 

你确定你将这段代码放在了这行代码之后吗:

<?php $_product = $this->getProduct(); ?>

1
好的,我没有在属性集中添加“制造商”属性。但是当我使用 <?php echo $_product->getData('manufacturer'); ?> 时,它打印了一些数字值,如1571。 - akt
而且 <?php echo $_product->getAttributeText('manufacturer') ?> 没有输出任何内容。 - akt
你能否刷新你的索引?因为你已经向集合中添加了一个新属性,可能需要这样做。 - Andrew
<?php echo $_product->getAttributeText('manufacturer') ?> 在产品视图模板中可以使用,但在产品列表中无法使用。 - Klevis Miho
你确定已经设置了属性以在列表页面上显示吗?请检查属性设置。 - Andrew
显示剩余2条评论

1

您可以使用类似这样的方法来获取制造商名称

$_product->getResource()->getAttribute('manufacture')->getFrontend()->getValue($_product);

在product/view.phtml中,出现错误<b>致命错误</b>:对非对象调用成员函数getAttribute()。 - akt
如果您正在产品详情页面上,则不会出现任何错误。 - Mufaddal
我也使用这个函数,Kenny是正确的,你需要同时拥有"在产品列表中使用"选项,就像Andrew所说,你还需要添加 <?php $_product = $this->getProduct(); ?> - Vern Burton
如果您在产品视图页面中使用,则会有$_product对象。 - Mufaddal

1
请确保以下事项: 1. 您的属性代码为“制造商”。 2. “制造商”属性已添加到您的属性集中。 3. 您已在管理目录产品中选择了属性值。 4. 相应的产品在前端可见。
如果以上四点都是肯定的,那么您的代码应该可以正常工作。

好的,我在属性集中没有添加“制造商”属性。但是当我使用 <?php echo $_product->getData('manufacturer'); ?> 时,它打印了一些数字值,如1571。 - akt

0

制造商(以及所有其他属性)是选项列表的一部分,可以通过getOptionsList访问。

尝试使用此代码片段:

<?php
     $_options = $this->getOptionList();
     echo $_options['manufacturer']['value'];
?>

你能否在你的回答中加入更多解释? - secretformula
制造商是选项列表的一部分,可以通过 getOptionsList 访问。我试过几次直接访问属性,但不起作用...这个解决方法有效 :)...我理解您的问题了吗?O:-) - Stephan
太好了!现在将其编辑到您的答案中。带有解释的答案总是更好。 - secretformula

0
<?php 
  echo $_helper->productAttribute($_product, $_product->getManufacturer(), 'manufacturer') 
?>

0
尝试:

$_procuct->getManufacturer();


在product/view.phtml中调用非对象成员函数getManufacturer()导致错误。 - akt

-1

请确保制造商属性的“用于产品列表”选项已设置为“是”。

之后您就可以进行操作了。

$_product->getManufacturer();

-1

$_product->getAttributeText('country_of_manufacture');


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接