Magento – The requested Payment Method is not available.On order details page

magento-1.9orderspayment-methods

I recently migrated to a new server and upgraded to the latest Magento. However, the order details page on the backend is now broken for any order that used our old 'PayPoint' extension (which we no longer have as it was discontinued). We have a newer extension which does the same thing.

This is the error code I get on orders that were placed using the old PayPoint integration extension.

There has been an error processing your request
The requested Payment Method is not available.

Trace:

#0 /home/metaco2/public_html/app/code/core/Mage/Payment/Model/Info.php(82): Mage::throwException('The requested P...')
#1 /home/metaco2/public_html/app/code/core/Mage/Payment/Helper/Data.php(119): Mage_Payment_Model_Info->getMethodInstance()
#2 /home/metaco2/public_html/app/code/core/Mage/Adminhtml/Block/Sales/Order/Payment.php(50): Mage_Payment_Helper_Data->getInfoBlock(Object(Mage_Sales_Model_Order_Payment))
#3 /home/metaco2/public_html/app/code/core/Mage/Adminhtml/Block/Sales/Order/Payment.php(44): Mage_Adminhtml_Block_Sales_Order_Payment->setPayment(Object(Mage_Sales_Model_Order_Payment))
#4 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Abstract.php(918): Mage_Adminhtml_Block_Sales_Order_Payment->_beforeToHtml()
#5 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Abstract.php(637): Mage_Core_Block_Abstract->toHtml()
#6 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Abstract.php(581): Mage_Core_Block_Abstract->_getChildHtml('order_payment', true)
#7 /home/metaco2/public_html/app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Tab/Info.php(112): Mage_Core_Block_Abstract->getChildHtml('order_payment')
#8 /home/metaco2/public_html/app/design/adminhtml/default/default/template/sales/order/view/tab/info.phtml(46): Mage_Adminhtml_Block_Sales_Order_View_Tab_Info->getPaymentHtml()
#9 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Template.php(241): include('/home/metaco2/p...')
#10 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#11 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#12 /home/metaco2/public_html/app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#13 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Abstract.php(919): Mage_Adminhtml_Block_Template->_toHtml()
#14 /home/metaco2/public_html/app/code/core/Mage/Adminhtml/Block/Widget/Tabs.php(303): Mage_Core_Block_Abstract->toHtml()
#15 /home/metaco2/public_html/app/design/adminhtml/default/default/template/widget/tabs.phtml(38): Mage_Adminhtml_Block_Widget_Tabs->getTabContent(Object(Mage_Adminhtml_Block_Sales_Order_View_Tab_Info))
#16 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Template.php(241): include('/home/metaco2/p...')
#17 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#18 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#19 /home/metaco2/public_html/app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#20 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Abstract.php(919): Mage_Adminhtml_Block_Template->_toHtml()
#21 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Text/List.php(43): Mage_Core_Block_Abstract->toHtml()
#22 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Abstract.php(919): Mage_Core_Block_Text_List->_toHtml()
#23 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Abstract.php(637): Mage_Core_Block_Abstract->toHtml()
#24 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Abstract.php(581): Mage_Core_Block_Abstract->_getChildHtml('left', true)
#25 /home/metaco2/public_html/app/design/adminhtml/default/default/template/page.phtml(58): Mage_Core_Block_Abstract->getChildHtml('left')
#26 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Template.php(241): include('/home/metaco2/p...')
#27 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#28 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#29 /home/metaco2/public_html/app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#30 /home/metaco2/public_html/app/code/core/Mage/Core/Block/Abstract.php(919): Mage_Adminhtml_Block_Template->_toHtml()
#31 /home/metaco2/public_html/app/code/core/Mage/Core/Model/Layout.php(555): Mage_Core_Block_Abstract->toHtml()
#32 /home/metaco2/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(390): Mage_Core_Model_Layout->getOutput()
#33 /home/metaco2/public_html/app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php(128): Mage_Core_Controller_Varien_Action->renderLayout()
#34 /home/metaco2/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Adminhtml_Sales_OrderController->viewAction()
#35 /home/metaco2/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('view')
#36 /home/metaco2/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#37 /home/metaco2/public_html/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#38 /home/metaco2/public_html/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#39 /home/metaco2/public_html/index.php(93): Mage::run('base', 'website')
#40 {main}

Does anybody know how to fix this?

Thanks in advance

Best Answer

Magento does not deal well with this scenario: deleting a payment method that has been used. Your options from here are:

  1. installing the old extension again from a backup or similar
  2. adjust the payment method in the database

For the second approach you can use something like

UPDATE`sales_flat_order_payment` SET `method`= 'NEW_CODE'  WHERE `method` = 'OLD_CODE';

As NEW_CODE you could test using the code from the newer version of the extension and hope that it is backwards compatible. You could find it in the same table for an order placed via the new extension. If that doesn't work out you could also change it to one of the default payment methods like checkmo or ccsave.

As usual if you make any changes directly to the database a backup is recommended beforehand.

Related Topic