0

I have a third party module, and I'm trying to override the third party .phtml file but it's not working for me. For these, I tried below ways.

Third-Party Layout module:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <update handle="quotation_item_price_renderers"/>
    <body>
          <referenceBlock name="quotation.quote.item.renderers">
               <block class="Magebees\QuotationManager\Block\Checkout\Cart\Item\Renderer" as="default" template="Magebees_QuotationManager::quote/item/default.phtml">
                    <block class="Magebees\QuotationManager\Block\Checkout\Cart\Item\Renderer\Actions" name="quotation.quote.item.renderers.default.actions" as="actions">
                        <block class="Magebees\QuotationManager\Block\Checkout\Cart\Item\Renderer\Actions\Edit" name="quotation.quote.item.renderers.default.actions.edit" template="Magebees_QuotationManager::quote/item/edit.phtml"/>
                        <block class="Magebees\QuotationManager\Block\Checkout\Cart\Item\Renderer\Actions\Remove" name="quotation.quote.item.renderers.default.actions.remove" template="Magebees_QuotationManager::quote/item/remove.phtml"/>
                    </block>
                </block>         
        </referenceBlock> 
    </body>
</page>

Now I want to Override quote/item/default.phtml file.

I tried 2 Ways.

1) Extended luma theme

Copied default.phtml file and pasted in design/frontend/Magento/luma/Magebees_QuotationManager/templates/quote/item/default.phtml

After the above step I executed the upgrade, compile, static-content: deploy commands, still not working.

2) Tried with di.xml

created di.xml in etc/frontend/di.xml and written below code.

<?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="Magebees\QuotationManager\Block\Checkout\Cart\Item\Renderer"  type="ABCSolutions\CQWCProduct\Block\Checkout\Cart\Item\Renderer" />
</config>

And I set the template in the Block file see below code.

<?php

namespace ABCSolutions\CQWCProduct\Block\Checkout\Cart\Item;

use Magebees\QuotationManager\Helper\Quotation;
use Magebees\QuotationManager\Model\QuoteFactory;
use Magento\Catalog\Block\Product\ImageBuilder;
use Magento\Catalog\Helper\Product\Configuration;
use Magento\Checkout\Model\Session;
use Magento\Framework\Message\ManagerInterface;
use Magento\Framework\Module\Manager;
use Magento\Framework\Pricing\PriceCurrencyInterface;
use Magento\Framework\Url\Helper\Data;
use Magento\Framework\View\Element\Message\InterpretationStrategyInterface;
use Magento\Framework\View\Element\Template\Context;

class Renderer extends \Magebees\QuotationManager\Block\Checkout\Cart\Item\Renderer{


    public function __construct(
        Context $context,
        Configuration $qproductConfig,
        Quotation $quoteHelper,
        Session $checkoutSession,
        ImageBuilder $imageBuilder,
        Data $urlHelper,
        ManagerInterface $qmessageManager,
        PriceCurrencyInterface $priceCurrency,
        Manager $moduleManager,
        InterpretationStrategyInterface $qmessageInterpretationStrategy,
        QuoteFactory $quoteFactory,
        array $data = []
    ){
        parent::__construct($context, $qproductConfig, $quoteHelper, $checkoutSession, $imageBuilder, $urlHelper, $qmessageManager, $priceCurrency, $moduleManager,
            $qmessageInterpretationStrategy, $quoteFactory, $data);
        $this->setTemplate("ABCSolutions_CQWCProduct::quote/item/default.phtml");
    }

}

In default.phtml file pasted the code from the Magebees module & added extra content with "Extended".

Still not getting the updated design.

Please suggest me if I went wrong?

  • Did you give sequence in your module.xml file? – Rohan Hapani Nov 6 at 7:28
  • @RohanHapani Yes, given. – Bojjaiah Nov 6 at 7:31
  • @RohanHapani, I have given ` <module name="ABCSolutions_CQWCProduct" setup_version="0.1.1" /> <sequence> <module name="Magento_Sales"/> <module name="Magento_Catalog"/> <module name="Magebees_QuotationManager"/> </sequence>` – Bojjaiah Nov 6 at 7:32
  • Did you upgrade your module after add sequence? – Rohan Hapani Nov 6 at 7:33
  • @RohanHapani, Yes, Executed the upgrade, compile & static-content:deploy commands. still not working – Bojjaiah Nov 6 at 7:36
0

It seems like your syntax issue in your module.xml :

Your code :

