Magento 1.10企业销售规则产品子选择错误

时间:2013-01-04 23:28:11

标签: php magento

所以我试图在Magneto中制定一个固定金额的销售规则。当我登录管理员时,我会去促销活动 - >购物车价格规则并创建新规则。当我进入条件选项卡(从左侧菜单)我开始创建我的销售规则条件。当我尝试从条件标签的下拉菜单中选择“产品子选择”时。它返回并预告php警告 - >

  

警告:为foreach()提供的参数无效   /var/www/staging/app/code/core/Mage/Rule/Model/Condition/Abstract.php   在第246行

我还注意到,我移植到此magento实例的一些规则具有相同的错误。但似乎只有在从端口设置“产品子选择”或我尝试从头创建一个时才会发生。

此链接描述了我遇到的类似问题(对不起,部分是俄语)http://magento-forum.ru/topic/851/

我还读到这是1.5的核心问题。但是已修复http://www.magentocommerce.com/bug-tracking/issue?issue=11214(可能需要登录Magento才能查看此问题)

我在第246行验证了代码已在app / code / core / Mage / Rule / Model / Condition / Abstract.php中更新

任何人都可以向我提供有关如何修复此错误的其他信息。我已经使用相同的数据集检查了多个Magento Enterprise 1.10实例,并且都有相同的错误。在此先感谢,如果我能提供更多信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

由于Magento Enterprise Edition 1.10基于社区版1.5,因此Magento核心团队的补丁修复该特定错误是有意义的。在这种情况下,您可以安全地修改核心,因为您正在应用核心代码。

此问题已在CE 1.6.0.0中修复。根据以下指责,它通过修改方法getValueSelectOptions()

来修复

https://github.com/LokeyCoding/magento-mirror/blame/magento-1.6/app/code/core/Mage/Rule/Model/Condition/Abstract.php#L246

所以你只需要:

  1. 打开app / code / core / Mage / Rule / Model / Condition / Abstract.php

  2. 找到getValueSelectOptions()方法

  3. 使用代码团队所做更改中的以下代码替换其内容:

        public function getValueSelectOptions()
        {
            $valueOption = $opt = array();
            if ($this->hasValueOption()) {
               $valueOption = (array) $this->getValueOption();
            }
            foreach ($valueOption as $k => $v) {
               $opt[] = array('value' => $k, 'label' => $v);
            }
            return $opt;
        }
    
  4. 保存文件并确保问题得到解决。