Magento – Create dropdown/select box in magento system.xml for payment/shipping configuration

configurationmagento-1.9paymentshippingsystem.xml

How to create dropdown/select box in magento system.xml for payment/shipping configuration

Best Answer

Create drop down in system.xml and show custom values in it, rather than using default magento classes only

Directory : app/code/local/Companyname/Modulename/config/system.xml

In system.xml

<config>
  <sections>
 <payment>
    <groups>
  <Modulename translate="label" module="Modulename">
   <label>Payment Module</label>
          <sort_order>670</sort_order>
          <show_in_default>1</show_in_default>
          <show_in_website>1</show_in_website>
          <show_in_store>0</show_in_store>
   <fields>
   <paymentmethod translate="label comment">
       <label>Payment method</label>
       <comment>Omni Payment method.</comment>
       <frontend_type>select</frontend_type>
       <source_model>Modulename/Modelname</source_model>
       <sort_order>30</sort_order>
       <show_in_default>1</show_in_default>
       <show_in_website>0</show_in_website>
       <show_in_store>0</show_in_store>
   </paymentmethod>
   </fields>
  </Modulename>
            </groups>
        </payment>
    </sections>
</config>

If you want to create your custom source_Model, you need to do the following steps: Create a Pmethod.php in app/code/local/Companyname/Modulename/Model/Pmethod.php Companyname_Modulename is our module name. You need to create a function name toOptionArray() as mention below, the value and label can be anything you want to be display in dropdown

In Pmethod.php

class Companyname_Modulename_Model_Pmethod
{
    public function toOptionArray()
    {
        return array(
            array(
                'value' => 'key1',
                'label' => 'Label 1',
            ),
            array(
                'value' => 'key2',
                'label' => 'label 2',
            )
        );
    }
}