0

I'm programatically creating orders, and having problems on a single site setting the payment method.

Just before setting the method I am logging all available payment methods with:

Mage::log("All avaialable payment methods:" . print_r(Mage::getModel('payment/config')->getActiveMethods(), true), null, 'mycustom.log', true);

I've tried multiple methods that are shown in the log, and all return the error "Payment method not available". Even things like checkmo and free aren't working (both are shown as active).

Multiple sites are working just fine with exactly the same code.

  1. all countries are allowed, and the payment method is set to all allowed countries, on all levels
  2. no errors in system or exception logs (other than the exception with the mentioned error, being thrown in app/code/core/Mage/Sales/Model/Quote/Payment.php(153) )
  3. the payment method itself is enabled

If the line of code before shows it as active, why might the line setting the method return the error that it's not available?

  • Check if the extension RicoNeitzel_PaymentFilter is installed. It may block the payment methods. – Simon Feb 18 '15 at 13:00
  • @Simon. I think you're magic. It's installed. I haven't had time to look into if this is the problem yet. Is there a specific fix for this? – Matt Flamm Feb 18 '15 at 15:58
2

Check if the extension RicoNeitzel_PaymentFilter is installed. If this is the case, go to Customers - Customer Groups. Click on a customer group (probably "NOT LOGGED IN" in your case), make sure that some or all payment methods are selected and save. Only payment methods which are selected there are available for this customer group.

  • This was it. Thanks for helping me so quickly. – Matt Flamm Feb 18 '15 at 16:24
0

No payment methods are displaying

Click the above link and Check my old answer. This will come handy to you.

  • Thanks Rapid, but this doesn't really help me. As I said in the question, I'm already logging all the active payment methods, and it does show the method as active. Also I'm doing this programatically so the .js mentioned never comes into play. – Matt Flamm Feb 18 '15 at 15:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.