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

Can gravitational waves pass through a black hole?

Married in secret, can marital status in passport be changed at a later date?

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

Is there a verb for listening stealthily?

How to keep bees out of canned beverages?

Is there an efficient way for synchronising audio events real-time with LEDs using an MCU?

What were wait-states, and why was it only an issue for PCs?

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

Was there ever a LEGO store in Miami International Airport?

What is a 'Key' in computer science?

Simulate round-robin tournament draw

What is the purpose of the side handle on a hand ("eggbeater") drill?

Has a Nobel Peace laureate ever been accused of war crimes?

What to do with someone that cheated their way though university and a PhD program?

How can I wire a 9-position switch so that each position turns on one more LED than the one before?

What's parked in Mil Moscow helicopter plant?

My admission is revoked after accepting the admission offer

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

`FindRoot [ ]`::jsing: Encountered a singular Jacobian at a point...WHY

Suing a Police Officer Instead of the Police Department

What is /etc/mtab in Linux?

Why is arima in R one time step off?

Why do people think Winterfell crypts is the safest place for women, children & old people?

Like totally amazing interchangeable sister outfit accessory swapping or whatever



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 10 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

          Can not update quote_id field of “quote_item” table magento 2Magento 2.1 - We can't remove the item. (Shopping Cart doesnt allow us to remove items before becomes empty)Add value for custom quote item attribute using REST apiREST API endpoint v1/carts/cartId/items always returns error messageCorrect way to save entries to databaseHow to remove all associated quote objects of a customer completelyMagento 2 - Save value from custom input field to quote_itemGet quote_item data using quote id and product id filter in Magento 2How to set additional data to quote_item table from controller in Magento 2?What is the purpose of additional_data column in quote_item table in magento2Set Custom Price to Quote item magento2 from controller

          How to solve knockout JS error in Magento 2 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?(Magento2) knockout.js:3012 Uncaught ReferenceError: Unable to process bindingUnable to process binding Knockout.js magento 2Cannot read property `scopeLabel` of undefined on Product Detail PageCan't get Customer Data on frontend in Magento 2Magento2 Order Summary - unable to process bindingKO templates are not loading in Magento 2.1 applicationgetting knockout js error magento 2Product grid not load -— Unable to process binding Knockout.js magento 2Product form not loaded in magento2Uncaught ReferenceError: Unable to process binding “if: function()return (isShowLegend()) ” magento 2

          Nissan Patrol Зміст Перше покоління — 4W60 (1951-1960) | Друге покоління — 60 series (1960-1980) | Третє покоління (1980–2002) | Четверте покоління — Y60 (1987–1998) | П'яте покоління — Y61 (1997–2013) | Шосте покоління — Y62 (2010- ) | Посилання | Зноски | Навігаційне менюОфіційний український сайтТест-драйв Nissan Patrol 2010 7-го поколінняNissan PatrolКак мы тестировали Nissan Patrol 2016рвиправивши або дописавши її