How to override model in magento2?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







3















I want to remove the below lines in MagentoQuoteModelPaymentMethodManagement model file



 if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
throw new InvalidTransitionException(__('The requested Payment Method is not available.'));
}


In PaymentMethodManagement file:



<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace MagentoQuoteModel;

use MagentoFrameworkExceptionStateInvalidTransitionException;

/**
* Class PaymentMethodManagement
*/
class PaymentMethodManagement implements MagentoQuoteApiPaymentMethodManagementInterface
{
/**
* @var MagentoQuoteApiCartRepositoryInterface
*/
protected $quoteRepository;

/**
* @var MagentoPaymentModelChecksZeroTotal
*/
protected $zeroTotalValidator;

/**
* @var MagentoPaymentModelMethodList
*/
protected $methodList;

/**
* Constructor
*
* @param MagentoQuoteApiCartRepositoryInterface $quoteRepository
* @param MagentoPaymentModelChecksZeroTotal $zeroTotalValidator
* @param MagentoPaymentModelMethodList $methodList
*/
public function __construct(
MagentoQuoteApiCartRepositoryInterface $quoteRepository,
MagentoPaymentModelChecksZeroTotal $zeroTotalValidator,
MagentoPaymentModelMethodList $methodList
) {
$this->quoteRepository = $quoteRepository;
$this->zeroTotalValidator = $zeroTotalValidator;
$this->methodList = $methodList;
}

/**
* {@inheritdoc}
*/
public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
{
/** @var MagentoQuoteModelQuote $quote */
$quote = $this->quoteRepository->get($cartId);

$method->setChecks([
MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
]);
$payment = $quote->getPayment();

$data = $method->getData();
$payment->importData($data);

if ($quote->isVirtual()) {
$quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
} else {
// check if shipping address is set
if ($quote->getShippingAddress()->getCountryId() === null) {
throw new InvalidTransitionException(__('Shipping address is not set'));
}
$quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
}
if (!$quote->isVirtual() && $quote->getShippingAddress()) {
$quote->getShippingAddress()->setCollectShippingRates(true);
}

if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
throw new InvalidTransitionException(__('The requested Payment Method is not available.'));
}

$quote->setTotalsCollectedFlag(false)->collectTotals()->save();
return $quote->getPayment()->getId();
}}


How to do this.
Thanks.










