How to override the GroupInterface by creating extension attributes in magento 2 Planned...
Is it accepted to use working hours to read general interest books?
Co-worker works way more than he should
What is a 'Key' in computer science?
What's called a person who works as someone who puts products on shelves in stores?
What is the definining line between a helicopter and a drone a person can ride in?
Why is arima in R one time step off?
How can I wire a 9-position switch so that each position turns on one more LED than the one before?
Did war bonds have better investment alternatives during WWII?
Is there an efficient way for synchronising audio events real-time with LEDs using an MCU?
Why would the Overseers waste their stock of slaves on the Game?
Married in secret, can marital status in passport be changed at a later date?
Could a cockatrice have parasitic embryos?
What were wait-states, and why was it only an issue for PCs?
What do you call an IPA symbol that lacks a name (e.g. ɲ)?
How would you suggest I follow up with coworkers about our deadline that's today?
Philosophers who were composers?
Is there a possibility to generate a list dynamically in Latex?
/bin/ls sorts differently than just ls
How to compute a Jacobian using polar coordinates?
Preserving file and folder permissions with rsync
When I export an AI 300x60 art board it saves with bigger dimensions
TV series episode where humans nuke aliens before decrypting their message that states they come in peace
How would it unbalance gameplay to rule that Weapon Master allows for picking a fighting style?
Putting Ant-Man on house arrest
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 6 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