2012-02-08 40 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