The use case: conference gets sponsorship, sponsorship deal includes n tickets of a product. Sales of this product have a physical size limit, so we reduce the limit by n to put aside the tickets. Unfortunately there's no sane way to buy a ticket once the limit has been reached, so we had to resort to created a new product that was not in the limit.
Ideally, we wouldn't have to lower the limit at all, but maybe the limit could have a reserved portion that is activated by the voucher? Thus all parts of the ticketing system would be modelled in the system, and if someone tried to create a voucher that reserved ten tickets, and there were less than ten tickets available, that would fail.
The use case: conference gets sponsorship, sponsorship deal includes n tickets of a product. Sales of this product have a physical size limit, so we reduce the limit by n to put aside the tickets. Unfortunately there's no sane way to buy a ticket once the limit has been reached, so we had to resort to created a new product that was not in the limit.
Ideally, we wouldn't have to lower the limit at all, but maybe the limit could have a reserved portion that is activated by the voucher? Thus all parts of the ticketing system would be modelled in the system, and if someone tried to create a voucher that reserved ten tickets, and there were less than ten tickets available, that would fail.