Apply seat/unit min-max lock per-product on mixed checkout links
Author: stilla[bot]Created Aug 20, 2026Updated Aug 20, 2026
Checkout links currently only allow a seat/unit lock (min == max) when all linked products are seat- or unit-based, per this discussion. This is stricter than necessary.
Instead, a checkout link with a mix of seat/unit and non-seat/unit products should apply the min/max lock when a seat/unit product is selected at checkout, and clear it when a non-seat/unit product is selected.
Applies to both _seats_valid_for_products and the new unit-based equivalent in server/polar/checkout_link/service.py.
Sent by @frankie567 from PR #13871 dedicated issue creation.
Source: polarsource/polar