How to override the GroupInterface by creating extension attributes in magento 2 Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30 pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?

What's called a person who works as someone who puts products on shelves in stores?

When I export an AI 300x60 art board it saves with bigger dimensions

Determinant of a matrix with 2 equal rows

In search of the origins of term censor, I hit a dead end stuck with the greek term, to censor, λογοκρίνω

Will I be more secure with my own router behind my ISP's router?

false 'Security alert' from Google - every login generates mails from 'no-reply@accounts.google.com'

Why did Europeans not widely domesticate foxes?

Why does Java have support for time zone offsets with seconds precision?

Can gravitational waves pass through a black hole?

Was Objective-C really a hindrance to Apple software development?

RIP Packet Format

What's the difference between using dependency injection with a container and using a service locator?

Test if all elements of a Foldable are the same

France's Public Holidays' Puzzle

Is there a way to fake a method response using Mock or Stubs?

Marquee sign letters

Why I cannot instantiate a class whose constructor is private in a friend class?

How to translate "red flag" into Spanish?

Why would the Overseers waste their stock of slaves on the Game?

Why isn't everyone flabbergasted about Bran's "gift"?

What is ls Largest Number Formed by only moving two sticks in 508?

How would it unbalance gameplay to rule that Weapon Master allows for picking a fighting style?

Is a self contained air-bullet cartridge feasible?

What was Apollo 13's "Little Jolt" after MECO?



How to override the GroupInterface by creating extension attributes in magento 2



Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30 pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?



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








0















I wish to override MagentoCustomerApiDataGroupInterface to add my custom fields.



Custom fields are
1.custom_terms
2.handling_fee



I have created the below file in etc/extension_attribues.xml





<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
<extension_attributes for="MagentoCustomerApiDataGroupInterface">
<attribute code="custom_terms" type="string"/>
<attribute code="handling_fee" type="string"/>
</extension_attributes>

</config>


I have created two additional columns to save my extension attribute values in a customer_group table
enter image description here



My Controller



<?php

namespace PPCCustomerGroupControllerAdminhtmlGroup;

use MagentoCustomerApiDataGroupInterfaceFactory;
use MagentoCustomerApiGroupRepositoryInterface;

class Save extends MagentoCustomerControllerAdminhtmlGroupSave

protected $groupExtensionInterfaceFactory;
public function __construct(MagentoBackendAppActionContext $context, MagentoFrameworkRegistry $coreRegistry,
GroupRepositoryInterface $groupRepository,
GroupInterfaceFactory $groupDataFactory,
MagentoBackendModelViewResultForwardFactory $resultForwardFactory,
MagentoFrameworkViewResultPageFactory $resultPageFactory,
MagentoFrameworkReflectionDataObjectProcessor $dataObjectProcessor,
MagentoCustomerApiDataGroupExtensionInterfaceFactory $groupExtensionInterfaceFactory)

$this->groupExtensionInterfaceFactory = $groupExtensionInterfaceFactory;
parent::__construct($context, $coreRegistry, $groupRepository, $groupDataFactory, $resultForwardFactory, $resultPageFactory, $dataObjectProcessor);


public function execute()

$taxClass = (int)$this->getRequest()->getParam('tax_class');
$customTerm = $this->getRequest()->getParam('custom_terms');
$handlingFee = $this->getRequest()->getParam('handling_fee');

/** @var MagentoCustomerApiDataGroupInterface $customerGroup */
$customerGroup = null;
if ($taxClass)
$id = $this->getRequest()->getParam('id');
$resultRedirect = $this->resultRedirectFactory->create();
try
$customerGroupCode = (string)$this->getRequest()->getParam('code');
if ($id !== null)
$customerGroup = $this->groupRepository->getById((int)$id);
$customerGroupCode = $customerGroupCode ?: $customerGroup->getCode();
else
$customerGroup = $this->groupDataFactory->create();

