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


Magento 1.10 Enterprise Salesrule Product Subselection Error

所以我试图在《万磁王》中建立一个固定数量的销售规则。当我登录到管理员,我去促销->购物车价格规则,并创建一个新的规则。当我转到条件选项卡(从左侧菜单)时,我开始创建销售规则条件。当我尝试从条件标签的下拉菜单中选择"产品子选择"时。它返回并foreach 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查看此问题)

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

谁能给我提供更多的信息,告诉我如何去修复这个bug ?我已经检查了具有相同数据集的Magento Enterprise 1.10的多个实例,并且都有相同的错误。提前感谢,如果我能提供更多的信息,请告诉我。

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

该问题已在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. 打开应用程序/代码/核心/法师/规则/模型/条件/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. 保存文件并确保问题已解决