Magento关闭Google Checkout模块受到的启发
今天在关闭Google Checkout模块的时候发现在CHECKOUT ONEPAGE遇到了问,就是明明已经关闭了,可结算页面还在加载GOOGLE CHECKOUT里的类。
由于我是在Mage_All里面直接代码级别关闭的,所以页面报错。
Warning: include(Mage/Googlecheckout/Model/Payment.php): failed to open stream: No such file or directory in /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/lib/Varien/Autoload.php on line 93 #0 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/lib/Varien/Autoload.php(93): mageCoreErrorHandler(2, 'include(Mage/Go...', '/home/joshua/Ze...', 93, Array) #1 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/lib/Varien/Autoload.php(93): Varien_Autoload::autoload() #2 [internal function]: Varien_Autoload->autoload('Mage_Googlechec...') #3 [internal function]: spl_autoload_call('Mage_Googlechec...') #4 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Config.php(1204): class_exists('Mage_Googlechec...') #5 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/Mage.php(432): Mage_Core_Model_Config->getModelInstance('googlecheckout/...', Array) #6 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Payment/Helper/Data.php(71): Mage::getModel('googlecheckout/...') #7 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Payment/Block/Form/Container.php(117): Mage_Payment_Helper_Data->getStoreMethods('1', Object(Mage_Sales_Model_Quote)) #8 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Payment/Block/Form/Container.php(44): Mage_Payment_Block_Form_Container->getMethods() #9 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Block/Abstract.php(218): Mage_Payment_Block_Form_Container->_prepareLayout() #10 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(430): Mage_Core_Block_Abstract->setLayout(Object(Mage_Core_Model_Layout)) #11 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(446): Mage_Core_Model_Layout->createBlock('checkout/onepag...', 'checkout.paymen...') #12 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(238): Mage_Core_Model_Layout->addBlock('checkout/onepag...', 'checkout.paymen...') #13 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(204): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element)) #14 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element)) #15 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element)) #16 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(209): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element)) #17 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Controller/Varien/Action.php(343): Mage_Core_Model_Layout->generateBlocks() #18 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Controller/Varien/Action.php(270): Mage_Core_Controller_Varien_Action->generateLayoutBlocks() #19 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Checkout/controllers/OnepageController.php(165): Mage_Core_Controller_Varien_Action->loadLayout() #20 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_OnepageController->indexAction() #21 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('index') #22 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Controller/Varien/Front.php(177): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http)) #23 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/App.php(304): Mage_Core_Controller_Varien_Front->dispatch() #24 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/Mage.php(596): Mage_Core_Model_App->run(Array) #25 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/index.php(80): Mage::run('default', 'store') #26 {main}
后来通过报错信息寻找发现是在结算页面需要加载允许的结算方式,正常配置文件应该走/Payment/etc/config.xml里的默认配置,可是Mage毕竟不是完美的,发现在Sales的模块配置文件竟有这样一段:
<payment> <googlecheckout> <active>1</active> <model>googlecheckout/payment</model> <title>Google Checkout</title> </googlecheckout> </payment>
这段配置本来应该在GoogleCheckout模块配置文件里的,我将其注释掉,OK了一切正常。
还有就是获取配置数据的getConfig方法,以往大家以为$path参数一定要写全,比如payment/googcheckout/active,其实你写开头的一部分也会有返回数据,你可以试试
Mage::getStoreConfig('payment');
你会发现,它返回的是一个多维数组。


你有用google checkout了,能相互交流下吗?
没用到,想把它关闭掉,在中国大家认的还是支付宝、财付通、拍拍等