$extensionAttributes = $customerGroup->getExtensionAttributes();
$customerExtension = $extensionAttributes ? $extensionAttributes : $this->groupExtensionInterfaceFactory->create();
$customerExtension->setCustomTerms($customTerm);
$customerExtension->setHandlingFee($handlingFee);
$customerGroup->setCode(!empty($customerGroupCode) ? $customerGroupCode : null);
$customerGroup->setTaxClassId($taxClass);
$customerGroup->setExtensionAttributes($customerExtension);

$this->groupRepository->save($customerGroup);

$this->messageManager->addSuccess(__('You saved the customer group.'));
$resultRedirect->setPath('customer/group');
catch (Exception $e)
$this->messageManager->addError($e->getMessage());
if ($customerGroup != null)
$this->storeCustomerGroupDataToSession(
$this->dataObjectProcessor->buildOutputDataArray(
$customerGroup,
MagentoCustomerApiDataGroupInterface::class
)
);

$resultRedirect->setPath('customer/group/edit', ['id' => $id]);

return $resultRedirect;
else
return $this->resultForwardFactory->create()->forward('new');





So my problems are below



  1. How do I check whether the extension attributes are created or not?

  2. The values are not saved in the customer_group table.
    Can anyone guide me if I missed anything?








share




























    0















    I wish to override MagentoCustomerApiDataGroupInterface to add my custom fields.



    Custom fields are
    1.custom_terms
    2.handling_fee



    I have created the below file in etc/extension_attribues.xml





    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
    <extension_attributes for="MagentoCustomerApiDataGroupInterface">
    <attribute code="custom_terms" type="string"/>
    <attribute code="handling_fee" type="string"/>
    </extension_attributes>

    </config>


    I have created two additional columns to save my extension attribute values in a customer_group table
    enter image description here



    My Controller



    <?php

    namespace PPCCustomerGroupControllerAdminhtmlGroup;

    use MagentoCustomerApiDataGroupInterfaceFactory;
    use MagentoCustomerApiGroupRepositoryInterface;

    class Save extends MagentoCustomerControllerAdminhtmlGroupSave

    protected $groupExtensionInterfaceFactory;
    public function __construct(MagentoBackendAppActionContext $context, MagentoFrameworkRegistry $coreRegistry,
    GroupRepositoryInterface $groupRepository,
    GroupInterfaceFactory $groupDataFactory,
    MagentoBackendModelViewResultForwardFactory $resultForwardFactory,
    MagentoFrameworkViewResultPageFactory $resultPageFactory,
    MagentoFrameworkReflectionDataObjectProcessor $dataObjectProcessor,
    MagentoCustomerApiDataGroupExtensionInterfaceFactory $groupExtensionInterfaceFactory)

    $this->groupExtensionInterfaceFactory = $groupExtensionInterfaceFactory;
    parent::__construct($context, $coreRegistry, $groupRepository, $groupDataFactory, $resultForwardFactory, $resultPageFactory, $dataObjectProcessor);


    public function execute()

    $taxClass = (int)$this->getRequest()->getParam('tax_class');
    $customTerm = $this->getRequest()->getParam('custom_terms');
    $handlingFee = $this->getRequest()->getParam('handling_fee');

    /** @var MagentoCustomerApiDataGroupInterface $customerGroup */
    $customerGroup = null;
    if ($taxClass)
    $id = $this->getRequest()->getParam('id');
    $resultRedirect = $this->resultRedirectFactory->create();
    try
    $customerGroupCode = (string)$this->getRequest()->getParam('code');
    if ($id !== null)
    $customerGroup = $this->groupRepository->getById((int)$id);
    $customerGroupCode = $customerGroupCode ?: $customerGroup->getCode();
    else
    $customerGroup = $this->groupDataFactory->create();

    $extensionAttributes = $customerGroup->getExtensionAttributes();
    $customerExtension = $extensionAttributes ? $extensionAttributes : $this->groupExtensionInterfaceFactory->create();
    $customerExtension->setCustomTerms($customTerm);
    $customerExtension->setHandlingFee($handlingFee);
    $customerGroup->setCode(!empty($customerGroupCode) ? $customerGroupCode : null);
    $customerGroup->setTaxClassId($taxClass);
    $customerGroup->setExtensionAttributes($customerExtension);

    $this->groupRepository->save($customerGroup);

    $this->messageManager->addSuccess(__('You saved the customer group.'));
    $resultRedirect->setPath('customer/group');
    catch (Exception $e)
    $this->messageManager->addError($e->getMessage());
    if ($customerGroup != null)
    $this->storeCustomerGroupDataToSession(
    $this->dataObjectProcessor->buildOutputDataArray(
    $customerGroup,
    MagentoCustomerApiDataGroupInterface::class
    )
    );

    $resultRedirect->setPath('customer/group/edit', ['id' => $id]);

    return $resultRedirect;
    else
    return $this->resultForwardFactory->create()->forward('new');





    So my problems are below



    1. How do I check whether the extension attributes are created or not?

    2. The values are not saved in the customer_group table.
      Can anyone guide me if I missed anything?








    share
























      0












      0








      0








      I wish to override MagentoCustomerApiDataGroupInterface to add my custom fields.



      Custom fields are
      1.custom_terms
      2.handling_fee



      I have created the below file in etc/extension_attribues.xml





      <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
      <extension_attributes for="MagentoCustomerApiDataGroupInterface">
      <attribute code="custom_terms" type="string"/>
      <attribute code="handling_fee" type="string"/>
      </extension_attributes>

      </config>


      I have created two additional columns to save my extension attribute values in a customer_group table
      enter image description here



      My Controller



      <?php

      namespace PPCCustomerGroupControllerAdminhtmlGroup;

      use MagentoCustomerApiDataGroupInterfaceFactory;
      use MagentoCustomerApiGroupRepositoryInterface;

      class Save extends MagentoCustomerControllerAdminhtmlGroupSave

      protected $groupExtensionInterfaceFactory;
      public function __construct(MagentoBackendAppActionContext $context, MagentoFrameworkRegistry $coreRegistry,
      GroupRepositoryInterface $groupRepository,
      GroupInterfaceFactory $groupDataFactory,
      MagentoBackendModelViewResultForwardFactory $resultForwardFactory,
      MagentoFrameworkViewResultPageFactory $resultPageFactory,
      MagentoFrameworkReflectionDataObjectProcessor $dataObjectProcessor,
      MagentoCustomerApiDataGroupExtensionInterfaceFactory $groupExtensionInterfaceFactory)

      $this->groupExtensionInterfaceFactory = $groupExtensionInterfaceFactory;
      parent::__construct($context, $coreRegistry, $groupRepository, $groupDataFactory, $resultForwardFactory, $resultPageFactory, $dataObjectProcessor);


      public function execute()

      $taxClass = (int)$this->getRequest()->getParam('tax_class');
      $customTerm = $this->getRequest()->getParam('custom_terms');
      $handlingFee = $this->getRequest()->getParam('handling_fee');

      /** @var MagentoCustomerApiDataGroupInterface $customerGroup */
      $customerGroup = null;
      if ($taxClass)
      $id = $this->getRequest()->getParam('id');
      $resultRedirect = $this->resultRedirectFactory->create();
      try
      $customerGroupCode = (string)$this->getRequest()->getParam('code');
      if ($id !== null)
      $customerGroup = $this->groupRepository->getById((int)$id);
      $customerGroupCode = $customerGroupCode ?: $customerGroup->getCode();
      else
      $customerGroup = $this->groupDataFactory->create();

      $extensionAttributes = $customerGroup->getExtensionAttributes();
      $customerExtension = $extensionAttributes ? $extensionAttributes : $this->groupExtensionInterfaceFactory->create();
      $customerExtension->setCustomTerms($customTerm);
      $customerExtension->setHandlingFee($handlingFee);
      $customerGroup->setCode(!empty($customerGroupCode) ? $customerGroupCode : null);
      $customerGroup->setTaxClassId($taxClass);
      $customerGroup->setExtensionAttributes($customerExtension);

      $this->groupRepository->save($customerGroup);

      $this->messageManager->addSuccess(__('You saved the customer group.'));
      $resultRedirect->setPath('customer/group');
      catch (Exception $e)
      $this->messageManager->addError($e->getMessage());
      if ($customerGroup != null)
      $this->storeCustomerGroupDataToSession(
      $this->dataObjectProcessor->buildOutputDataArray(
      $customerGroup,
      MagentoCustomerApiDataGroupInterface::class
      )
      );

      $resultRedirect->setPath('customer/group/edit', ['id' => $id]);

      return $resultRedirect;
      else
      return $this->resultForwardFactory->create()->forward('new');





      So my problems are below



      1. How do I check whether the extension attributes are created or not?

      2. The values are not saved in the customer_group table.
        Can anyone guide me if I missed anything?








      share














      I wish to override MagentoCustomerApiDataGroupInterface to add my custom fields.



      Custom fields are
      1.custom_terms
      2.handling_fee



      I have created the below file in etc/extension_attribues.xml





      <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
      <extension_attributes for="MagentoCustomerApiDataGroupInterface">
      <attribute code="custom_terms" type="string"/>
      <attribute code="handling_fee" type="string"/>
      </extension_attributes>

      </config>


      I have created two additional columns to save my extension attribute values in a customer_group table
      enter image description here



      My Controller



      <?php

      namespace PPCCustomerGroupControllerAdminhtmlGroup;

      use MagentoCustomerApiDataGroupInterfaceFactory;
      use MagentoCustomerApiGroupRepositoryInterface;

      class Save extends MagentoCustomerControllerAdminhtmlGroupSave

      protected $groupExtensionInterfaceFactory;
      public function __construct(MagentoBackendAppActionContext $context, MagentoFrameworkRegistry $coreRegistry,
      GroupRepositoryInterface $groupRepository,
      GroupInterfaceFactory $groupDataFactory,
      MagentoBackendModelViewResultForwardFactory $resultForwardFactory,
      MagentoFrameworkViewResultPageFactory $resultPageFactory,
      MagentoFrameworkReflectionDataObjectProcessor $dataObjectProcessor,
      MagentoCustomerApiDataGroupExtensionInterfaceFactory $groupExtensionInterfaceFactory)

      $this->groupExtensionInterfaceFactory = $groupExtensionInterfaceFactory;
      parent::__construct($context, $coreRegistry, $groupRepository, $groupDataFactory, $resultForwardFactory, $resultPageFactory, $dataObjectProcessor);


      public function execute()

      $taxClass = (int)$this->getRequest()->getParam('tax_class');
      $customTerm = $this->getRequest()->getParam('custom_terms');
      $handlingFee = $this->getRequest()->getParam('handling_fee');

      /** @var MagentoCustomerApiDataGroupInterface $customerGroup */
      $customerGroup = null;
      if ($taxClass)
      $id = $this->getRequest()->getParam('id');
      $resultRedirect = $this->resultRedirectFactory->create();
      try
      $customerGroupCode = (string)$this->getRequest()->getParam('code');
      if ($id !== null)
      $customerGroup = $this->groupRepository->getById((int)$id);
      $customerGroupCode = $customerGroupCode ?: $customerGroup->getCode();
      else
      $customerGroup = $this->groupDataFactory->create();

      $extensionAttributes = $customerGroup->getExtensionAttributes();
      $customerExtension = $extensionAttributes ? $extensionAttributes : $this->groupExtensionInterfaceFactory->create();
      $customerExtension->setCustomTerms($customTerm);
      $customerExtension->setHandlingFee($handlingFee);
      $customerGroup->setCode(!empty($customerGroupCode) ? $customerGroupCode : null);
      $customerGroup->setTaxClassId($taxClass);
      $customerGroup->setExtensionAttributes($customerExtension);

      $this->groupRepository->save($customerGroup);

      $this->messageManager->addSuccess(__('You saved the customer group.'));
      $resultRedirect->setPath('customer/group');
      catch (Exception $e)
      $this->messageManager->addError($e->getMessage());
      if ($customerGroup != null)
      $this->storeCustomerGroupDataToSession(
      $this->dataObjectProcessor->buildOutputDataArray(
      $customerGroup,
      MagentoCustomerApiDataGroupInterface::class
      )
      );

      $resultRedirect->setPath('customer/group/edit', ['id' => $id]);

      return $resultRedirect;
      else
      return $this->resultForwardFactory->create()->forward('new');





      So my problems are below



      1. How do I check whether the extension attributes are created or not?

      2. The values are not saved in the customer_group table.
        Can anyone guide me if I missed anything?






      backend customer-group save extension-attributes interface





      share












      share










      share



      share










      asked 1 min ago









      JaisaJaisa

      9061940




      9061940




















          0






          active

          oldest

          votes












          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%2f272154%2fhow-to-override-the-groupinterface-by-creating-extension-attributes-in-magento-2%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















          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%2f272154%2fhow-to-override-the-groupinterface-by-creating-extension-attributes-in-magento-2%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

          Disable / Remove link to Product Items in Cart Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?How can I limit products that can be bought / added to cart?Remove item from cartHide “Add to Cart” button if specific products are already in cart“Prettifying” the custom options in cart pageCreate link in cart sidebar to view all added items After limit reachedLink products together in checkout/cartHow to Get product from cart and add it againHide action-edit on cart page if simple productRemoving Cart items - ObserverRemove wishlist items when added to cart

          Helsingin valtaus Sisällysluettelo Taustaa | Yleistä sotatoimista | Osapuolet | Taistelut Helsingin ympäristössä | Punaisten antautumissuunnitelma | Taistelujen kulku Helsingissä | Valtauksen jälkeen | Tappiot | Muistaminen | Kirjallisuutta | Lähteet | Aiheesta muualla | NavigointivalikkoTeoksen verkkoversioTeoksen verkkoversioGoogle BooksSisällissota Helsingissä päättyi tasan 95 vuotta sittenSaksalaisten ylivoima jyräsi punaisen HelsinginSuomalaiset kuvaavat sotien jälkiä kaupungeissa – katso kuvat ja tarinat tutuilta kulmiltaHelsingin valtaus 90 vuotta sittenSaksalaiset valtasivat HelsinginHyökkäys HelsinkiinHelsingin valtaus 12.–13.4. 1918Saksalaiset käyttivät ihmiskilpiä Helsingin valtauksessa 1918Teoksen verkkoversioTeoksen verkkoversioSaksalaiset hyökkäävät Etelä-SuomeenTaistelut LeppävaarassaSotilaat ja taistelutLeppävaara 1918 huhtikuussa. KapinatarinaHelsingin taistelut 1918Saksalaisten voitonparaati HelsingissäHelsingin valtausta juhlittiinSaksalaisten Helsinki vuonna 1918Helsingin taistelussa kaatuneet valkokaartilaisetHelsinkiin haudatut taisteluissa kaatuneet punaiset12.4.1918 Helsingin valtauksessa saksalaiset apujoukot vapauttavat kaupunginVapaussodan muistomerkkejä Helsingissä ja pääkaupunkiseudullaCrescendo / Vuoden 1918 Kansalaissodan uhrien muistomerkkim

          Adjektiivitarina Tarinan tekeminen | Esimerkki: ennen | Esimerkki: jälkeen | Navigointivalikko