Administration problems- I am getting a "Notice: Undefined index: model" error

Unfortunately, some third party payment and shipping modules cause problems for OneStepCheckout because they are incorrectly developed.

All payment and shipping methods should define a "model" which should display the name of the payment/shipping method for the administration area. OneStepCheckout has both '''Default shipping method''' and '''Default payment method''' settings in the backend administration. These settings require each shipping and payment method to be displayed as an option to have defined a '''model'''.

When the payment/shipping methods doesn't offer a model, the administration page of OneStepCheckout will throw an error similar to:

Notice: Undefined index: model in /home/username/domain/app/code/core/Mage/Payment/Model/Config.php on line 79.

Solution

Since this is caused by improperly developed third party modules, the only fix OneStepCheckout can provide is to remove the options for choosing a default shipping/payment method from the backend administration, so the error will never be thrown. In other words you will lose that feature, so these won't be selected by default (unless there is only one available option, that will always be selected by default).

In order to solve this, you need to remove some lines of XML from '''app/code/local/Idev/OneStepCheckout/etc/system.xml'''

This error can occur with both shipping and payment methods, so the lines you need to delete depends on whether it is happening for shipping or payment methods in your case. You can see that by the error message, for example:

Notice: Undefined index: model in /home/username/domain/app/code/core/Mage/Payment/Model/Config.php on line 79.

As you can see there is a "Payment" mentioned in the file path. That means it is a payment method that is causing the problem. If you saw "Shipping" in the path, it would be a shipping method problem. So here are the lines you need to remove :

'''Lines to remove if a shipping method that is causing the problem:'''

<label>Default shipping method</label>
<frontend_type>select</frontend_type>
< !--<source_model>adminhtml/system_config_source_shipping_allowedmethods</source_model> -- >
<source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
<sort_order>3</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>

'''Lines to remove if a payment method that is causing the problem:'''

<label>Default payment method</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_payment_allowedmethods</source_model>
<sort_order>4</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>

After these lines have been deleted from '''app/code/local/Idev/OneStepCheckout/etc/system.xml''', you might need to refresh the cache under System -> Cache management before you can access the administration panel.