cancel
Showing results for 
Search instead for 
Did you mean: 

Magento 2 : Override core interface and model

Magento 2 : Override core interface and model

I am trying to override core interface of Customer Group.

I add my custom get and set methods to core Api interface

 

Vendor\magento\customer-module\Api\Data\GroupInterface.php

 

Where its working fine.

But when i am trying to override it its doesn't seems to be work.

Here i am sharing my module code.

 

ZeroCool\AdvacedReviews\Api\Data\GroupInterface.php

 

<?php

namespace ZeroCool\AdvancedReviews\Api\Data\GroupInterface;


interface GroupInterface extends ExtensibleDataInterface
{   
const SHIPPING_METHOD = 'shipping_method';

/**
 * Get shipping method
 *
 * @return string
 */
public function getShippingMethod();

/**
 * Set shipping method
 *
 * @param int $shippingMethod
 * @return $this
 */
public function setShippingMethod($shippingMethod);

}

ZeroCool\AdvancedReviews\etc\di.xml

 

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
	<type name="Magento\Customer\Block\Adminhtml\Group\Edit\Form">
		<plugin name="add_form_field" type="ZeroCool\AdvancedReviews\Model\Plugin\Form" sortOrder="1"/>
	</type>
	<type name="Magento\Customer\Controller\Adminhtml\Group\Save">
		<plugin name="save_field" type="ZeroCool\AdvancedReviews\Model\Plugin\Form" sortOrder="1"/>
	</type>
	<preference for="Magento\Customer\Model\Data\Group" type="ZeroCool\AdvancedReviews\Model\Data\Group" /> 
	<preference for="Magento\Customer\Api\Data\GroupInterface" type="ZeroCool\AdvancedReviews\Api\Data\GroupInterface" /> 
 <!-- <preference for="Magento\Customer\Model\Group\Edit" type="ZeroCool\AdvancedReviews\Block\Adminhtml\Group\Edit" />   -->
</config>
	  
	 

There's also one question available but it doesn't have any answers till now.

 

Magento stack exchange

 

Thanks in advance.

 

 

1 REPLY

Re: Magento 2 : Override core interface and model

I see that in your code this line is missing

use Magento\Framework\Api\ExtensibleDataInterface;

Please try below code.

<?php

namespace ZeroCool\AdvancedReviews\Api\Data\GroupInterface;

use Magento\Framework\Api\ExtensibleDataInterface;
interface GroupInterface extends ExtensibleDataInterface
{   
const SHIPPING_METHOD = 'shipping_method';

/**
 * Get shipping method
 *
 * @return string
 */
public function getShippingMethod();

/**
 * Set shipping method
 *
 * @param int $shippingMethod
 * @return $this
 */
public function setShippingMethod($shippingMethod);

}


Please give Kudos if it helps and Accept it as a solution