Unable to get newly inserted Product's Id using After Plugin for Catalog Product save controller method The Next CEO of Stack OverflowMagento 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

How did people program for Consoles with multiple CPUs?

How a 64-bit process virtual address space is divided in Linux?

Why is quantifier elimination desirable for a given theory?

What does "Its cash flow is deeply negative" mean?

Some questions about different axiomatic systems for neighbourhoods

Is it okay to majorly distort historical facts while writing a fiction story?

Writing differences on a blackboard

Does soap repel water?

Why is information "lost" when it got into a black hole?

Why did CATV standarize in 75 ohms and everyone else in 50?

Should I tutor a student who I know has cheated on their homework?

How to get from Geneva Airport to Metabief?

Would a completely good Muggle be able to use a wand?

Make solar eclipses exceedingly rare, but still have new moons

What steps are necessary to read a Modern SSD in Medieval Europe?

Prepend last line of stdin to entire stdin

Is there a way to save my career from absolute disaster?

Unclear about dynamic binding

Bartok - Syncopation (1): Meaning of notes in between Grand Staff

Why doesn't UK go for the same deal Japan has with EU to resolve Brexit?

Tactics for judging if a printed image will be bright enough?

Why is my new battery behaving weirdly?

Is it my responsibility to learn a new technology in my own time my employer wants to implement?

Would this house-rule that treats advantage as a +1 to the roll instead (and disadvantage as -1) and allows them to stack be balanced?



Unable to get newly inserted Product's Id using After Plugin for Catalog Product save controller method



The Next CEO of Stack OverflowMagento 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










1















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 :)










share|improve this question
























  • Try this $subject->getProduct->getId(); @KapilDevSingh

    – Prathap Gunasekaran
    Mar 19 at 4:21











  • I tried this, but its throws exception Undefined property: MagentoCatalogControllerAdminhtmlProductSaveInterceptor::$getProduct well thanks for response @PrathapGunasekaran

    – Kapil Dev Singh
    Mar 19 at 4:28











  • use $result variable .

    – Anand Ontigeri
    Mar 19 at 4:29











  • Thankyou for reply @AnandOntigeri, I have tried this one also but this also throws same exception.

    – Kapil Dev Singh
    Mar 19 at 4:36











  • @PrathapGunasekaran , This also not worked, even it ended with FATAL ERROR Fatal error: Uncaught Error: Call to undefined method MagentoBackendModelViewResultRedirectInterceptor::getAllItems()

    – Kapil Dev Singh
    Mar 19 at 5:12















1















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 :)










share|improve this question
























  • Try this $subject->getProduct->getId(); @KapilDevSingh

    – Prathap Gunasekaran
    Mar 19 at 4:21











  • I tried this, but its throws exception Undefined property: MagentoCatalogControllerAdminhtmlProductSaveInterceptor::$getProduct well thanks for response @PrathapGunasekaran

    – Kapil Dev Singh
    Mar 19 at 4:28











  • use $result variable .

    – Anand Ontigeri
    Mar 19 at 4:29











  • Thankyou for reply @AnandOntigeri, I have tried this one also but this also throws same exception.

    – Kapil Dev Singh
    Mar 19 at 4:36











  • @PrathapGunasekaran , This also not worked, even it ended with FATAL ERROR Fatal error: Uncaught Error: Call to undefined method MagentoBackendModelViewResultRedirectInterceptor::getAllItems()

    – Kapil Dev Singh
    Mar 19 at 5:12













1












1








1


1






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 :)










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 19 at 4:35







Kapil Dev Singh

















asked Mar 19 at 4:17









Kapil Dev SinghKapil Dev Singh

307




307












  • Try this $subject->getProduct->getId(); @KapilDevSingh

    – Prathap Gunasekaran
    Mar 19 at 4:21











  • I tried this, but its throws exception Undefined property: MagentoCatalogControllerAdminhtmlProductSaveInterceptor::$getProduct well thanks for response @PrathapGunasekaran

    – Kapil Dev Singh
    Mar 19 at 4:28











  • use $result variable .

    – Anand Ontigeri
    Mar 19 at 4:29











  • Thankyou for reply @AnandOntigeri, I have tried this one also but this also throws same exception.

    – Kapil Dev Singh
    Mar 19 at 4:36











  • @PrathapGunasekaran , This also not worked, even it ended with FATAL ERROR Fatal error: Uncaught Error: Call to undefined method MagentoBackendModelViewResultRedirectInterceptor::getAllItems()

    – Kapil Dev Singh
    Mar 19 at 5:12

















  • Try this $subject->getProduct->getId(); @KapilDevSingh

    – Prathap Gunasekaran
    Mar 19 at 4:21











  • I tried this, but its throws exception Undefined property: MagentoCatalogControllerAdminhtmlProductSaveInterceptor::$getProduct well thanks for response @PrathapGunasekaran

    – Kapil Dev Singh
    Mar 19 at 4:28











  • use $result variable .

    – Anand Ontigeri
    Mar 19 at 4:29











  • Thankyou for reply @AnandOntigeri, I have tried this one also but this also throws same exception.

    – Kapil Dev Singh
    Mar 19 at 4:36











  • @PrathapGunasekaran , This also not worked, even it ended with FATAL ERROR Fatal error: Uncaught Error: Call to undefined method MagentoBackendModelViewResultRedirectInterceptor::getAllItems()

    – Kapil Dev Singh
    Mar 19 at 5:12
















