1抽象方法因此必须声明为抽象或实现其余方法

时间:2012-05-19 09:17:22

标签: php magento shipping

我最近将我的magento商店从1.5.1升级到1.7.0版本。大多数事情都是应有的,但是当我通过管理区域获得Shipping Method选项时,我得到以下错误。

Fatal error: Class Zenprint_Ordership_Model_Shipping_Carrier_Ups contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Mage_Usa_Model_Shipping_Carrier_Abstract::_doShipmentRequest) in /home/dev/public_html/app/code/community/Zenprint/Ordership/Model/Shipping/Carrier/Ups.php on line 33

在Ups.php的第33行,这是代码。

extends Mage_Usa_Model_Shipping_Carrier_Abstract

我通过Magento Connect检查了所有模块,它们都更新为稳定版。升级时有什么遗漏的吗?

由于

1 个答案:

答案 0 :(得分:1)

Magento的1.6.x分支重新考虑了Mage_Usa_Model_Shipping_Carrier_Abstract的工作原理,其中包括添加一个所有子类必须实现的抽象方法。

您的系统上有一个名为Zenprint_Ordership的模块,其中包含一个运输公司类。它可能是this extension的一部分。

此扩展程序尚未更新,无法与Magento 1.6+配合使用。要让您的商店再次运作,您应该通过重命名/删除文件来禁用此扩展程序

#rename so it doesn't have a xml extension to disable
app/etc/modules/Zenprint_Ordership.xml

app/etc/modules/Zenprint_Ordership.xml.disable

这将删除您使用Zenprint_Ordership的任何自定义功能,但应将系统恢复到正常工作状态。

长期来说,你需要

  1. 重新编码Zenprint_Ordership模块以使用您的系统,因为从Magento 1.2开始,开发人员似乎没有更新它。

  2. 为使用Zenprint_Ordership的任何功能寻找替代方案。

  3. 此外,即使在禁用扩展程序后,您在查看使用此送货方式的旧订单时也可能会遇到问题。如果您对此感到满意,那么在课堂上定义一个空白_doShipmentRequest方法可能会帮助您解决这个问题,但我不确定是否会将它推荐给非程序员。

    高水平的解决方案?与任何复杂的Web应用程序一样,电子商务系统需要不断维护。如果您正在托管自己的购物车,请确保您可以访问具有专业知识的人员,以便在遇到此类情况时为您提供帮助。