Cart-level promotions

Run dynamic promotions based on a cart-structure and auto-applied discounts