我正在尝试自定义Magento Paypal Express Checkout功能,以使用当前商店的货币而不是基础货币向Paypal传递订单总金额。但是,我的自定义设置不会出现在网站上。
这是我创造的:
app/code/local/My/Paypal/Model/Express/Checkout.php
<?php
class My_Paypal_Model_Express_Checkout extends Mage_Paypal_Model_Express_Checkout {
public function getCheckoutShortcutImageUrl() {
//Copy pasted the original code with some modifications to use
// _quote->getGrandTotal()
}
public function start($returnUrl, $cancelUrl, $button = null) {
//Copy pasted original code with modifications to use
//_quote->getGrandTotal() and _quote->getStoreCurrencyCode()
}
}
?>
app/code/local/My/Paypal/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<My_Paypal>
<version>0.1.0</version>
</My_Paypal>
</modules>
<global>
<models>
<paypal>
<rewrite>
<express_checkout>My_Paypal_Model_Express_Checkout</express_checkout>
</rewrite>
</paypal>
</models>
<global>
</config>
app/etc/modules/My_Paypal.xml
<?xml version="1.0"?>
<config>
<modules>
<My_Paypal>
<active>true</active>
<codePool>local</codePool>
<version>0.1.0</version>
</My_Paypal>
</modules>
</config>
我看到我的模块在System -> Configuration -> Advanced -> Advanced -> Disable Modules Output
Enable
下正确显示,而Mage_Poll
和Mage_Tag
显示为Disable
。
直接更改Mage_Paypal_Model_Express_Checkout
是有效的,因此我知道我的代码更改有效,但正确定制模型的方法似乎无法正常工作。
每次更改都会刷新并刷新Magento缓存,因此它不仅仅是缓存问题。
我的猜测是我的config.xml
出了问题,但此时我似乎无法弄清楚是什么。
有什么想法吗?或者,实现我想要做的更好的方式也可以。
另外,如何调试Magento以了解我的自定义中可能出错的内容?我可以打开或查看日志吗?
答案 0 :(得分:0)
你的实施方式已经足够了。唯一更好的方法是使用事件,但这并非总是可行。
尝试向paypal模块添加依赖项,并检查此模型是否已在其他地方重写过。
data.user.get()