Has anyone written custom code to limit tickets by performance on the web? Is it possible since it isn't included in the API?
Hi Gloria,
We do something like that. Our members are only allowed X number of discounted tickets per day (in the case of our general exhibits, that's one performance). To limit this on the web, we have a procedure that looks in the customer's order history, and if they've already purchased their limit of discounted tickets for that day, we don't let them add any more.
Ours is a per-date model, as opposed to per-performance, but I don't think it would be much of a stretch to apply the same idea to your situation. One thing you'd need to figure out is where would be the best place to store the limit value(s)? Some questions to consider in deciding this: Do different customers have different limits? Do different performances have different limits? Are there certain date ranges in which you want to limit? We limit based on membership level and venue, so we created a cross-reference table to link the values.
-Morgan
I don't have any code to share, but I think I know how it could work. There are a couple of ways to get there, but it is essentially the same idea.
You could create a keyword and apply it to specific performances that you want to limit tickets beyond the global limit in the config file. For instance:
Keyword 1: Custom Ticket Limit / 2Then, it would just be a matter of a bit of custom code on your 'number of seats' selection element on the web. Basically - if X performance has keyword = 'Custom Ticket Limit' then limit the number of tickets purchased to 2. You could add and remove the keywords and values at will and it would effectively be dynamically driven from Tessitura.
I haven't fully read up on the v9 enhancements / fixes, but the other way would be by using Offers for the particular mode of sale. There is a parameter named Limit. Orignally, I believe the Limit was to be a restriction on the total number of tickets that could be sold via this particular offer (ex: only 50 tickets at this price type / promo code) - but, the last I knew, there wasn't functionality in the API to increment the value and actually disable the offer once the limit is reached. But - the value IS returned via GetPerformanceDetailsWithDiscount and you could do something similar to the first example, however, instead of an overall limit (50) - put the per performance limit (2) and base your front end case statement on that.
Good luck!
Regarding Nathan's post, that could work, but there's nothing to keep someone from coming back to the website and purchase more tickets for the same performance.
Gloria, are you looking to limit the number of tickets per-performance globally, or just the number of tickets per-performance per-order?
That’s a good point – and really, depending on how it was coded, you could add the same performance multiple times to the same cart – so there would need to be some extra barriers / lookups worked in depending on how serious you are about it.
Nathan Campbell Systems Administrator Dallas Symphony Orchestra Morton H. Meyerson Symphony Center Schlegel Administrative Suites 2301 Flora Street Dallas, Texas 75201 214-871-4026 - phone 214-953-1218 - fax n.campbell@DalSym.com www.dallassymphony.com "To entertain, inspire and change lives through musical excellence" Click Here To Buy Tickets
From: Tessitura Technical Forum [mailto:forums-technical@tessituranetwork.com] On Behalf Of Morgan L'Argent Sent: Tuesday, September 08, 2009 2:52 PM To: Nathan Campbell Subject: Re: [Tessitura Technical Forum] Ticket Limits on the Web
From: Nathan Campbell <bounce-nathancampbell1231@tessituranetwork.com> Sent: 9/8/2009 2:27:46 PM
Keyword 1: Custom Ticket Limit / 2 Then, it would just be a matter of a bit of custom code on your 'number of seats' selection element on the web. Basically - if X performance has keyword = 'Custom Ticket Limit' then limit the number of tickets purchased to 2. You could add and remove the keywords and values at will and it would effectively be dynamically driven from Tessitura.
This message was sent automatically to you by www.tessituranetwork.com because you subscribed to the Tessitura Technical Forum. You may reply to this message to post to the Technical forum or visit the site to search, read and post to the forums. In the interest of keeping the forum posts from becoming cluttered, we encourage you to delete previous message text from your reply before sending. Thank you!
Good ideas.
Morgan, you're right. We need to limit the ticket per performance per order. I believe this is the new functionality in version 9 that allows you to limit tickets by the offers. But that functionality is not carried over to the API so I need a work around.
Gloria
Gloria, Like Morgan we also restrict tickets by membership type. We created a custom procedure that does the following:
1: Figures out how many tickets a particular member is allowed in total (based on membership level)
2. Checks perf_no and shows how many tickets already purchased.
3. Shows how many remaining tickets can be purchased at discount.
So, when you run execute local procedure through API, you send in customer_no and perf_no and what is returned is:
Allowed = 5, Redeemed = 3, Available = 2
By doing this, you can't fool the website by placing an order and then placing another one (used t have this problem, and smart members used to take advantage.)
Hope that helps.