(WIP) Cdodge/shopping cart rewrite

make this consisten with `courseware/views.py` line 286