share|improve this question





























    3















    I want to remove the below lines in MagentoQuoteModelPaymentMethodManagement model file



     if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
    throw new InvalidTransitionException(__('The requested Payment Method is not available.'));
    }


    In PaymentMethodManagement file:



    <?php
    /**
    * Copyright © Magento, Inc. All rights reserved.
    * See COPYING.txt for license details.
    */
    namespace MagentoQuoteModel;

    use MagentoFrameworkExceptionStateInvalidTransitionException;

    /**
    * Class PaymentMethodManagement
    */
    class PaymentMethodManagement implements MagentoQuoteApiPaymentMethodManagementInterface
    {
    /**
    * @var MagentoQuoteApiCartRepositoryInterface
    */
    protected $quoteRepository;

    /**
    * @var MagentoPaymentModelChecksZeroTotal
    */
    protected $zeroTotalValidator;

    /**
    * @var MagentoPaymentModelMethodList
    */
    protected $methodList;

    /**
    * Constructor
    *
    * @param MagentoQuoteApiCartRepositoryInterface $quoteRepository
    * @param MagentoPaymentModelChecksZeroTotal $zeroTotalValidator
    * @param MagentoPaymentModelMethodList $methodList
    */
    public function __construct(
    MagentoQuoteApiCartRepositoryInterface $quoteRepository,
    MagentoPaymentModelChecksZeroTotal $zeroTotalValidator,
    MagentoPaymentModelMethodList $methodList
    ) {
    $this->quoteRepository = $quoteRepository;
    $this->zeroTotalValidator = $zeroTotalValidator;
    $this->methodList = $methodList;
    }

    /**
    * {@inheritdoc}
    */
    public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
    {
    /** @var MagentoQuoteModelQuote $quote */
    $quote = $this->quoteRepository->get($cartId);

    $method->setChecks([
    MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
    MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
    MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
    MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
    ]);
    $payment = $quote->getPayment();

    $data = $method->getData();
    $payment->importData($data);

    if ($quote->isVirtual()) {
    $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
    } else {
    // check if shipping address is set
    if ($quote->getShippingAddress()->getCountryId() === null) {
    throw new InvalidTransitionException(__('Shipping address is not set'));
    }
    $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
    }
    if (!$quote->isVirtual() && $quote->getShippingAddress()) {
    $quote->getShippingAddress()->setCollectShippingRates(true);
    }

    if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
    throw new InvalidTransitionException(__('The requested Payment Method is not available.'));
    }

    $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
    return $quote->getPayment()->getId();
    }}


    How to do this.
    Thanks.










    share|improve this question

























      3












      3








      3








      I want to remove the below lines in MagentoQuoteModelPaymentMethodManagement model file



       if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
      throw new InvalidTransitionException(__('The requested Payment Method is not available.'));
      }


      In PaymentMethodManagement file:



      <?php
      /**
      * Copyright © Magento, Inc. All rights reserved.
      * See COPYING.txt for license details.
      */
      namespace MagentoQuoteModel;

      use MagentoFrameworkExceptionStateInvalidTransitionException;

      /**
      * Class PaymentMethodManagement
      */
      class PaymentMethodManagement implements MagentoQuoteApiPaymentMethodManagementInterface
      {
      /**
      * @var MagentoQuoteApiCartRepositoryInterface
      */
      protected $quoteRepository;

      /**
      * @var MagentoPaymentModelChecksZeroTotal
      */
      protected $zeroTotalValidator;

      /**
      * @var MagentoPaymentModelMethodList
      */
      protected $methodList;

      /**
      * Constructor
      *
      * @param MagentoQuoteApiCartRepositoryInterface $quoteRepository
      * @param MagentoPaymentModelChecksZeroTotal $zeroTotalValidator
      * @param MagentoPaymentModelMethodList $methodList
      */
      public function __construct(
      MagentoQuoteApiCartRepositoryInterface $quoteRepository,
      MagentoPaymentModelChecksZeroTotal $zeroTotalValidator,
      MagentoPaymentModelMethodList $methodList
      ) {
      $this->quoteRepository = $quoteRepository;
      $this->zeroTotalValidator = $zeroTotalValidator;
      $this->methodList = $methodList;
      }

      /**
      * {@inheritdoc}
      */
      public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
      {
      /** @var MagentoQuoteModelQuote $quote */
      $quote = $this->quoteRepository->get($cartId);

      $method->setChecks([
      MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
      MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
      MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
      MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
      ]);
      $payment = $quote->getPayment();

      $data = $method->getData();
      $payment->importData($data);

      if ($quote->isVirtual()) {
      $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
      } else {
      // check if shipping address is set
      if ($quote->getShippingAddress()->getCountryId() === null) {
      throw new InvalidTransitionException(__('Shipping address is not set'));
      }
      $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
      }
      if (!$quote->isVirtual() && $quote->getShippingAddress()) {
      $quote->getShippingAddress()->setCollectShippingRates(true);
      }

      if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
      throw new InvalidTransitionException(__('The requested Payment Method is not available.'));
      }

      $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
      return $quote->getPayment()->getId();
      }}


      How to do this.
      Thanks.










      share|improve this question














      I want to remove the below lines in MagentoQuoteModelPaymentMethodManagement model file



       if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
      throw new InvalidTransitionException(__('The requested Payment Method is not available.'));
      }


      In PaymentMethodManagement file:



      <?php
      /**
      * Copyright © Magento, Inc. All rights reserved.
      * See COPYING.txt for license details.
      */
      namespace MagentoQuoteModel;

      use MagentoFrameworkExceptionStateInvalidTransitionException;

      /**
      * Class PaymentMethodManagement
      */
      class PaymentMethodManagement implements MagentoQuoteApiPaymentMethodManagementInterface
      {
      /**
      * @var MagentoQuoteApiCartRepositoryInterface
      */
      protected $quoteRepository;

      /**
      * @var MagentoPaymentModelChecksZeroTotal
      */
      protected $zeroTotalValidator;

      /**
      * @var MagentoPaymentModelMethodList
      */
      protected $methodList;

      /**
      * Constructor
      *
      * @param MagentoQuoteApiCartRepositoryInterface $quoteRepository
      * @param MagentoPaymentModelChecksZeroTotal $zeroTotalValidator
      * @param MagentoPaymentModelMethodList $methodList
      */
      public function __construct(
      MagentoQuoteApiCartRepositoryInterface $quoteRepository,
      MagentoPaymentModelChecksZeroTotal $zeroTotalValidator,
      MagentoPaymentModelMethodList $methodList
      ) {
      $this->quoteRepository = $quoteRepository;
      $this->zeroTotalValidator = $zeroTotalValidator;
      $this->methodList = $methodList;
      }

      /**
      * {@inheritdoc}
      */
      public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
      {
      /** @var MagentoQuoteModelQuote $quote */
      $quote = $this->quoteRepository->get($cartId);

      $method->setChecks([
      MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
      MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
      MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
      MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
      ]);
      $payment = $quote->getPayment();

      $data = $method->getData();
      $payment->importData($data);

      if ($quote->isVirtual()) {
      $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
      } else {
      // check if shipping address is set
      if ($quote->getShippingAddress()->getCountryId() === null) {
      throw new InvalidTransitionException(__('Shipping address is not set'));
      }
      $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
      }
      if (!$quote->isVirtual() && $quote->getShippingAddress()) {
      $quote->getShippingAddress()->setCollectShippingRates(true);
      }

      if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
      throw new InvalidTransitionException(__('The requested Payment Method is not available.'));
      }

      $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
      return $quote->getPayment()->getId();
      }}


      How to do this.
      Thanks.







      magento2 php-7.2






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 1 hour ago









      Mano MMano M

      1,072219




      1,072219






















          3 Answers
          3






          active

          oldest

          votes


















          1














          You can do it by using Preference in your di.xml file of your custom module.



          <?xml version="1.0"?>
          <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
          <preference for="MagentoQuoteModelPaymentMethodManagement" type="vendormoduleModelPaymentMethodManagement" />

          </config>





          share|improve this answer































            1














            Steps to Follow :




            • Override di.xml

            • Override PaymentMethodManagement.php

            • Launch SSH and Run Commands


            Override di.xml




            app/code/Namespace/Modulename/etc




            <?xml version="1.0"?>
            <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
            <preference for="MagentoQuoteModelPaymentMethodManagement" type="NamespaceModulenamePaymentMethodManagement" />
            </config>


            Override PaymentMethodManagement.php



            /**
            * {@inheritdoc}
            */
            public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
            {
            /** @var MagentoQuoteModelQuote $quote */
            $quote = $this->quoteRepository->get($cartId);

            $method->setChecks([
            MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
            MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
            MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
            MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
            ]);
            $payment = $quote->getPayment();

            $data = $method->getData();
            $payment->importData($data);

            if ($quote->isVirtual()) {
            $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
            } else {
            // check if shipping address is set
            if ($quote->getShippingAddress()->getCountryId() === null) {
            throw new InvalidTransitionException(__('Shipping address is not set'));
            }
            $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
            }
            if (!$quote->isVirtual() && $quote->getShippingAddress()) {
            $quote->getShippingAddress()->setCollectShippingRates(true);
            }
            /*** Do stuff with this code ***/
            if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
            throw new InvalidTransitionException(__(''));
            }
            /*** Do stuff with this code ***/

            $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
            return $quote->getPayment()->getId();
            }


            Launch SSH and Run Commands



            php bin/magento setup:di:compile
            php bin/magento cache:clean
            php bin/magento cache:flush


            I hope it helps!






            share|improve this answer































              1














              in you 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">

              <preference for="MagentoQuoteModelPaymentMethodManagement" type="VendorModuleModelRewriteQuotePaymentMethodManagement" />

              </config>


              in your Model file



              <?php 
              namespace VendorModuleModelRewriteQuote;

              class PaymentMethodManagement extends MagentoQuoteModelPaymentMethodManagement
              {
              public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
              {
              /** @var MagentoQuoteModelQuote $quote */
              $quote = $this->quoteRepository->get($cartId);

              $method->setChecks([
              MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
              MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
              MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
              MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
              ]);
              $payment = $quote->getPayment();

              $data = $method->getData();
              $payment->importData($data);

              if ($quote->isVirtual()) {
              $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
              } else {
              // check if shipping address is set
              if ($quote->getShippingAddress()->getCountryId() === null) {
              throw new InvalidTransitionException(__('Shipping address is not set'));
              }
              $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
              }
              if (!$quote->isVirtual() && $quote->getShippingAddress()) {
              $quote->getShippingAddress()->setCollectShippingRates(true);
              }
              /*** Do stuff with this code ***/
              if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
              throw new InvalidTransitionException(__(''));
              }
              /*** Do stuff with this code ***/

              $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
              return $quote->getPayment()->getId();
              }

              }





              share|improve this answer


























                Your Answer








                StackExchange.ready(function() {
                var channelOptions = {
                tags: "".split(" "),
                id: "479"
                };
                initTagRenderer("".split(" "), "".split(" "), channelOptions);

                StackExchange.using("externalEditor", function() {
                // Have to fire editor after snippets, if snippets enabled
                if (StackExchange.settings.snippets.snippetsEnabled) {
                StackExchange.using("snippets", function() {
                createEditor();
                });
                }
                else {
                createEditor();
                }
                });

                function createEditor() {
                StackExchange.prepareEditor({
                heartbeatType: 'answer',
                autoActivateHeartbeat: false,
                convertImagesToLinks: false,
                noModals: true,
                showLowRepImageUploadWarning: true,
                reputationToPostImages: null,
                bindNavPrevention: true,
                postfix: "",
                imageUploader: {
                brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                allowUrls: true
                },
                onDemand: true,
                discardSelector: ".discard-answer"
                ,immediatelyShowMarkdownHelp:true
                });


                }
                });














                draft saved

                draft discarded


















                StackExchange.ready(
                function () {
                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f270381%2fhow-to-override-model-in-magento2%23new-answer', 'question_page');
                }
                );

                Post as a guest















                Required, but never shown

























                3 Answers
                3






                active

                oldest

                votes








                3 Answers
                3






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                1














                You can do it by using Preference in your di.xml file of your custom module.



                <?xml version="1.0"?>
                <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
                <preference for="MagentoQuoteModelPaymentMethodManagement" type="vendormoduleModelPaymentMethodManagement" />

                </config>





                share|improve this answer




























                  1














                  You can do it by using Preference in your di.xml file of your custom module.



                  <?xml version="1.0"?>
                  <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
                  <preference for="MagentoQuoteModelPaymentMethodManagement" type="vendormoduleModelPaymentMethodManagement" />

                  </config>





                  share|improve this answer


























                    1












                    1








                    1







                    You can do it by using Preference in your di.xml file of your custom module.



                    <?xml version="1.0"?>
                    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
                    <preference for="MagentoQuoteModelPaymentMethodManagement" type="vendormoduleModelPaymentMethodManagement" />

                    </config>





                    share|improve this answer













                    You can do it by using Preference in your di.xml file of your custom module.



                    <?xml version="1.0"?>
                    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
                    <preference for="MagentoQuoteModelPaymentMethodManagement" type="vendormoduleModelPaymentMethodManagement" />

                    </config>






                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered 51 mins ago









                    magefmsmagefms

                    2,7152528




                    2,7152528

























                        1














                        Steps to Follow :




                        • Override di.xml

                        • Override PaymentMethodManagement.php

                        • Launch SSH and Run Commands


                        Override di.xml




                        app/code/Namespace/Modulename/etc




                        <?xml version="1.0"?>
                        <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
                        <preference for="MagentoQuoteModelPaymentMethodManagement" type="NamespaceModulenamePaymentMethodManagement" />
                        </config>


                        Override PaymentMethodManagement.php



                        /**
                        * {@inheritdoc}
                        */
                        public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
                        {
                        /** @var MagentoQuoteModelQuote $quote */
                        $quote = $this->quoteRepository->get($cartId);

                        $method->setChecks([
                        MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
                        MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
                        MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
                        MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
                        ]);
                        $payment = $quote->getPayment();

                        $data = $method->getData();
                        $payment->importData($data);

                        if ($quote->isVirtual()) {
                        $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
                        } else {
                        // check if shipping address is set
                        if ($quote->getShippingAddress()->getCountryId() === null) {
                        throw new InvalidTransitionException(__('Shipping address is not set'));
                        }
                        $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
                        }
                        if (!$quote->isVirtual() && $quote->getShippingAddress()) {
                        $quote->getShippingAddress()->setCollectShippingRates(true);
                        }
                        /*** Do stuff with this code ***/
                        if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
                        throw new InvalidTransitionException(__(''));
                        }
                        /*** Do stuff with this code ***/

                        $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
                        return $quote->getPayment()->getId();
                        }


                        Launch SSH and Run Commands



                        php bin/magento setup:di:compile
                        php bin/magento cache:clean
                        php bin/magento cache:flush


                        I hope it helps!






                        share|improve this answer




























                          1














                          Steps to Follow :




                          • Override di.xml

                          • Override PaymentMethodManagement.php

                          • Launch SSH and Run Commands


                          Override di.xml




                          app/code/Namespace/Modulename/etc




                          <?xml version="1.0"?>
                          <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
                          <preference for="MagentoQuoteModelPaymentMethodManagement" type="NamespaceModulenamePaymentMethodManagement" />
                          </config>


                          Override PaymentMethodManagement.php



                          /**
                          * {@inheritdoc}
                          */
                          public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
                          {
                          /** @var MagentoQuoteModelQuote $quote */
                          $quote = $this->quoteRepository->get($cartId);

                          $method->setChecks([
                          MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
                          MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
                          MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
                          MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
                          ]);
                          $payment = $quote->getPayment();

                          $data = $method->getData();
                          $payment->importData($data);

                          if ($quote->isVirtual()) {
                          $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
                          } else {
                          // check if shipping address is set
                          if ($quote->getShippingAddress()->getCountryId() === null) {
                          throw new InvalidTransitionException(__('Shipping address is not set'));
                          }
                          $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
                          }
                          if (!$quote->isVirtual() && $quote->getShippingAddress()) {
                          $quote->getShippingAddress()->setCollectShippingRates(true);
                          }
                          /*** Do stuff with this code ***/
                          if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
                          throw new InvalidTransitionException(__(''));
                          }
                          /*** Do stuff with this code ***/

                          $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
                          return $quote->getPayment()->getId();
                          }


                          Launch SSH and Run Commands



                          php bin/magento setup:di:compile
                          php bin/magento cache:clean
                          php bin/magento cache:flush


                          I hope it helps!






                          share|improve this answer


























                            1












                            1








                            1







                            Steps to Follow :




                            • Override di.xml

                            • Override PaymentMethodManagement.php

                            • Launch SSH and Run Commands


                            Override di.xml




                            app/code/Namespace/Modulename/etc




                            <?xml version="1.0"?>
                            <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
                            <preference for="MagentoQuoteModelPaymentMethodManagement" type="NamespaceModulenamePaymentMethodManagement" />
                            </config>


                            Override PaymentMethodManagement.php



                            /**
                            * {@inheritdoc}
                            */
                            public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
                            {
                            /** @var MagentoQuoteModelQuote $quote */
                            $quote = $this->quoteRepository->get($cartId);

                            $method->setChecks([
                            MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
                            MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
                            MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
                            MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
                            ]);
                            $payment = $quote->getPayment();

                            $data = $method->getData();
                            $payment->importData($data);

                            if ($quote->isVirtual()) {
                            $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
                            } else {
                            // check if shipping address is set
                            if ($quote->getShippingAddress()->getCountryId() === null) {
                            throw new InvalidTransitionException(__('Shipping address is not set'));
                            }
                            $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
                            }
                            if (!$quote->isVirtual() && $quote->getShippingAddress()) {
                            $quote->getShippingAddress()->setCollectShippingRates(true);
                            }
                            /*** Do stuff with this code ***/
                            if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
                            throw new InvalidTransitionException(__(''));
                            }
                            /*** Do stuff with this code ***/

                            $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
                            return $quote->getPayment()->getId();
                            }


                            Launch SSH and Run Commands



                            php bin/magento setup:di:compile
                            php bin/magento cache:clean
                            php bin/magento cache:flush


                            I hope it helps!






                            share|improve this answer













                            Steps to Follow :




                            • Override di.xml

                            • Override PaymentMethodManagement.php

                            • Launch SSH and Run Commands


                            Override di.xml




                            app/code/Namespace/Modulename/etc




                            <?xml version="1.0"?>
                            <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
                            <preference for="MagentoQuoteModelPaymentMethodManagement" type="NamespaceModulenamePaymentMethodManagement" />
                            </config>


                            Override PaymentMethodManagement.php



                            /**
                            * {@inheritdoc}
                            */
                            public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
                            {
                            /** @var MagentoQuoteModelQuote $quote */
                            $quote = $this->quoteRepository->get($cartId);

                            $method->setChecks([
                            MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
                            MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
                            MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
                            MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
                            ]);
                            $payment = $quote->getPayment();

                            $data = $method->getData();
                            $payment->importData($data);

                            if ($quote->isVirtual()) {
                            $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
                            } else {
                            // check if shipping address is set
                            if ($quote->getShippingAddress()->getCountryId() === null) {
                            throw new InvalidTransitionException(__('Shipping address is not set'));
                            }
                            $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
                            }
                            if (!$quote->isVirtual() && $quote->getShippingAddress()) {
                            $quote->getShippingAddress()->setCollectShippingRates(true);
                            }
                            /*** Do stuff with this code ***/
                            if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
                            throw new InvalidTransitionException(__(''));
                            }
                            /*** Do stuff with this code ***/

                            $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
                            return $quote->getPayment()->getId();
                            }


                            Launch SSH and Run Commands



                            php bin/magento setup:di:compile
                            php bin/magento cache:clean
                            php bin/magento cache:flush


                            I hope it helps!







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered 49 mins ago









                            Chirag PatelChirag Patel

                            2,583423




                            2,583423























                                1














                                in you 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">

                                <preference for="MagentoQuoteModelPaymentMethodManagement" type="VendorModuleModelRewriteQuotePaymentMethodManagement" />

                                </config>


                                in your Model file



                                <?php 
                                namespace VendorModuleModelRewriteQuote;

                                class PaymentMethodManagement extends MagentoQuoteModelPaymentMethodManagement
                                {
                                public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
                                {
                                /** @var MagentoQuoteModelQuote $quote */
                                $quote = $this->quoteRepository->get($cartId);

                                $method->setChecks([
                                MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
                                MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
                                MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
                                MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
                                ]);
                                $payment = $quote->getPayment();

                                $data = $method->getData();
                                $payment->importData($data);

                                if ($quote->isVirtual()) {
                                $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
                                } else {
                                // check if shipping address is set
                                if ($quote->getShippingAddress()->getCountryId() === null) {
                                throw new InvalidTransitionException(__('Shipping address is not set'));
                                }
                                $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
                                }
                                if (!$quote->isVirtual() && $quote->getShippingAddress()) {
                                $quote->getShippingAddress()->setCollectShippingRates(true);
                                }
                                /*** Do stuff with this code ***/
                                if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
                                throw new InvalidTransitionException(__(''));
                                }
                                /*** Do stuff with this code ***/

                                $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
                                return $quote->getPayment()->getId();
                                }

                                }





                                share|improve this answer






























                                  1














                                  in you 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">

                                  <preference for="MagentoQuoteModelPaymentMethodManagement" type="VendorModuleModelRewriteQuotePaymentMethodManagement" />

                                  </config>


                                  in your Model file



                                  <?php 
                                  namespace VendorModuleModelRewriteQuote;

                                  class PaymentMethodManagement extends MagentoQuoteModelPaymentMethodManagement
                                  {
                                  public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
                                  {
                                  /** @var MagentoQuoteModelQuote $quote */
                                  $quote = $this->quoteRepository->get($cartId);

                                  $method->setChecks([
                                  MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
                                  MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
                                  MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
                                  MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
                                  ]);
                                  $payment = $quote->getPayment();

                                  $data = $method->getData();
                                  $payment->importData($data);

                                  if ($quote->isVirtual()) {
                                  $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
                                  } else {
                                  // check if shipping address is set
                                  if ($quote->getShippingAddress()->getCountryId() === null) {
                                  throw new InvalidTransitionException(__('Shipping address is not set'));
                                  }
                                  $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
                                  }
                                  if (!$quote->isVirtual() && $quote->getShippingAddress()) {
                                  $quote->getShippingAddress()->setCollectShippingRates(true);
                                  }
                                  /*** Do stuff with this code ***/
                                  if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
                                  throw new InvalidTransitionException(__(''));
                                  }
                                  /*** Do stuff with this code ***/

                                  $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
                                  return $quote->getPayment()->getId();
                                  }

                                  }





                                  share|improve this answer




























                                    1












                                    1








                                    1







                                    in you 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">

                                    <preference for="MagentoQuoteModelPaymentMethodManagement" type="VendorModuleModelRewriteQuotePaymentMethodManagement" />

                                    </config>


                                    in your Model file



                                    <?php 
                                    namespace VendorModuleModelRewriteQuote;

                                    class PaymentMethodManagement extends MagentoQuoteModelPaymentMethodManagement
                                    {
                                    public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
                                    {
                                    /** @var MagentoQuoteModelQuote $quote */
                                    $quote = $this->quoteRepository->get($cartId);

                                    $method->setChecks([
                                    MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
                                    MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
                                    MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
                                    MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
                                    ]);
                                    $payment = $quote->getPayment();

                                    $data = $method->getData();
                                    $payment->importData($data);

                                    if ($quote->isVirtual()) {
                                    $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
                                    } else {
                                    // check if shipping address is set
                                    if ($quote->getShippingAddress()->getCountryId() === null) {
                                    throw new InvalidTransitionException(__('Shipping address is not set'));
                                    }
                                    $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
                                    }
                                    if (!$quote->isVirtual() && $quote->getShippingAddress()) {
                                    $quote->getShippingAddress()->setCollectShippingRates(true);
                                    }
                                    /*** Do stuff with this code ***/
                                    if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
                                    throw new InvalidTransitionException(__(''));
                                    }
                                    /*** Do stuff with this code ***/

                                    $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
                                    return $quote->getPayment()->getId();
                                    }

                                    }





                                    share|improve this answer















                                    in you 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">

                                    <preference for="MagentoQuoteModelPaymentMethodManagement" type="VendorModuleModelRewriteQuotePaymentMethodManagement" />

                                    </config>


                                    in your Model file



                                    <?php 
                                    namespace VendorModuleModelRewriteQuote;

                                    class PaymentMethodManagement extends MagentoQuoteModelPaymentMethodManagement
                                    {
                                    public function set($cartId, MagentoQuoteApiDataPaymentInterface $method)
                                    {
                                    /** @var MagentoQuoteModelQuote $quote */
                                    $quote = $this->quoteRepository->get($cartId);

                                    $method->setChecks([
                                    MagentoPaymentModelMethodAbstractMethod::CHECK_USE_CHECKOUT,
                                    MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_COUNTRY,
                                    MagentoPaymentModelMethodAbstractMethod::CHECK_USE_FOR_CURRENCY,
                                    MagentoPaymentModelMethodAbstractMethod::CHECK_ORDER_TOTAL_MIN_MAX,
                                    ]);
                                    $payment = $quote->getPayment();

                                    $data = $method->getData();
                                    $payment->importData($data);

                                    if ($quote->isVirtual()) {
                                    $quote->getBillingAddress()->setPaymentMethod($payment->getMethod());
                                    } else {
                                    // check if shipping address is set
                                    if ($quote->getShippingAddress()->getCountryId() === null) {
                                    throw new InvalidTransitionException(__('Shipping address is not set'));
                                    }
                                    $quote->getShippingAddress()->setPaymentMethod($payment->getMethod());
                                    }
                                    if (!$quote->isVirtual() && $quote->getShippingAddress()) {
                                    $quote->getShippingAddress()->setCollectShippingRates(true);
                                    }
                                    /*** Do stuff with this code ***/
                                    if (!$this->zeroTotalValidator->isApplicable($payment->getMethodInstance(), $quote)) {
                                    throw new InvalidTransitionException(__(''));
                                    }
                                    /*** Do stuff with this code ***/

                                    $quote->setTotalsCollectedFlag(false)->collectTotals()->save();
                                    return $quote->getPayment()->getId();
                                    }

                                    }






                                    share|improve this answer














                                    share|improve this answer



                                    share|improve this answer








                                    edited 43 mins ago

























                                    answered 51 mins ago









                                    Rakesh DongaRakesh Donga

                                    2,586317




                                    2,586317






























                                        draft saved

                                        draft discarded




















































                                        Thanks for contributing an answer to Magento Stack Exchange!


                                        • Please be sure to answer the question. Provide details and share your research!

                                        But avoid



                                        • Asking for help, clarification, or responding to other answers.

                                        • Making statements based on opinion; back them up with references or personal experience.


                                        To learn more, see our tips on writing great answers.




                                        draft saved


                                        draft discarded














                                        StackExchange.ready(
                                        function () {
                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f270381%2fhow-to-override-model-in-magento2%23new-answer', 'question_page');
                                        }
                                        );

                                        Post as a guest















                                        Required, but never shown





















































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown

































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown







                                        Popular posts from this blog

                                        Masuk log Menu navigasi

                                        Identifying “long and narrow” polygons in with PostGISlength and width of polygonWhy postgis st_overlaps reports Qgis' “avoid intersections” generated polygon as overlapping with others?Adjusting polygons to boundary and filling holesDrawing polygons with fixed area?How to remove spikes in Polygons with PostGISDeleting sliver polygons after difference operation in QGIS?Snapping boundaries in PostGISSplit polygon into parts adding attributes based on underlying polygon in QGISSplitting overlap between polygons and assign to nearest polygon using PostGIS?Expanding polygons and clipping at midpoint?Removing Intersection of Buffers in Same Layers

                                        Старые Смолеговицы Содержание История | География | Демография | Достопримечательности | Примечания | НавигацияHGЯOLHGЯOL41 206 832 01641 606 406 141Административно-территориальное деление Ленинградской области«Переписная оброчная книга Водской пятины 1500 года», С. 793«Карта Ингерманландии: Ивангорода, Яма, Копорья, Нотеборга», по материалам 1676 г.«Генеральная карта провинции Ингерманландии» Э. Белинга и А. Андерсина, 1704 г., составлена по материалам 1678 г.«Географический чертёж над Ижорскою землей со своими городами» Адриана Шонбека 1705 г.Новая и достоверная всей Ингерманландии ланткарта. Грав. А. Ростовцев. СПб., 1727 г.Топографическая карта Санкт-Петербургской губернии. 5-и верстка. Шуберт. 1834 г.Описание Санкт-Петербургской губернии по уездам и станамСпецкарта западной части России Ф. Ф. Шуберта. 1844 г.Алфавитный список селений по уездам и станам С.-Петербургской губернииСписки населённых мест Российской Империи, составленные и издаваемые центральным статистическим комитетом министерства внутренних дел. XXXVII. Санкт-Петербургская губерния. По состоянию на 1862 год. СПб. 1864. С. 203Материалы по статистике народного хозяйства в С.-Петербургской губернии. Вып. IX. Частновладельческое хозяйство в Ямбургском уезде. СПб, 1888, С. 146, С. 2, 7, 54Положение о гербе муниципального образования Курское сельское поселениеСправочник истории административно-территориального деления Ленинградской области.Топографическая карта Ленинградской области, квадрат О-35-23-В (Хотыницы), 1930 г.АрхивированоАдминистративно-территориальное деление Ленинградской области. — Л., 1933, С. 27, 198АрхивированоАдминистративно-экономический справочник по Ленинградской области. — Л., 1936, с. 219АрхивированоАдминистративно-территориальное деление Ленинградской области. — Л., 1966, с. 175АрхивированоАдминистративно-территориальное деление Ленинградской области. — Лениздат, 1973, С. 180АрхивированоАдминистративно-территориальное деление Ленинградской области. — Лениздат, 1990, ISBN 5-289-00612-5, С. 38АрхивированоАдминистративно-территориальное деление Ленинградской области. — СПб., 2007, с. 60АрхивированоКоряков Юрий База данных «Этно-языковой состав населённых пунктов России». Ленинградская область.Административно-территориальное деление Ленинградской области. — СПб, 1997, ISBN 5-86153-055-6, С. 41АрхивированоКультовый комплекс Старые Смолеговицы // Электронная энциклопедия ЭрмитажаПроблемы выявления, изучения и сохранения культовых комплексов с каменными крестами: по материалам работ 2016-2017 гг. в Ленинградской области