2012-02-08 44 views
1

我真的希望有人遇到過這個,谷歌並沒有讓我太過分。從1.5.0.1> 1.6.2升級:檢出錯誤(無效的方法Mage_Checkout_Block_Onepage_Billing :: isTaxvatEnabled)

我正在將我的商店從1.5.0.1升級到1.6.2。謝天謝地,一切似乎都順利,但我遇到了一個非常奇怪的問題。

看來Magento的現在包括默認的主題中的一個新的模板 - app/design/frontend/base/default/template/persistent

當我試圖檢出和運行一些測試命令,我不斷收到此錯誤 - http://pastie.org/3337035

所以我想這是一個與自定義主題有關的升級問題,並暫時切換回新的默認主題。不,還是有同樣的錯誤。然後,我嘗試將新的/persistent模板目錄複製到我的自定義主題中,但這也沒有幫助。

我在這一點的解決方案是註釋掉的代碼有問題,像這樣:(持久性/結賬/ onepage/billing.phtml)

<?php //if ($this->isTaxvatEnabled()):?> 
<li><?php //echo $this->getTaxvatHtml() ?></li> 
<?php //endif; ?> 

這似乎已經解決了這一錯誤,並允許結賬通過,無問題,但我真的想知道這裏發生了什麼。什麼是Taxvat?我也試過這個帖子中的解決方案 - error with magento checkout無濟於事。

這是一個測試安裝,我很想在使用1.6.2之前清除它。感謝您的任何見解。

回答

1

您的phtml模板文件沒問題。但是,其母區(Mage_Checkout_Block_Onepage_Billing)缺少isTaxvatEnabled。這種方法是在Magento的1.6分支的新方法,所以有此

  1. 「你」(意思是你或Magento的連接)可能的原因未能更新app/code/core/Mage/Checkout/Block/Onepage/Billing.php

  2. 文件

    您或以前的開發人員或第三方模塊創建了代碼池替代,並且存在app/code/community/Mage/Checkout/Block/Onepage/Billing.php,app/code/local/Mage/Checkout/Block/Onepage/Billing.php,或已添加到路徑中的其他位置的帳單塊的舊版本(很少見,但我見過它)。

找到此文件的最快的方法是將下面的代碼位添加到您的PHTML模板文件

$rClass = new ReflectionClass($this); 
var_dump($rClass->getFilename()); 

如果該文件是在core,那麼你的升級失敗,和你有一個系統的一半是1.5和1.6。最常見的原因是一個大腦死亡的Magento Connect,雖然無法上傳所有文件是另一個常見原因,但會在某些類型的文件權限錯誤上靜默失敗。重新開始升級,區分升級文件樹和新下載的樹。

如果該文件是在其他地方,你需要

  1. 確定什麼方法,屬性,或其他代碼被添加到該文件在您的communitylocal碼池

  2. 製作副本的1.6.2 Billing.php

  3. 從一個方法添加到文件

  4. Billing.php替換爲您剛剛創建的Billing.php

+0

啊,*在* app/code/local/Mage/Checkout/Block/Onepage下是*修改過的Billing.php。這當然是該文件的舊版本。我不敢相信我沒有想到要去那裏看。謝謝你的回答Alan。 – rocky 2012-02-08 03:13:27