Limited access to 'Edit' Commerce Order & limit line items to only 1 type With further to my earlier question regarding Services for Products, I have implemented as per the suggestions:

Following are the components:


Orders
Service Vendors - The individual or the Person who would provide service for an order request
Rating and Review - Fivestar rating and Editable text field added as fields for Commerce Order.


I am facing the following problems:


In order for user to rate and provide a review on the order I would have to expose the Order as editable for authenticated user which would let the user to edit all other order attributes. The fivestar rating module, allows rating the star without edit privilege but the review - (editable textfield) requires edit privileges on Order entity for the user. I have tried to use Field Permissions to limit edit access only to these 2 fields but with no success!
I am providing Voting and Review operations on Order because the Line items can be configured only in "Add to cart" form. Hence, I would have to limit a single order to contain only 1 line item type (which can contain multiple products / services of the same type). How can I achieve this?
As against the accepted answer here I am planning to create an order request when user needs it and then later update the price (also quantity in line item) after the service quotation actually takes place. Is there a way to edit the order to accommodate this functionality?


PS: I would need the rating module to be applied on Order (or Line item) because unlike regular E-Commerce this does not deal with product, it is service oriented. There is a possibility that different vendors can provide service for each order of same type, hence I will have to associate the rating and review system with either Order or Line Item and then pick up the average rating of a particular vendor who has serviced different orders in the past.

Also, if there are any better ways of achieving the same kindly let me know.
While it is possible for you to add those fields to the order, you should really create a new review content type and then use those for your reviews and then use an entity reference to connect the review content to the order. In the future, if you did want to allow line items to have reviews, you could then just add another entity reference field to the line items and you can reuse all of the UX you've built for the main review form for anywhere else.

Furthermore, by using a reference, you're not limiting yourself to a particular type of form. If you ever wanted to differentiate between certain types of services and provide different review criteria, you can much more easily do that with new content types + entity reference.

Brief overview of steps:


Create a new review content type with your fields and fivestar info.
Create an entity reference field on your Order. I believe you can use Entity connect to have it show a "create link" if no reference exists.
If that doesn't work, you can use Views to make it so that a user can only connect the entityreference field to orders that they own.