2013-01-04 66 views
0

所以我想在Magneto起牀一個固定金額的銷售規則。當我登錄到管理員時,我會去促銷 - >購物車價格規則並創建一個新規則。當我轉到「條件」選項卡時(從左側菜單),我開始創建我的銷售規則條件。當我嘗試從條件標籤的下拉菜單中選擇「產品選型」時。在 /var/www/staging/app/code/core/Mage/Rule/Model/Condition/Abstract.php)爲的foreach(提供了無效的參數:>Magento 1.10企業銷售規範產品子選擇錯誤

警告 - 這回和foreach PHP的警告 on line 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

任何人都可以提供有關我如何解決此錯誤的更多信息。我使用相同的數據集檢查了Magento Enterprise 1.10的多個實例,並且都具有相同的錯誤。提前致謝,並告知我是否可以提供更多信息。

回答

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. 打開應用/代碼/核心/法師/規則/型號/狀態/摘要.PHP

  2. 找到getValueSelectOptions()方法

  3. 替換其康特NTS與從代碼的團隊所做的更改下面的代碼:

    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. 保存文件,並確保該問題已得到解決。