Sunday, June 2, 2013

Play with Pricebook & Products & Opportunity Objects

Play with Pricebook & Products & Opportunity Objects

There are 5 standard objects involved around it:
  • Pricebook
  • Product
  • PricebookEntry
  • Opportunity
  • Opportunity Product
Scenario without Multi-Currency enabled:
  • First you setup a Pricebook. If you have different prices based on customer type or deal then you would need to create custom Pricebooks (e.g. online tutoring, in-home tutoring, and school tutoring).
  • Second you would need to create a Product.
  • Third you would need to associate Product with the Pricebook. If you have only a standard Pricebook then you just need to associate it with the Product otherwise, you would need to associate with the custom Pricebook too. But in order to associate custom Pricebook you have to associate standard Pricebook with the Product first. This process create a PricebookEntry record.
  • Fourth you would need to create an Opportunity (Note: There is a field PricebookId on Opportunity that says this Opportunity has associated to whcih Pricebook?).
  • Fifth you would need to add Opportunity Products. First time when you add it will prompt you to choose the Pricebook (e.g. standard or custom Pricebooks will be shown in the picklist).
  • After that all the Products will be shown which are associated with the Pricebook which user has chosen already. After creating Opportunity Products, PricebookId field will be populated on Opportunity. Now going forward user will only add those Products which are associated with that Pricebook (Note: Opportunity can have only one PriceBook associated with it).
  • If in future user want to associate Opportunity with different Pricebook they need to click on the button "Choose Pricebook" (Note: it will delete all the previous Opportunity Product records.).
Note: You can not add 2 Products with different Pricebooks on the same Opportunity.

Scenario with Multi-Currency enabled:
  • Let's assume that your organization work on 2 currencies "USD" and "EUR".
  • First You setup standard and custom Pricebook in all currencies.
  • Second you would need to setup Products (Currency ISO on Product will not do anything so, you can remove from the page layout).
  • Third you would need to associate Product with the Pricebook.
  • Fourth you would need to create an Opportunity and select a Currency ISO field "USD" or "EUR" (Note: This will tell you that you will only Products which have been setup in that Currency ISO code).
  • Fifth you would need to add Opportunity Products.
Note: All currency amounts are displayed in the default currency of the record as well as in the personal currency of the user. When you change the default currency of a record, currency amounts are not converted; they simply display with the new currency code.