Postby jefffischer » Thu Apr 19, 2012 11:06 am
In your case, if you have a pre-configured list of features that you would like to have on an item (presumably a merchandiser would be in control of this via the admin tool?), I would probably create an extension of the Broadleaf ProductSkuImpl entity and add a custom list to your implementation. This custom list would be populated with "product feature" objects, which is another custom entity in your domain. These would be the default features for your product. Then, at the point the product is converted into an OrderItem, you would have custom code in an OrderService extension that takes the default list of features and populates a similar list on your own OrderItem extension. This is now an OrderItem in the cart with a list of features associated with it. The customer, at this point, would be free to add or take away from this list on the order item, since the OrderItem instance belongs to their cart. In your OrderItem extension, you would also need to override the getter methods for pricing to make sure your modifiers were included in the price for the order item.
This type of approach is on our feature roadmap for an upcoming release, but you can achieve the result right now using custom extension like that described above.