Filter Payment Methods in Magento onepage checkout

AM
Anita M.
Distribution Center Manager
★★★★★★★★★★
4.5/5 · 9/21/2026

Time-Saving Integration with Excellent Support

"I like that APPSeCONNECT saves us a lot of time by automating the import of sales orders from Shopify into SAP Business One. It helps in updating business partner contact information, which is great because before we had to hand-type the orders, but now it's all imported smoothly."

Read more APPSeCONNECT Reviews
Atul Gupta1 min read

As a developer or, a store owner, we face the mentioned situation very often.

How to filter payment methods based on some conditions applicable for my magento store?

[imageframe lightbox=”yes” style_type=”none” bordercolor=”” bordersize=”0px” stylecolor=”” align=”none” link=”” linktarget=”_self” animation_type=”0″ animation_direction=”down” animation_speed=”0.1″ class=”” id=””][/imageframe]

There are many of ways of creating it;

  1. By creating an observer for the event payment_method_is_active. Which is in fact the best technique to use.
  2. By overriding your theme’s default template files: app/design/frontend/[PACKAGE]/[THEME]/template/checkout/onepage/payment/methods.phtml
  3. By overriding method: Mage_Payment_Model_Method_Abstract::isAvailable()
  4. By overriding method: Mage_Checkout_Block_Onepage_Payment_Methods::_canUseMethod()
  5. By overriding method: Mage_Checkout_Block_Onepage_Payment_Methods::getMethods()

Among all the above methods, I’m discussing the first technique, i.e. creating an observer for the event payment_method_is_active.

Case Study: I have a magento store with two currencies, i.e. INR and USD, so, I would like to filter payment methods based on the currency customer has chosen. I will show only Saved CC Payment method for customers using USD as their currency.

Step 1

Create a Module in app/code/local/Insync/ Paymentfilter

Step 2

Register the event: payment_method_is_active in config.xml.

Add the following xml code in app/code/local/Insync/Paymentfilter/etc/config.xml




		
			1.0
		
	
	
		
			
				
					
						singleton
						Insync_Paymentfilter_Model_Observer
						paymentMethodIsActive
					
				
			
		
	

Step 3

Now, we need to create the observer file, where actual logic will be implemented.

Create observer file: app/code/local/Insync/Paymentfilter/Model/Observer.php and paste the following code:

Step 4 Now in this final step, enable & register your module with magento. Create the module xml file: app/etc/modules/Insync_Paymentfilter.xml and paste the following code:




	
		
			true
			local
			0.1.0
		
	

Now test it and Enjoy. Please let me know if you face any problem regarding this.[imageframe lightbox=”yes” style_type=”none” bordercolor=”” bordersize=”0px” stylecolor=”” align=”none” link=”” linktarget=”_self” animation_type=”0″ animation_direction=”down” animation_speed=”0.1″ class=”” id=””][/imageframe]

AM
Anita M.
Distribution Center Manager
★★★★★★★★★★
4.5/5 · 9/21/2026

Time-Saving Integration with Excellent Support

"I like that APPSeCONNECT saves us a lot of time by automating the import of sales orders from Shopify into SAP Business One. It helps in updating business partner contact information, which is great because before we had to hand-type the orders, but now it's all imported smoothly."

Read more APPSeCONNECT Reviews

Request for a personalized demo

Related Resources