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?How do the extension attributes work in Magento 2?Magento 2: Create customer group programaticallyWhere are extension attributes persisted?How to remove “NOT LOGGED IN” valueHow to use extension attributes for customer EAV attributes?Creating Magento-attributes using Magento-Extensionextension attributesHow to manage custom attributes in group customerMagento 2 extension attributesMagento 2 Save custom customer address attribute in customer edit form using extension attributes

What is /etc/mtab in Linux?

Test if all elements of a Foldable are the same

Why did Europeans not widely domesticate foxes?

All ASCII characters with a given bit count

What do you call an IPA symbol that lacks a name (e.g. ɲ)?

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

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

Why is arima in R one time step off?

Philosophers who were composers?

Coin Game with infinite paradox

How would you suggest I follow up with coworkers about our deadline that's today?

Is it accepted to use working hours to read general interest books?

Processing ADC conversion result: DMA vs Processor Registers

/bin/ls sorts differently than just ls

A journey... into the MIND

Suing a Police Officer Instead of the Police Department

Are these square matrices always diagonalisable?

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

France's Public Holidays' Puzzle

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

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

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

How did Elite on the NES work?

Why doesn't the university give past final exams' answers?



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?How do the extension attributes work in Magento 2?Magento 2: Create customer group programaticallyWhere are extension attributes persisted?How to remove “NOT LOGGED IN” valueHow to use extension attributes for customer EAV attributes?Creating Magento-attributes using Magento-Extensionextension attributesHow to manage custom attributes in group customerMagento 2 extension attributesMagento 2 Save custom customer address attribute in customer edit form using extension attributes



.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|improve this question




























    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|improve this question
























      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|improve this question














      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|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 58 mins 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

          Nidaros erkebispedøme

          Birsay

          Where did Arya get these scars? Unicorn Meta Zoo #1: Why another podcast? Announcing the arrival of Valued Associate #679: Cesar Manara Favourite questions and answers from the 1st quarter of 2019Why did Arya refuse to end it?Has the pronunciation of Arya Stark's name changed?Has Arya forgiven people?Why did Arya Stark lose her vision?Why can Arya still use the faces?Has the Narrow Sea become narrower?Does Arya Stark know how to make poisons outside of the House of Black and White?Why did Nymeria leave Arya?Why did Arya not kill the Lannister soldiers she encountered in the Riverlands?What is the current canonical age of Sansa, Bran and Arya Stark?