Magento 2 – Fix ‘No Payment Methods’ in Admin New Order

adminmagento2orderspayment-methods

In a Magento 2.3.1 site, I have two third-party payment methods and PayPal Express Checkout enabled. On the frontend, the three works perfectly. But, when I am trying to create a new order on admin panel, the payment methods are not displayed when I click on Get shipping methods and rates

enter image description here

I tested enabled the method Check / Money Order in my developer environment, and this is displayed correctly:

enter image description here

What could be causing the other three not are displayed?

Thanks.

Best Answer

Your third-party payment methods don't support admin order. Same for PayPal Express Checkout. PayPal Express Checkout redirects to Paypal that's why this is not working for admin section if you enabled by hacking code.

For Check / Money Order this payment method extends Magento\Payment\Model\Method\AbstractMethod class. If you open then you can see following code snippet:

/**
 * Payment Method feature
 *
 * @var bool
 */
protected $_canUseInternal = true;

That's why this is work for admin.

For express checkout this is disabled.

vendor/magento/module-paypal/Model/Express.php

/**
 * Availability option
 *
 * @var bool
 */
protected $_canUseInternal = false;
Related Topic