Magento – The Requested Payment Method is Not Available Error

backenderrorpayment-methods

When creating an order at the backend, we get The requested Payment Method is not available!". Our exception is thrown at /app/code/core/Mage/Payment/Model/Info.php in function getMethodInstance.

The payment method is working at regular online orders, but not via the backend.
We have this problem after updating to Magento 1.9.1.1 .

I believe that $instance is set, but I am not able to find setInfoInstance method to debug this further. Where can I find it?

The requested payment method is in the list of the active payment methods.
Is it possible, that an other non used payment method is responsible for this trouble Then: How can I find out, which payment method causes the issue?

Also m2epro import has the same problems.

Best Answer

The following was working:

app/code/core/Mage/Payment/Model/Info.php

public function getMethodInstance()
{
    if (!$this->hasMethodInstance()) {
        if ($this->getMethod()) {
            $instance = Mage::helper('payment')->getMethodInstance($this->getMethod());
            if ($instance) {

                $instance->setInfoInstance($this);

                $this->setMethodInstance($instance);

                return $instance;
            }
        } else {

            $instance = Mage::helper('payment')->getMethodInstance('banktransfer');
            if ($instance) {

                $instance->setInfoInstance($this);

                $this->setMethodInstance($instance);

                return $instance;
            }
        }
        Mage::throwException(Mage::helper('payment')->__('The requested Payment Method is not available!!'));
    }

    return $this->_getData('method_instance');
}

Related Topic