Skip to main content

Write In Products in Opportunity

If you know the typical MS CRM sales module flow, it starts from Lead and Customers and flows through Opportunity, Quote, Order and Invoice, You might have noticed there are Existing and WriteIn products in Quote/Order/Invoice but no so in Opportunity.

This means we can not define write in products at the opportunity which can be pulled across when quote is generated out of it, and then this quote is subsequently converted to order and then invoice.

There is a supported way to implement WriteIn products functionality in MS CRM, here is the technical approach;

1) Create a custom opportunity-writein-products entity just like quoteproducts,orderproducts entities (The basic difference I found between opportunityproduct and quoteproduct or orderproduct is that the relationship with products is a system required in case of the former while no constraint in the later two.
2) One you have created that custom opportunity-writein-products entity, it shall appear as link in left nav of opportunity entity form, you can create records for this custom entity.
3) After that, when you click on create quote out of the opportunity, a plug-in would read all the records of opportunity-writein-products entity and will create appropriate quote-write-in products which is an existing entity quoteproducts.
4) Once we have got the write-in products from opportunity to quote with the help of such plugin, you can then carry on the normal operation of converting quote to order and the default functionality will pull those quote writein products into order as well.

Comments

hero said…
That's good to hear, How has been your experience with ZOHO and what are the main features you like?
hero said…
This comment has been removed by the author.
hero said…
Hi Ric,
I think it should be easy as on a Post Create plugin you can find the source opportunity and then read all write in products and create copies on the Quote being generated .

> Or else you can create quote write in products without any quote being associated with them, and on Post Create plugin of Quote update those with the new quote id.

> That's correct, revenue wont be calculated automatically, create a custom attribute and then use it to store calculated value.


If you have more questions please email those at solutions.insystech@gmail.com.
samali said…
I am here now and would just like to say many thanks for a fantastic post and a all
start up firm
This comment has been removed by the author.

Popular posts from this blog

CRM 2011 Useful JavaScript tidbits

http://www.powerobjects.com/blog/2011/01/14/crm-2011-useful-javascript-tidbits/ Get the value from a CRM field var varMyValue = Xrm.Page.getAttribute(“CRMFieldSchemaName”).getValue() ; Set the value of a CRM field Xrm.Page.getAttribute(“po_CRMFieldSchemaName”).setValue(‘My New Value’); Hide/Show a tab/section Xrm.Page.ui.tabs.get(5).SetVisible(false); Xrm.Page.ui.tabs.get(5).SetVisible(true); Call the onchange event of a field Xrm.Page.getAttribute(“CRMFieldSchemaName”).fireOnChange(); Get the selected value of picklist Xrm.Page.getAttribute(“CRMFieldSchemaName”).getSelectedOption().text; Set the requirement level Xrm.Page.getAttribute(“CRMFieldSchemaName”).setRequiredLevel(“none”); Xrm.Page.getAttribute(“CRMFieldSchemaName”).setRequiredLevel(“required”); Xrm.Page.getAttribute(“CRMFieldSchemaName”).setRequiredLevel(“recommended”); Set the focus to a field Xrm.Page.getControl(“CRMFieldSchemaName”).setFocus(true); Stop an on save event event.returnValue = false; Return array

Abort event through plugins

Suppose you are writing a pre -event plugin in which you compare to  old and new values and on certain condition would like to cancel the Save or  Update and stop the execution, it was simple in CRM 3 with an Abort() method while in CRM 4, you have to manually raise and throw a  Invalid-Plugin-Exception, while this gives a dirty error message on your MSCRM screen, you can make it better by entering you own Message explaining why the record could not be saved: throw new InvalidPluginExecutionException("Execution has been stopped due to this reason");

Using MS CRM Calendar in your custom ASP .NET pages *** Not fully Supported Customisations ***

Hi, Have you been creating custom pages in line with MS CRM for creating , viewing and updating entity records ? Have you placed controls such as Date picker Lookup on your custom page and have tried in vein to make those look like MS CRM ? I found a way to use the same MS CRM calendar control as it appears in the application... For getting this calendar on your asp .net page, follow the steps below: 1) Create a copy of the date.js javascript file located in your-server/crmsite-folder/_static/_controls/datetime folder, give the copy some name like date_myapp.js. 2) Open the following .js files from different sub folders in side the  your-server/crmsite-folder/_static      folder :       Global.js       encodedecode.js       xmlutil.js       util.js       remotecommand.js              Copy and whole content of each file one by one and keep pasting the same to the end of your date_myapp.js file. 3) Now open any CRM entity record page, for example a new Account crea