When adding products to an opportunity with the inline sub grid, often you will only want to allow pre-existing products for your users, thus not needing or wanting the "Write-in Product" button. If you do not want users to be able to add a write-in product there are 3 ways you can accomplish:
- Security roles
- Re-naming the sub grid
- Ribbon workbench
Option 1: Using security roles
To accomplish with security roles navigate to Settings>Security>Security Roles>Open Desired User Role> Sales Tab > Misc privileges
Restrict users from 'Override Order Pricing" by clearing out the circle
The caveat is that this option will not allow the users with that security role to update the Price per Unit, so if that is something your users need to do, move to the next option.
Option 2: Re-naming the Opportunity Sub-grid to hide Write-in option
Renaming the sub grid to anything other than the default "opportunityproductGrid" results in losing the Write-in button. To hide the Write-in Product button simply modify the unique name to anything other than default. Even changing the capitalization of the name will be enough to hide the button.
*This is not a documented feature but tested to work well for CRM Online.
**To re-add the write-in button you must completely remove the sub grid from the form, save and publish, then re-add the sub grid with the unique name of "opportunityproductGrid".
Option 3: Using Ribbon Workbench to Hide Buttons
Another way to accomplish this goal is to use the ribbon workbench. You can load a solution with the opportunity product entity and hide the write in button with just a few clicks. Make sure to publish after making the change in the picture below. After selecting the Opportunity product entity> click the products drop down from the subgrid buttons,>right click "Write-in product" and choose Hide Button.