Try this $subject->getProduct->getId(); @KapilDevSingh

– Prathap Gunasekaran
Mar 19 at 4:21





Try this $subject->getProduct->getId(); @KapilDevSingh

– Prathap Gunasekaran
Mar 19 at 4:21













I tried this, but its throws exception Undefined property: MagentoCatalogControllerAdminhtmlProductSaveInterceptor::$getProduct well thanks for response @PrathapGunasekaran

– Kapil Dev Singh
Mar 19 at 4:28





I tried this, but its throws exception Undefined property: MagentoCatalogControllerAdminhtmlProductSaveInterceptor::$getProduct well thanks for response @PrathapGunasekaran

– Kapil Dev Singh
Mar 19 at 4:28













use $result variable .

– Anand Ontigeri
Mar 19 at 4:29





use $result variable .

– Anand Ontigeri
Mar 19 at 4:29













Thankyou for reply @AnandOntigeri, I have tried this one also but this also throws same exception.

– Kapil Dev Singh
Mar 19 at 4:36





Thankyou for reply @AnandOntigeri, I have tried this one also but this also throws same exception.

– Kapil Dev Singh
Mar 19 at 4:36













@PrathapGunasekaran , This also not worked, even it ended with FATAL ERROR Fatal error: Uncaught Error: Call to undefined method MagentoBackendModelViewResultRedirectInterceptor::getAllItems()

– Kapil Dev Singh
Mar 19 at 5:12





@PrathapGunasekaran , This also not worked, even it ended with FATAL ERROR Fatal error: Uncaught Error: Call to undefined method MagentoBackendModelViewResultRedirectInterceptor::getAllItems()

– Kapil Dev Singh
Mar 19 at 5:12










1 Answer
1






active

oldest

votes


















2














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;






share|improve this answer























  • 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
    Mar 19 at 5:25






  • 1





    @helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…

    – Vishwas Bhatnagar
    Mar 19 at 5:35






  • 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
    Mar 19 at 5:39











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









2














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;






share|improve this answer























  • 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
    Mar 19 at 5:25






  • 1





    @helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…

    – Vishwas Bhatnagar
    Mar 19 at 5:35






  • 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
    Mar 19 at 5:39















2














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;






share|improve this answer























  • 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
    Mar 19 at 5:25






  • 1





    @helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…

    – Vishwas Bhatnagar
    Mar 19 at 5:35






  • 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
    Mar 19 at 5:39













2












2








2







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;






share|improve this answer













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;







share|improve this answer












share|improve this answer



share|improve this answer










answered Mar 19 at 5:07









HelgeBHelgeB

3,0131322




3,0131322












  • 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
    Mar 19 at 5:25






  • 1





    @helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…

    – Vishwas Bhatnagar
    Mar 19 at 5:35






  • 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
    Mar 19 at 5:39

















  • 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
    Mar 19 at 5:25






  • 1





    @helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…

    – Vishwas Bhatnagar
    Mar 19 at 5:35






  • 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
    Mar 19 at 5:39
















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
Mar 19 at 5:25





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
Mar 19 at 5:25




1




1





@helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…

– Vishwas Bhatnagar
Mar 19 at 5:35





@helgeb Registry is deprecated in magento 2.3, Should not be used github.com/magento/magento2/blob/…

– Vishwas Bhatnagar
Mar 19 at 5:35




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
Mar 19 at 5:39





@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
Mar 19 at 5:39

















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





















































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

Identifying “long and narrow” polygons in with PostGISlength and width of polygonWhy postgis st_overlaps reports Qgis' “avoid intersections” generated polygon as overlapping with others?Adjusting polygons to boundary and filling holesDrawing polygons with fixed area?How to remove spikes in Polygons with PostGISDeleting sliver polygons after difference operation in QGIS?Snapping boundaries in PostGISSplit polygon into parts adding attributes based on underlying polygon in QGISSplitting overlap between polygons and assign to nearest polygon using PostGIS?Expanding polygons and clipping at midpoint?Removing Intersection of Buffers in Same Layers

Masuk log Menu navigasi

อาณาจักร (ชีววิทยา) ดูเพิ่ม อ้างอิง รายการเลือกการนำทาง10.1086/39456810.5962/bhl.title.447410.1126/science.163.3863.150576276010.1007/BF01796092408502"Phylogenetic structure of the prokaryotic domain: the primary kingdoms"10.1073/pnas.74.11.5088432104270744"Towards a natural system of organisms: proposal for the domains Archaea, Bacteria, and Eucarya"1990PNAS...87.4576W10.1073/pnas.87.12.4576541592112744PubMedJump the queueexpand by handPubMedJump the queueexpand by handPubMedJump the queueexpand by hand"A revised six-kingdom system of life"10.1111/j.1469-185X.1998.tb00030.x9809012"Only six kingdoms of life"10.1098/rspb.2004.2705169172415306349"Kingdoms Protozoa and Chromista and the eozoan root of the eukaryotic tree"10.1098/rsbl.2009.0948288006020031978เพิ่มข้อมูล