We improved how the shopping cart checks shop items before payment.
- Discounts marked as one per customer are now applied to shop items the same way they already were for passes: the quantity is limited to 1, and a cart with more than one is flagged with "One time use only".
- If an expired coupon is replaced by an automatic discount, the replacement discount's limits are now taken into account before the quantity is checked.
- Guest carts (checkout without signing in) are now fully re-checked at the moment of payment, so out-of-stock or otherwise invalid items are caught instead of slipping through.
- When a cart contains several of the same shop item across carts, stock availability is now calculated correctly for each item instead of reusing the first result.
- Items in a category that does not track stock are no longer treated as sold out.