ম্যাজেন্টো 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.