Today that requires either one listing that hides two of the products, or three listings each with a quantity of 4. The second option means the system will happily accept 12 bookings for the same day against 4 boats.
Current workaround
We had to abandon Rentals entirely and rebuild the flow using service calendars with an equipment pool, which loses the deposits, variants, and multi-item checkout that Rentals was built for.
What we need
A shared inventory object that multiple listings can reference, so availability decrements from one pool no matter which listing the booking came through. Something like:
1. Create an inventory pool (example: “Pontoon Fleet”, quantity 4)
2. Attach any number of listings to that pool
3. A booking on any attached listing reduces availability for all of them
Variant level duration and booking settings would solve part of this too, but only if variants can carry different pricing, durations, and rules. Right now they cannot, which is why the pool approach is cleaner.