Question

Enable Product Catalog list (like in Order and Invoice) for Opportunity products?

Anyone have any places to start with adding the product catalog selection list (like in order and invoice) for adding opportunity products?

Like 0

Like

15 comments

Has anyone found a solution to this?

I've not yet returned to this yet (and didn't dig deep enough to find out how to replicate that). Never did get a response. When I do return to this to figure it out, I'll write it up and link it here.

Dear Ryan,

 

Firstly, please note that your detail schema should inherit from the “ProductDetailV2” schema and an edit-page of the detail should inherit from the “BaseProductDetailPageV2” schema (like OrderProductDetailV2 and OrderProductPageV2).

 

Secondly, you should override the “openCardInChain” function in the “OpportunityPageV2” schema using the following example https://prnt.sc/sl45sd . Please note that this method is called when the “OpenCard” message is published. The message is published by the “loadProductSelectionModule” method from the “ProductDetailV2” schema.

 

Thirdly, while the “ProductSelectionModuleV2” module is being loaded the “ProductSelectionInfo” message is published so you can subscribe to this message in the detail schema.

 

These are basic steps that should be implemented, however according to a business-task you might need to override the “ProductSelectionSchema” schema for example.

 

Please feel free to debug the “ProductDetailV2”, “BaseOrderPage” and “ProductSelectionSchema” schemas for getting deeper understanding of how they work.

 

Best regards,

Norton

Norton Lingard,

 

Very helpful. Thanks for the details Norton!

 

Ryan

Norton Lingard,

 

We are also trying to implement this feature, but we are stuck in the beginning. Our question is, in the Opportunity Page do we need to create another detail, or we can just use the “OpportunityProductDetail” by creating a replacing schema? If we need to create another detail should we set the inheritance from the “ProductDetailV2” using the Parent Object attribute or should we add the module to the array of dependencies in the “define”? 

Can you please explain with more detail this step.

 

Best Regards,

Pedro

Norton Lingard,

 

Hi, is it possible to use the “OpportunityProductInterest” as object for this new detail and add the necessary fields to be used in Catalog or do we need to create a new object that has “BaseProductEntry” as a Parent?

 

Best Regards,

Pedro

 

Dear Pedro Pinheiro,

You would need to create a new detail and set a parent to “ProductDetailV2” using the Parent Object (please see how it is done in OrderProductDetailV2). You would also need to create a new object for the detail and set a parent to BaseProductEntry(similarly to OrderProduct). 

Best regards, 

Dennis

Ryan Farley,

Hello Ryan.

How did you manage to enable the product catalog list for opportunity products. Is there any order of steps to be considered ?

Thank you Ryan !

Sasori Oshigaki,



Were you able to achieve the required task ?





BR,

Bhoobalan Palanivelu.

Bhoobalan Palanivelu,

Hello Bhoobalan,

Sadly, I never did pursue it further (the client's needs changed so was implemented differently)

Ryan

Ryan Farley,



Appreciate your response!

 

I was able to achieve it through a custom object (newly created object) but unable to achieve it in the OOTB object (OpportunityProductInterest) of the opportunity section. By any chance, if you got to check this, please assist with your insight.





BR,

Bhoobalan Palanivelu.

Bhoobalan Palanivelu,

Hello Bhoobalan , I have done pretty much the same things. Managed to achieve the excact interface (Product Catalog) as in Orders for the Opportunity Section. I achieved this with a new object that derived from the Product object as replacment parent (added opportunity as a lookup in the new object). I think its not possible to achieve this task directly from the OpportunityProductInterest object.

After creating the new object I followed the steps that are mentioned in this article: 

''Firstly, please note that your detail schema should inherit from the “ProductDetailV2” schema and an edit-page of the detail should inherit from the “BaseProductDetailPageV2” schema (like OrderProductDetailV2 and OrderProductPageV2).

Secondly, you should override the “openCardInChain” function in the “OpportunityPageV2” schema using the following example https://prnt.sc/sl45sd . Please note that this method is called when the “OpenCard” message is published. The message is published by the “loadProductSelectionModule” method from the “ProductDetailV2” schema.

Thirdly, while the “ProductSelectionModuleV2” module is being loaded the “ProductSelectionInfo” message is published so you can subscribe to this message in the detail schema.

These are basic steps that should be implemented, however according to a business-task you might need to override the “ProductSelectionSchema” schema for example.

Please feel free to debug the “ProductDetailV2”, “BaseOrderPage” and “ProductSelectionSchema” schemas for getting deeper understanding of how they work.

''

But in the end , because OpportunityProductInterest is involved in a lot of out of the box business process replacing it with a new object derived from the Product object, is not an optimal solution.

Sasori Oshigaki,



Glad that you were able to achieve it!



Likewise, the feature is incorporated into a new object but that is limited to the OOTB OpportunityProductInterest object as it has a base structure and other schemas are referring to this hence it becomes not possible to modify the OOTB object.





BR,

Bhoobalan Palanivelu.

Show all comments