Magento 1.9 - Paypal Express Checkout的定制无法正常工作

时间:2017-10-26 11:04:51

标签: magento magento-1.9.1 paypal

我正在尝试自定义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_PollMage_Tag显示为Disable

直接更改Mage_Paypal_Model_Express_Checkout是有效的,因此我知道我的代码更改有效,但正确定制模型的方法似乎无法正常工作。

每次更改都会刷新并刷新Magento缓存,因此它不仅仅是缓存问题。

我的猜测是我的config.xml出了问题,但此时我似乎无法弄清楚是什么。

有什么想法吗?或者,实现我想要做的更好的方式也可以。

另外,如何调试Magento以了解我的自定义中可能出错的内容?我可以打开或查看日志吗?

1 个答案:

答案 0 :(得分:0)

你的实施方式已经足够了。唯一更好的方法是使用事件,但这并非总是可行。

尝试向paypal模块添加依赖项,并检查此模型是否已在其他地方重写过。

data.user.get()