How to override model in magento2? Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Unit Test for overwrite collection class in magento2main.CRITICAL: Plugin class doesn't existMagento2 add custom address attributeMagento 2: How to override newsletter Subscriber modelMagento2 interface not found in Model classMagento offline custom Payment method with drop down listMagento 2 Create dynamic array From different Model Collection to use in multi select in gridAdd configure product in Cart using Magento 2 API facing an issueHow to set ui form field value with url-param when loading edit new pageMagento 2.3 Can't view module's front end page output?

How to find out what spells would be useless to a blind NPC spellcaster?

How to call a function with default parameter through a pointer to function that is the return of another function?

When a candle burns, why does the top of wick glow if bottom of flame is hottest?

Check which numbers satisfy the condition [A*B*C = A! + B! + C!]

Why was the term "discrete" used in discrete logarithm?

String `!23` is replaced with `docker` in command line

List of Python versions

What is the logic behind the Maharil's explanation of why we don't say שעשה ניסים on Pesach?

Why didn't this character "real die" when they blew their stack out in Altered Carbon?

Ring Automorphisms that fix 1.

How much time will it take to get my passport back if I am applying for multiple Schengen visa countries?

Seeking colloquialism for “just because”

What is the meaning of the new sigil in Game of Thrones Season 8 intro?

Is the Standard Deduction better than Itemized when both are the same amount?

Book where humans were engineered with genes from animal species to survive hostile planets

Why do people hide their license plates in the EU?

Is it fair for a professor to grade us on the possession of past papers?

Dating a Former Employee

How come Sam didn't become Lord of Horn Hill?

Why did the rest of the Eastern Bloc not invade Yugoslavia?

How to answer "Have you ever been terminated?"

If a contract sometimes uses the wrong name, is it still valid?

What causes the vertical darker bands in my photo?

Why are there no cargo aircraft with "flying wing" design?



How to override model in magento2?



Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?Unit Test for overwrite collection class in magento2main.CRITICAL: Plugin class doesn't existMagento2 add custom address attributeMagento 2: How to override newsletter Subscriber modelMagento2 interface not found in Model classMagento offline custom Payment method with drop down listMagento 2 Create dynamic array From different Model Collection to use in multi select in gridAdd configure product in Cart using Magento 2 API facing an issueHow to set ui form field value with url-param when loading edit new pageMagento 2.3 Can't view module's front end page output?



.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 58 mins 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 48 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 46 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 40 mins ago

























                                    answered 48 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

                                        Virtualbox - Configuration error: Querying “UUID” failed (VERR_CFGM_VALUE_NOT_FOUND)“VERR_SUPLIB_WORLD_WRITABLE” error when trying to installing OS in virtualboxVirtual Box Kernel errorFailed to open a seesion for the virtual machineFailed to open a session for the virtual machineUbuntu 14.04 LTS Virtualbox errorcan't use VM VirtualBoxusing virtualboxI can't run Linux-64 Bit on VirtualBoxUnable to insert the virtual optical disk (VBoxguestaddition) in virtual machine for ubuntu server in win 10VirtuaBox in Ubuntu 18.04 Issues with Win10.ISO Installation

                                        Are there any comparative studies done between Ashtavakra Gita and Buddhim?How is it wrong to believe that a self exists, or that it doesn't?Can you criticise or improve Ven. Bodhi's description of MahayanaWas the doctrine of 'Anatta', accepted as doctrine by modern Buddhism, actually taught by the Buddha?Relationship between Buddhism, Hinduism and Yoga?Comparison of Nirvana, Tao and Brahman/AtmaIs there a distinction between “ego identity” and “craving/hating”?Are there many differences between Taoism and Buddhism?Loss of “faith” in buddhismSimilarity between creation in Abrahamic religions and beginning of life in Earth mentioned Agganna Sutta?Are there studies about the difference between meditating in the morning versus in the evening?Can one follow Hinduism and Buddhism at the same time?Are there any prohibitions on participating in other religion's practices?Psychology of 'flow'

                                        Where is the suspend/hibernate button in GNOME Shell? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)No suspend option in UI on Bionic BeaverHow can I set sleep mode in ubuntu18.04 LTS and what is the short cut key to do so?17.10 suspend not availableUbuntu 18.04 LTS missing sleep optionUbuntu 18.04 LTS - missing suspend option when power button is pressedHow to put Thinkpad X1 Extreme to sleep in Ubuntu 18.10?Suspend Button in interactive power button menu18.04 - Keep programs running after logging outway to disable Hibernate from within gconf-editor so button disappears?How can I hibernate from GNOME Shell?How can I hibernate/suspend from the command line and do so at a specific timeNo permission to suspend/hibernate after upgrading to 12.10MATE - Missing Suspend and Hibernate buttons, pressing power button shutdowns system immediatelyUbuntu 14.04: Suspend, Hibernate and Suspend-hybrid in the menu?Change “power-button-action” comand for “hibernate” option in GNOME 3.18Shutdown / Power off button does always go to suspend on 17.10Hibernate after suspend stopped working in 17.10Why doesn't the keyboard screenshot button work on Ubuntu with GNOME shell?