Unable to get newly inserted Product's Id using After Plugin for Catalog Product save controller methodMagento 2.2.5: How to get product id after product saved using pluginHow to add a saveAndContinueEdit type button in admin view order?Plugin, get original function parameters in after methodMagento 2 add new Button in admin ControllerAdd an extension to edit the product name quickly in admin. Magento 2Magento 2: Add a product to the cart programmaticallyMagento 1.9 Save action for Catalog Product custom tabI have created one field using product form field for my price i want save my field value at product creation time from backend magento2Magento 2.2.5: How to get product id after product saved using pluginHow to clone/copy product in magento 2 properly wayMagento 2 plugin change price of products that have a custom attribute with
What is it called when someone votes for an option that's not their first choice?
PTIJ: Why do we make a Lulav holder?
Could any one tell what PN is this Chip? Thanks~
Jem'Hadar, something strange about their life expectancy
What are the rules for concealing thieves' tools (or items in general)?
Recursively updating the MLE as new observations stream in
How can a new country break out from a developed country without war?
Would this string work as string?
Nested Dynamic SOQL Query
Help with identifying unique aircraft over NE Pennsylvania
When did hardware antialiasing start being available?
What are the consequences of changing the number of hours in a day?
Symbolism of 18 Journeyers
Do I need to convey a moral for each of my blog post?
How to find the largest number(s) in a list of elements, possibly non-unique?
How to read string as hex number in bash?
is this saw blade faulty?
Animating wave motion in water
Hackerrank All Women's Codesprint 2019: Name the Product
If I cast the Enlarge/Reduce spell on an arrow, what weapon could it count as?
Why are there no stars visible in cislunar space?
Weird lines in Microsoft Word
What (if any) is the reason to buy in small local stores?
How to balance a monster modification (zombie)?
Unable to get newly inserted Product's Id using After Plugin for Catalog Product save controller method
Magento 2.2.5: How to get product id after product saved using pluginHow to add a saveAndContinueEdit type button in admin view order?Plugin, get original function parameters in after methodMagento 2 add new Button in admin ControllerAdd an extension to edit the product name quickly in admin. Magento 2Magento 2: Add a product to the cart programmaticallyMagento 1.9 Save action for Catalog Product custom tabI have created one field using product form field for my price i want save my field value at product creation time from backend magento2Magento 2.2.5: How to get product id after product saved using pluginHow to clone/copy product in magento 2 properly wayMagento 2 plugin change price of products that have a custom attribute with
I have created interceptor for catalog product controller's save action
<type name="MagentoCatalogControllerAdminhtmlProductSave">
<plugin name="ricky_catalog_save_product"
type="RickyCatalogPluginProductSave" sortOrder="10"
/>
</type>
My plugin class is below
namespace RickyCatalogPluginProduct;
class Save
public function afterExecute(
MagentoCatalogControllerAdminhtmlProductSave $subject,
$result)
$productId = $subject->productId; // This is not working
/**
echo $result->getProduct->getId(); die("prodid");
echo $subject->getProduct->getId(); die("prodid");
Both throw exception: Undefined property $getProduct
**/
/** $productId is provided in excute method in Save class
in MagentoCatalogControllerAdminhtmlProductSave **/
For some reasons I have to use Plugin (Interceptor Design Pattern), I know I can get newly created prouduct id by using observer for catalog_product_save_after event. But please provide solution for plugins.
I am asking this after visiting This Solution
Thanks for help :)
product controllers magento2.3 interceptor after-plugin
|
show 1 more comment
I have created interceptor for catalog product controller's save action
<type name="MagentoCatalogControllerAdminhtmlProductSave">
<plugin name="ricky_catalog_save_product"
type="RickyCatalogPluginProductSave" sortOrder="10"
/>
</type>
My plugin class is below
namespace RickyCatalogPluginProduct;
class Save
public function afterExecute(
MagentoCatalogControllerAdminhtmlProductSave $subject,
$result)
$productId = $subject->productId; // This is not working
/**
echo $result->getProduct->getId(); die("prodid");
echo $subject->getProduct->getId(); die("prodid");
Both throw exception: Undefined property $getProduct
**/
/** $productId is provided in excute method in Save class
in MagentoCatalogControllerAdminhtmlProductSave **/
For some reasons I have to use Plugin (Interceptor Design Pattern), I know I can get newly created prouduct id by using observer for catalog_product_save_after event. But please provide solution for plugins.
I am asking this after visiting This Solution
Thanks for help :)
product controllers magento2.3 interceptor after-plugin
Try this $subject->getProduct->getId(); @KapilDevSingh
– Prathap Gunasekaran
1 hour ago
I tried this, but its throws exceptionUndefined property: MagentoCatalogControllerAdminhtmlProductSaveInterceptor::$getProduct
well thanks for response @PrathapGunasekaran
– Kapil Dev Singh
1 hour ago
use $result variable .
– Anand Ontigeri
1 hour ago
Thankyou for reply @AnandOntigeri, I have tried this one also but this also throws same exception.
– Kapil Dev Singh
1 hour ago
@PrathapGunasekaran , This also not worked, even it ended with FATAL ERROR Fatal error: Uncaught Error: Call to undefined method MagentoBackendModelViewResultRedirectInterceptor::getAllItems()
– Kapil Dev Singh
46 mins ago
|
show 1 more comment
I have created interceptor for catalog product controller's save action
<type name="MagentoCatalogControllerAdminhtmlProductSave">
<plugin name="ricky_catalog_save_product"
type="RickyCatalogPluginProductSave" sortOrder="10"
/>
</type>
My plugin class is below
namespace RickyCatalogPluginProduct;
class Save
public function afterExecute(
MagentoCatalogControllerAdminhtmlProductSave $subject,
$result)
$productId = $subject->productId; // This is not working
/**
echo $result->getProduct->getId(); die("prodid");
echo $subject->getProduct->getId(); die("prodid");
Both throw exception: Undefined property $getProduct
**/
/** $productId is provided in excute method in Save class
in MagentoCatalogControllerAdminhtmlProductSave **/
For some reasons I have to use Plugin (Interceptor Design Pattern), I know I can get newly created prouduct id by using observer for catalog_product_save_after event. But please provide solution for plugins.
I am asking this after visiting This Solution
Thanks for help :)
product controllers magento2.3 interceptor after-plugin
I have created interceptor for catalog product controller's save action
<type name="MagentoCatalogControllerAdminhtmlProductSave">
<plugin name="ricky_catalog_save_product"
type="RickyCatalogPluginProductSave" sortOrder="10"
/>
</type>
My plugin class is below
namespace RickyCatalogPluginProduct;
class Save
public function afterExecute(
MagentoCatalogControllerAdminhtmlProductSave $subject,
$result)
$productId = $subject->productId; // This is not working
/**
echo $result->getProduct->getId(); die("prodid");
echo $subject->getProduct->getId(); die("prodid");
Both throw exception: Undefined property $getProduct
**/
/** $productId is provided in excute method in Save class
in MagentoCatalogControllerAdminhtmlProductSave **/
For some reasons I have to use Plugin (Interceptor Design Pattern), I know I can get newly created prouduct id by using observer for catalog_product_save_after event. But please provide solution for plugins.
I am asking this after visiting This Solution
Thanks for help :)
product controllers magento2.3 interceptor after-plugin
product controllers magento2.3 interceptor after-plugin
edited 1 hour ago
Kapil Dev Singh
asked 1 hour ago
Kapil Dev SinghKapil Dev Singh
207
207
Try this $subject->getProduct->getId(); @KapilDevSingh
– Prathap Gunasekaran
1 hour ago
I tried this, but its throws exceptionUndefined property: MagentoCatalogControllerAdminhtmlProductSaveInterceptor::$getProduct
well thanks for response @PrathapGunasekaran
– Kapil Dev Singh
1 hour ago
use $result variable .
– Anand Ontigeri
1 hour ago
Thankyou for reply @AnandOntigeri, I have tried this one also but this also throws same exception.
– Kapil Dev Singh
1 hour ago
@PrathapGunasekaran , This also not worked, even it ended with FATAL ERROR Fatal error: Uncaught Error: Call to undefined method MagentoBackendModelViewResultRedirectInterceptor::getAllItems()
– Kapil Dev Singh
46 mins ago
|
show 1 more comment
Try this $subject->getProduct->getId(); @KapilDevSingh
– Prathap Gunasekaran
1 hour ago
I tried this, but its throws exceptionUndefined property: MagentoCatalogControllerAdminhtmlProductSaveInterceptor::$getProduct
well thanks for response @PrathapGunasekaran
– Kapil Dev Singh
1 hour ago
use $result variable .
– Anand Ontigeri
1 hour ago
Thankyou for reply @AnandOntigeri, I have tried this one also but this also throws same exception.
– Kapil Dev Singh
1 hour ago
@PrathapGunasekaran , This also not worked, even it ended with FATAL ERROR Fatal error: Uncaught Error: Call to undefined method MagentoBackendModelViewResultRedirectInterceptor::getAllItems()
– Kapil Dev Singh
46 mins ago
Try this $subject->getProduct->getId(); @KapilDevSingh
– Prathap Gunasekaran
1 hour ago
Try this $subject->getProduct->getId(); @KapilDevSingh
– Prathap Gunasekaran
1 hour ago
I tried this, but its throws exception
Undefined property: MagentoCatalogControllerAdminhtmlProductSaveInterceptor::$getProduct
well thanks for response @PrathapGunasekaran– Kapil Dev Singh
1 hour ago
I tried this, but its throws exception
Undefined property: MagentoCatalogControllerAdminhtmlProductSaveInterceptor::$getProduct
well thanks for response @PrathapGunasekaran– Kapil Dev Singh
1 hour ago
use $result variable .
– Anand Ontigeri
1 hour ago
use $result variable .
– Anand Ontigeri
1 hour ago
Thankyou for reply @AnandOntigeri, I have tried this one also but this also throws same exception.
– Kapil Dev Singh
1 hour ago
Thankyou for reply @AnandOntigeri, I have tried this one also but this also throws same exception.
– Kapil Dev Singh
1 hour ago
@PrathapGunasekaran , This also not worked, even it ended with FATAL ERROR Fatal error: Uncaught Error: Call to undefined method MagentoBackendModelViewResultRedirectInterceptor::getAllItems()
– Kapil Dev Singh
46 mins ago
@PrathapGunasekaran , This also not worked, even it ended with FATAL ERROR Fatal error: Uncaught Error: Call to undefined method MagentoBackendModelViewResultRedirectInterceptor::getAllItems()
– Kapil Dev Singh
46 mins ago
|
show 1 more comment
1 Answer
1
active
oldest
votes
The variable $product
is not accessible from outside the save
method. The only exceptioon is the event controller_action_catalog_product_save_entity_after
.
But the product builder puts the product into registry, so you may access the product from there.
This code should work in my opinion, but I didn't test it:
public function __construct(
MagentoFrameworkRegistry $registry
)
$this->registry = $registry;
public function afterExecute(
MagentoCatalogControllerAdminhtmlProductSave $subject,
$result)
//get the product from registry
$product = $this->registry->registry('current_product');
$productId = $product->getId();
return $result;
You didn't tested but I applied, It works like a charm. ThankYou. So basically if we want to pass variables from save (Controller) to outside then we can use registry.
– Kapil Dev Singh
33 mins ago
@helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
23 mins ago
1
@VishwasBhatnagar yes, I know, but it is the only way I see to access the product using a plugin. I would rather use the event but the question was about the plugin usage
– HelgeB
19 mins ago
@HelgeB agreed , but i feel it can done afterPlugin on $product->save(); i have not tested the theory, but it should work github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
9 mins ago
add a comment |
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%2f266434%2funable-to-get-newly-inserted-products-id-using-after-plugin-for-catalog-product%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The variable $product
is not accessible from outside the save
method. The only exceptioon is the event controller_action_catalog_product_save_entity_after
.
But the product builder puts the product into registry, so you may access the product from there.
This code should work in my opinion, but I didn't test it:
public function __construct(
MagentoFrameworkRegistry $registry
)
$this->registry = $registry;
public function afterExecute(
MagentoCatalogControllerAdminhtmlProductSave $subject,
$result)
//get the product from registry
$product = $this->registry->registry('current_product');
$productId = $product->getId();
return $result;
You didn't tested but I applied, It works like a charm. ThankYou. So basically if we want to pass variables from save (Controller) to outside then we can use registry.
– Kapil Dev Singh
33 mins ago
@helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
23 mins ago
1
@VishwasBhatnagar yes, I know, but it is the only way I see to access the product using a plugin. I would rather use the event but the question was about the plugin usage
– HelgeB
19 mins ago
@HelgeB agreed , but i feel it can done afterPlugin on $product->save(); i have not tested the theory, but it should work github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
9 mins ago
add a comment |
The variable $product
is not accessible from outside the save
method. The only exceptioon is the event controller_action_catalog_product_save_entity_after
.
But the product builder puts the product into registry, so you may access the product from there.
This code should work in my opinion, but I didn't test it:
public function __construct(
MagentoFrameworkRegistry $registry
)
$this->registry = $registry;
public function afterExecute(
MagentoCatalogControllerAdminhtmlProductSave $subject,
$result)
//get the product from registry
$product = $this->registry->registry('current_product');
$productId = $product->getId();
return $result;
You didn't tested but I applied, It works like a charm. ThankYou. So basically if we want to pass variables from save (Controller) to outside then we can use registry.
– Kapil Dev Singh
33 mins ago
@helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
23 mins ago
1
@VishwasBhatnagar yes, I know, but it is the only way I see to access the product using a plugin. I would rather use the event but the question was about the plugin usage
– HelgeB
19 mins ago
@HelgeB agreed , but i feel it can done afterPlugin on $product->save(); i have not tested the theory, but it should work github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
9 mins ago
add a comment |
The variable $product
is not accessible from outside the save
method. The only exceptioon is the event controller_action_catalog_product_save_entity_after
.
But the product builder puts the product into registry, so you may access the product from there.
This code should work in my opinion, but I didn't test it:
public function __construct(
MagentoFrameworkRegistry $registry
)
$this->registry = $registry;
public function afterExecute(
MagentoCatalogControllerAdminhtmlProductSave $subject,
$result)
//get the product from registry
$product = $this->registry->registry('current_product');
$productId = $product->getId();
return $result;
The variable $product
is not accessible from outside the save
method. The only exceptioon is the event controller_action_catalog_product_save_entity_after
.
But the product builder puts the product into registry, so you may access the product from there.
This code should work in my opinion, but I didn't test it:
public function __construct(
MagentoFrameworkRegistry $registry
)
$this->registry = $registry;
public function afterExecute(
MagentoCatalogControllerAdminhtmlProductSave $subject,
$result)
//get the product from registry
$product = $this->registry->registry('current_product');
$productId = $product->getId();
return $result;
answered 51 mins ago
HelgeBHelgeB
2,6131320
2,6131320
You didn't tested but I applied, It works like a charm. ThankYou. So basically if we want to pass variables from save (Controller) to outside then we can use registry.
– Kapil Dev Singh
33 mins ago
@helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
23 mins ago
1
@VishwasBhatnagar yes, I know, but it is the only way I see to access the product using a plugin. I would rather use the event but the question was about the plugin usage
– HelgeB
19 mins ago
@HelgeB agreed , but i feel it can done afterPlugin on $product->save(); i have not tested the theory, but it should work github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
9 mins ago
add a comment |
You didn't tested but I applied, It works like a charm. ThankYou. So basically if we want to pass variables from save (Controller) to outside then we can use registry.
– Kapil Dev Singh
33 mins ago
@helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
23 mins ago
1
@VishwasBhatnagar yes, I know, but it is the only way I see to access the product using a plugin. I would rather use the event but the question was about the plugin usage
– HelgeB
19 mins ago
@HelgeB agreed , but i feel it can done afterPlugin on $product->save(); i have not tested the theory, but it should work github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
9 mins ago
You didn't tested but I applied, It works like a charm. ThankYou. So basically if we want to pass variables from save (Controller) to outside then we can use registry.
– Kapil Dev Singh
33 mins ago
You didn't tested but I applied, It works like a charm. ThankYou. So basically if we want to pass variables from save (Controller) to outside then we can use registry.
– Kapil Dev Singh
33 mins ago
@helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
23 mins ago
@helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
23 mins ago
1
1
@VishwasBhatnagar yes, I know, but it is the only way I see to access the product using a plugin. I would rather use the event but the question was about the plugin usage
– HelgeB
19 mins ago
@VishwasBhatnagar yes, I know, but it is the only way I see to access the product using a plugin. I would rather use the event but the question was about the plugin usage
– HelgeB
19 mins ago
@HelgeB agreed , but i feel it can done afterPlugin on $product->save(); i have not tested the theory, but it should work github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
9 mins ago
@HelgeB agreed , but i feel it can done afterPlugin on $product->save(); i have not tested the theory, but it should work github.com/magento/magento2/blob/…
– Vishwas Bhatnagar
9 mins ago
add a comment |
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%2f266434%2funable-to-get-newly-inserted-products-id-using-after-plugin-for-catalog-product%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
Try this $subject->getProduct->getId(); @KapilDevSingh
– Prathap Gunasekaran
1 hour ago
I tried this, but its throws exception
Undefined property: MagentoCatalogControllerAdminhtmlProductSaveInterceptor::$getProduct
well thanks for response @PrathapGunasekaran– Kapil Dev Singh
1 hour ago
use $result variable .
– Anand Ontigeri
1 hour ago
Thankyou for reply @AnandOntigeri, I have tried this one also but this also throws same exception.
– Kapil Dev Singh
1 hour ago
@PrathapGunasekaran , This also not worked, even it ended with FATAL ERROR Fatal error: Uncaught Error: Call to undefined method MagentoBackendModelViewResultRedirectInterceptor::getAllItems()
– Kapil Dev Singh
46 mins ago