(WIP) Cdodge/shopping cart rewrite

I'm going to change because there could be a future OrderItem which is not course related