The management of Producs, Quotes, Orders and Invoices in MSCRM is far too complex out of the box. I think Microsoft tries to solve too many rigid scenarios. Complex logistics belongs in the ERP system, not in CRM. For a customer who already has an ERP system, complex price calculations should be performed there. Thus the Price List handling in CRM is redundant, and trying to simulate the ERP pricing model in CRM is just too complicated.
The customers that we have been working with generally have two different approaches to quotes/orders/products:
1. Complex order processing with quantity discounts, different price lists for different types of customers, delivery rules etc. There are lots of orders, and focus is transaction volume. Manual work with each transaction is kept to a minimum.
2. Production of customized quotes/offers, usually involving manual work for each quote. Prices are maybe collected from suppliers for each new quote, and profit is added manually. Quotes should be easy to print or email and look nice, and often includes paragraphs of standard and custom text.
The first kind of order processing is typically done with a rich ERP client, while the second is perfect for CRM. However, MSCRM tries to hit both, but misses both targets.
What we need in CRM is a simple registration of quote/order head and lines. Customers who need richer functionality can add that by doing customizations. It shouldn’t be the other way around. Today all these entities need extensive customization to be usable for a simple purpose.
More specifically, these are some restrictions / complexity that we consider unnecessary:
• Unit Groups, Discount Lists and Price Lists are redundant or not necessary in most implementations. I realize a new version cannot remove these, but a default for each so that users don’t have to bother with them would be desirable.
• Attribute overflow: There are lots of attributes that are never used and causes confusion. For example, why would anyone need separate addresses for each order line? These address fields are also impossible to remove from the form. Ability to remove these fields is highly desirable.
• Fulfillment attributes are not relevant either. They belong in the ERP system. Customers who want this functionality could add it by customizing.
On the other hand, there is one thing that is obviously missing: Relationship between Quote Product and Order Product; and Order Product and Invoice Product. When I add a custom attribute like Cost Price to Quote Product, I would like this field to be copied to Order Product when the Quote is Fulfilled. This works OK for Quote (head) and Order (head), since there is a relationship between them, and I can add a new Mapping for the custom attributes. Copying data between Quote Product and Order Product on the other hand, requires custom coding today.