Configure payment method by area
You can define whether the payment method is available for the storefront and checkout in the payment method configuration in config.xml
:
can_use_checkout
: whether payment method is available in storefront checkoutcan_use_internal
: whether payment method is available in Admin order creation
If your payment flow should be different for storefront and Admin panel, you can use a separate DI configuration for each area:
%Vendor_Module%/etc/adminhtml/di.xml
: DI configuration for the Admin panel%Vendor_Module%/etc/frontend/di.xml
: DI configuration for the storefront
Example
For example, on the storefront 3D Secure verification is integrated for the Braintree payment method, but it should not be available in Admin panel The DI configuration for authorization request builder for admin area looks like following:
1
2
3
4
5
6
7
8
9
<virtualType name="BraintreeAuthorizeRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
<arguments>
<argument name="builders" xsi:type="array">
<item name="customer" xsi:type="string">Magento\Braintree\Gateway\Request\CustomerDataBuilder</item>
<item name="payment" xsi:type="string">Magento\Braintree\Gateway\Request\PaymentDataBuilder</item>
...
</argument>
</arguments>
</virtualType>
While the general app/code/Magento/Braintree/etc/di.xml does not have 3D secure verification builder for Admin panel, but virtual type has the same name (object will be created according to context of area).