Development Team:
I have written a routine that re-calculates the cart (for member pricing/price class pricing). I'll be glad to send the code if you want it.
The Problem:
User is a member of a role that gets member pricing. They add items to their cart, go to their cart, and realize that they are not getting their member pricing because they have not logged on. They log on, but the cart is using the pre-login prices for items already added to the cart. User has to delete and re-add items to the cart to get their member pricing.
My solution:
It calls a Page_Prerender event that looks to see if the user has logged on/off (by the UserAuthenticated method) and re-calculates the prices of all the items in the cart accordingly, based on the role (if member pricing is active) or price class (if member pricing is not activated). I had to do this in a pre-render event because dynamically changing the dataset for the cart as the page is loading caused all kinds of explosions with IIS thinking that the dataset was being hacked, so the page_PreRender event loads all the data tables, then makes the changes to the gridview before it's rendered out to the user's browser. (It took me a while to figure that one out. ;) )