<?xml version="1.0"?> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
   <module name="ABCSolutions_CQWCProduct" setup_version="0.1.1" />
   <sequence>
      <module name="Magento_Sales"/>
      <module name="Magento_Catalog"/>
      <module name="Magebees_QuotationManager"/>
   </sequence>
</config>

Replace with this below code :

<?xml version="1.0"?> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
   <module name="ABCSolutions_CQWCProduct" setup_version="0.1.1">
       <sequence>
          <module name="Magento_Sales"/>
          <module name="Magento_Catalog"/>
          <module name="Magebees_QuotationManager"/>
       </sequence>
    </module>
</config>

Then, do upgrade process.

  • 1
    Thank you for the suggestion, Let's try and coma back. – Bojjaiah Nov 6 at 9:05
  • Still, not working bro. – Bojjaiah Nov 6 at 9:36
  • Oh..!! Strange..!! It should be working now. – Rohan Hapani Nov 6 at 9:37
0
<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
   <update handle="quotation_item_price_renderers"/>
    <body>
       <referenceBlock name="default">
            <arguments>
                <argument name="template" xsi:type="string">Vendor_Module::quote/item/default.phtml</argument>
            </arguments>
       </referenceBlock>
    </body>
</page>

OR

<referenceBlock name="default" template="Vendor_Module::quote/item/default.phtml"/>
  • Thank you for the answer. Let's try and come back – Bojjaiah Nov 6 at 9:04
  • I have tried the above 2 methods in my module quotation.quote.item.renderers.xml layout file, but not working for me. I'm I fallowed correct or wrong? please suggest. – Bojjaiah Nov 6 at 9:43
  • 1
    what is your xml file name? quotation.quote.item.renderers.xml or quotation_quote_item_renderers.xml – Rakesh Varma Nov 6 at 9:45
  • The layout file name is quotation_quote_item_renderers.xml. – Bojjaiah Nov 6 at 9:46
  • Understood, wait a minute will try again. – Bojjaiah Nov 6 at 9:48
0

Finally, solved my self by using the 2nd Method in my thread.

di.xml file

<?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="Magebees\QuotationManager\Block\Checkout\Cart\Item\Renderer"   type="ABCSolutions\CQWCProduct\Block\Checkout\Cart\Item\Renderer"/>

</config>

Renderer.php file

<?php

namespace ABCSolutions\CQWCProduct\Block\Checkout\Cart\Item;

use Magebees\QuotationManager\Helper\Quotation;
use Magebees\QuotationManager\Model\QuoteFactory;
use Magento\Catalog\Block\Product\ImageBuilder;
use Magento\Catalog\Helper\Product\Configuration;
use Magento\Checkout\Model\Session;
use Magento\Framework\Message\ManagerInterface;
use Magento\Framework\Module\Manager;
use Magento\Framework\Pricing\PriceCurrencyInterface;
use Magento\Framework\Url\Helper\Data;
use Magento\Framework\View\Element\Message\InterpretationStrategyInterface;
use Magento\Framework\View\Element\Template\Context;
use \Magebees\QuotationManager\Model\QuoteFilesFactory;

class Renderer extends \Magebees\QuotationManager\Block\Checkout\Cart\Item\Renderer{


    /**
     * @var QuoteFilesFactory
     */
    protected $_quoteFilesFactory;


    public function __construct(
        Context $context,
        Configuration $qproductConfig,
        Quotation $quoteHelper,
        Session $checkoutSession,
        ImageBuilder $imageBuilder,
        Data $urlHelper,
        ManagerInterface $qmessageManager,
        PriceCurrencyInterface $priceCurrency,
        Manager $moduleManager,
        InterpretationStrategyInterface $qmessageInterpretationStrategy,
        QuoteFactory $quoteFactory,
        QuoteFilesFactory $quoteFilesFactory,
        array $data = []
    ){
        parent::__construct($context, $qproductConfig, $quoteHelper, $checkoutSession, $imageBuilder, $urlHelper, $qmessageManager, $priceCurrency, $moduleManager,
            $qmessageInterpretationStrategy, $quoteFactory, $data);
        $this->_quoteFilesFactory = $quoteFilesFactory;
        $this->setTemplate("ABCSolutions_CQWCProduct::quote/item/default.phtml");
    }

    protected function _prepareLayout()
    {
        parent::_prepareLayout();
        $this->setTemplate("ABCSolutions_CQWCProduct::quote/item/default.phtml");
        return $this;
    } 

}

default.phtml file

added "Extended" content.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.