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;
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
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
- How do I check whether the extension attributes are created or not?
- 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
add a comment |
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
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
- How do I check whether the extension attributes are created or not?
- 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
add a comment |
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
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
- How do I check whether the extension attributes are created or not?
- 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
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
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
- How do I check whether the extension attributes are created or not?
- 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
backend customer-group save extension-attributes interface
asked 58 mins ago
JaisaJaisa
9061940
9061940
add a comment |
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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