ম্যাজেন্টো 2 - কেবলমাত্র নির্দিষ্ট চালান পদ্ধতির জন্য নগদ অন ডেলিভারি সক্ষম করুন


9

উদাহরণস্বরূপ, গ্রাহক ফ্ল্যাট রেট শিপিং পদ্ধতিটি কেবল তখনই কীভাবে ডেলিভারি প্রদানের নগদ সক্ষম করবেন?

চালান / পেমেন্ট কনফিগারেশনে বা কার্টের বিধিগুলিতে এটি করার কোনও উপায় আমি খুঁজে পাচ্ছি না।

উত্তর:


9

আমি যখন ক্যাসিটিং পদ্ধতি "ফ্ল্যাটরেট_ফ্লেট্রেট" নির্বাচন করা হয় তখন ক্যাশঅনডেলিভারির জন্য ISA উপলভ্য ফাংশনটি মিথ্যাতে সেট করতে কাস্টম মডিউলে একটি প্লাগইন ব্যবহার করি।

file: <magento-root>/app/code/MyCompany/MyModule/Plugin/CashonDeliveryPlug.php

<?php
    namespace MyCompany\MyModule\Plugin;
    use Magento\Payment\Model\Method\AbstractMethod;
    use Magento\Quote\Model\Quote;
    class CashondeliveryPlug
    {

      /**
       * @var \Magento\Checkout\Model\Session
       */
       protected $_checkoutSession;

      /**
       * Constructor
       *
       * @param \Magento\Checkout\Model\Session $checkoutSession
       */
        public function __construct
        (
            \Psr\Log\LoggerInterface $logger,
            \Magento\Checkout\Model\Session $checkoutSession
         ) {
            $this->logger = $logger;
            $this->_checkoutSession = $checkoutSession;
            return;
        }

        public function aroundIsAvailable(\Magento\Payment\Model\Method\AbstractMethod $subject, callable $proceed)
        {
            $shippingMethod = $this->_checkoutSession->getQuote()->getShippingAddress()->getShippingMethod();
            #$this->logger->debug($shippingMethod);
            if ($shippingMethod == 'flatrate_flatrate') {
                return false;
            }
            $result = $proceed();
            return $result;
          }
    }

এবং

file: <magento-root>/app/code/MyCompany/MyModule/etc/di.xml

<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\OfflinePayments\Model\Cashondelivery">
        <plugin name="cashondeliveryplug" type="MyCompany\MyModule\Plugin\CashondeliveryPlug" disabled="false" sortOrder="10"/>
    </type>
</config>

আশা করি এটি আপনাকে সাহায্য করবে! কোনো প্রশ্ন করতে দ্বিধা করবেন না


1
ব্যাকএন্ডে এটি কীভাবে করবেন
মাহি এম

আপনার উপলভ্য ফাংশনটির চারপাশে একটি প্লাগিন সহ আপনাকে একটি কাস্টম মডিউল তৈরি করতে হবে। আপনি স্টক-ম্যাজেন্টো সহ ব্যাকএন্ডে এটি করতে পারবেন না
জুহানিক্স

এটি আমার শর্ত ... ব্যাকেন্ডে এটি কীভাবে করবেন
মাহি এম

সম্ভবত আপনার একটি নতুন প্রশ্ন খোলার উচিত, যেখানে আপনি আরও তথ্য দিতে পারেন
জুহানিক্স

আপনাকে অনেক ধন্যবাদ @ জহানিক্স আমি একটি প্রবাহ খুঁজে পেতে 2 ঘন্টারও বেশি সময় ব্যয় করেছি। আপনার সমাধান আমাকে অনেক সাহায্য করে। কোডিং রাখুন :)
দিব্যা সেকার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.