Magento商店的替代产品名称

时间:2012-06-28 13:13:38

标签: magento

我们有一个会计软件填充magento网上商店的名称字段,问题是有30个字符的限制,名称总是倾向于更多地针对我们的内部操作而不是SEO或UI。

我想知道为某些magento产品创建“替代名称”的最佳方法,但只有当它退出时,否则会回到常规名称字段。

最好的方法是创建一个新的Product Attribute(alternate_name)并在前端调用if else语句吗?

<?php if($_product->getAttributeText(’alternate_name’)) { 
 echo $_product->getAttributeText(’alternate_name’) 
 } else {
 echo $_product->getName(); 
 } ?>

我是否需要在布局文件夹中的几个位置更改它?或者是否有一个更容易的地方来覆盖此方法一次,并且每次调用$ product-&gt; getName()时都可以使用它?

1 个答案:

答案 0 :(得分:1)

如果您只需要在前端进行阅读/查看,则可以覆盖核心模型getName()的{​​{1}}方法,以执行以下操作:

Mage_Catalog_Model_Product

}

通过这种方式,您只需提供一个变更点,即可为所有产品public function getName() { if (Mage::app()->getStore()->isAdmin()) { return $this->getData('name'); } return ( ($this->getData('alternate_name') ? $this->getData('alternate_name') : $this->getData('name') ); 电话提供服务,无论他们来自哪里。

请注意,在编辑/保存getName()属性时,这样做会导致问题。

这是因为例如Magento后端还会使用您的name来填充产品修改getName()的{​​{1}}字段,因此登陆此name的值字段可以是<form><input>属性之一。

保存更改可能会导致在alternate_name属性中保存name值,这是您最不希望的。

为避免这种情况,上述方法始终返回alternate_name属性的值,以防呼叫来自管理区域。这应该足以捕获管理员编辑表单,但当然不能捕获其他可能的情况,其中name用于提供name次调用。