A simple change to the Prices admin page allows entry of zero as a price, and this allows a zero price to appear on the Box Office, and to be added to the Shopping Trolley etc. So on the face of it, this simple modification does the job but there are a couple of complications.
A price value of zero is currently used as the default when a new price is added to a performance. This now becomes a valid price and would immediately be listed on the Box Office page. I’ve modified the code to define a new value representing “Unknown Price” which becomes the default for new pricesand will show as a blank price on the admin page. This forces entry of a valid price when the prices are saved.
For normal sales StageShow captures client contact information from PayPal, and for this to happen there must be a sale. As a consequence the Shopping Trolley total value must be non-zero, and therefore “sale” of any free ticket must be combined with a paid for ticket. A mod to the plugin code now checks that the total sale value is non-zero at checkout.
The option to “Reserve” tickets already exists in StageShow+ and this could be used for entirely free shows. This requires clients to log in, and gets their contact details from their user profile.
When StageShow is in PayPal checkout mode, the client can adjust the quantities of each ticket, and even delete selected tickets. This would allow them to have a Shopping Trolley with only free tickets, which would then be rejected by PayPal (and almost certainly cause confusion!). For this reason I’ve disabled the option for zero priced tickets if the PayPal Checkout mode is selected.
These mods will be in the next release of both StageShow and StageShow+