我有一个Magento网站,该网站使用if语句条件中的下拉列表(是/否)属性的值。我遇到的问题是基于一个商店的视图,我得到了“ 1”,另一个是'0'(其中'1'是在这种情况下的正确值)。

例如,我有此代码:

if($_product->getData("lookinsideactive") == 1):
      if(Mage::app()->getStore()->getId() == 1):
                    echo "Store message 1";
                elseif(Mage::app()->getStore()->getId() == 12):
                    echo "Store message 2";
      endif;
endif;

当我转到存储ID 1时,消息不会出现,但是在商店ID 12中,消息“商店消息2”出现,因此第一个if语句条件为真。

如果我打印这些:

echo $_product->getData("lookinsideactive");

我在商店ID 1中获得“ 0”,并在商店ID 12中获得“ 1”。

我试过了:

echo $_product->getAttributeText('lookinsideactive');

商店ID 1显示“否”,并存储ID 12显示“是”。

另一件事是,这些条件在两家商店的其他产品上都很好地效果很好,只是该结果所显示的一种产品。

因此,总体而言,该产品的两个商店视图上的结果应为“ 1”,或者在两个商店视图上都应“ 0”。

我已经检查了使用此问题产品和另一个工作产品的属性集,它们都使用相同的属性集,具有相同的属性值“ LookInsIdeActive”。

我不确定我是否错过了一些简单的东西,但是需要一些有关可能的原因或一些建议来调试此建议的建议。

感谢任何帮助,谢谢。

有帮助吗?

解决方案

您可以为不同的属性具有不同的范围。您的属性具有显而易见的范围“商店视图”。替代品是:“商店”,“网站”和“全球”。

您可以使用脚本更改范围,但是在此更改之后,我认为您必须清理数据库,因为Magento在获取数据时会忽略范围。写它们时只有很重要。

您可以在后端进行检查,当您查看产品时,可以更改左上方的范围,在Selectbox旁边是信息[Store View]该属性的范围是什么。

许可以下: CC-BY-SA归因
scroll top