启用特定产品的支付网关-Magento 2

时间:2019-12-09 05:49:19

标签: magento magento2

我只想为某些产品启用支付网关。在我的网站上,我有货到付款及其他付款方式。应该为每个产品启用货到付款。但是针对特定产品集或特定类别启用了其他付款方式。我们该怎么做?

请在以下方面提供帮助。

1)付款网关仅支持特定产品或类别

2)仅针对特定国家/地区启用付款网关

3 个答案:

答案 0 :(得分:2)

要添加新的payment method,请执行以下步骤:

我希望这会有所帮助。

答案 1 :(得分:2)

如果您要根据某些条件启用或禁用某些付款方式,可以使用payment_method_is_active事件。

payment_method_is_active事件中,您可以访问3个参数:

  • $observer->getEvent()->getData('method_instance),付款方式
  • $observer->getEvent()->getData('quote'),正在处理报价
  • $observer->getEvent()->getData('result'),一个包含结果的数据对象

在定义的结果is_available中,如果应启用付款方式(“可用”)则为true,如果应禁用则为false

有了这3个对象,您就可以

  • 根据某些条件确定付款方式是否为您要禁用的方式
  • 获取报价中的产品及其属性
  • 说明是否应启用付款方式的结果。
class DisablePaymentMethodBasedOnSomething implements ObserverInterface {
    public function execute($observer) {
        $event = $observer->getEvent();
        $method = $event->getData('method_instance');
        $quote = $event->getData('quote');
        $result = $event->getData('result');

        if (payment method is not cash on delivery) {
            return;
        }

        if (quote does not contain products with gateway attribute) {
            return;
        }

        $result->setData('...', false);
    }
}

如您所见,我并没有填补所有空白,我希望示例能够为您提供正确的指导。

答案 2 :(得分:-1)

嗨,您可以在下面尝试该插件,当然您需要购买。

magento2-product-payment-limit