Support free products

I want to have free products in my cart to help bundle a purchase together for customers. empty() will return false for `int` 0, so this needs to use `! isset()` instead.