eCommerce enhancements

I think this `delete` has to be conditionalized more.  Only if the item being deleted is an `OrderItem` that has the same `course_id` as the Coupon should this CouponRedemption be deleted.