Price Books - Simple, but powerful Improvements

Price Books - Simple, but powerful Improvements

Hi everyone, 

so, I guess we all agree that Price Books (PB) are a very essential element of every good CRM.
Here are some of my ideas of how Price Books functionality could be immensely upgraded:

Bulk Apply Price Books

Probably the easiest and most straightforward of all. One button - One Price Book. No matter if it's a Quote/Sales or Purchase Order, most of the time it's one price book for the whole thing. Having to pick a PB for each single product is insane, especially when dealing with 20+ products.

List Price vs. Discount

A PB holds list prices for each product and a pricing model which applies discounts. Well, in many business, we do not want to advertise discounts, but rather just display the final unit price based on the order quantity and/or other parameters. We should be able to chose what we need for our individual use cases. For example, a simple check box could let us chose if we want our pricing model to be applied as a discount to the discount field (as it does now) or if it should just directly deduct the discount from the list price. This would be a huge improvement.

Applying a Price Book via Deluge

First, I thought this might be a big thing to ask, but after spending some time I found out that the infrastructure is already completely in place. The only problem seems to be, that the required variable ("book") in product details is not allowed to be populated by deluge at the moment. 

Example code to assign a price book to an invoice:
(added account lookup field to price book layout to relate)

  1. //Fetch Invoice Account
  2. v = zoho.crm.getRecordById("Invoices",vId);
  3. v_id = v.get("Account_Name").get("id");
  4. info "Invoice Account: " + v_id;
  5. //Fetch Related Price Book
  6. books = zoho.crm.getRecords("Price_Books");
  7. for each book in books
  8. {
  9. book_account = ifnull(book.get("Account"),"0");
  10. if (book_account != 0 && book_account.getJSON("id") == v_id)
  11. {
  12. related_book = book.get("id");
  13. }

  14. info "Related Book: " + related_book; 

  15. //Apply Price Book
  16. pdlist = List();
  17. pdet = v.get("Product_Details");

  18. for each prod in pdet
  19. {
  20.         mp = Map();
  21.         pbook = prod.get("book"); 
  22.         mp.put(pbook,related_book);

  23. update = zoho.crm.updateRecord("Invoices",vId.toLong(),mp);

We got everything we need already available:
  1. every Price Book has it's own ID
  2. every product under product_details holds a value "book" with said Price Book ID
  3. Adding a lookup field to the Price Book module enables association
  4. function executes successfully
Bottom line, my assumption is that it doesn't work because the data filed product_details.book can't be populated by deluge at the moment. So, all it would take to enable this hugely beneficial functionality for us, would be to give us the permission. Please enable this!


Best Regards,
Damon