Vineet Sawant Posted June 13, 2013 Share Posted June 13, 2013 (edited) Hello All, as you all know by now, I'm working on a drama ticket booking site. By now, user registration, show management, theatres management & booking seat charts are ready. Now I want to add way for users to pay & get the ticket. But I'm not sure how I can do that. I've seen a few old posts about ecommerce with PW like using Foxycart etc. But I'm not clear how exactly will it work with a product like drama ticket which will just be in form of a seat number. Can someone help me with finding the right solution? I suppose probably digital content selling shop would be a possible solution for me. What you guys think? Thank you all in advance. EDIT: I will be confirming ticket inform an Email & SMS and might also provide a way to print ticket by providing it in a pdf form. Edited June 14, 2013 by Vineet Sawant Link to comment Share on other sites More sharing options...
Vineet Sawant Posted June 14, 2013 Author Share Posted June 14, 2013 Link to comment Share on other sites More sharing options...
apeisa Posted June 14, 2013 Share Posted June 14, 2013 I am pretty sure that when selling just seat numbers you can easily bend Foxycart for that. It could be downloadable PDF also? http://www.foxycart.com/features/feature/products/downloadable-products Link to comment Share on other sites More sharing options...
Vineet Sawant Posted June 14, 2013 Author Share Posted June 14, 2013 Hello apeisa, Thanks for your reply. It's going to be in form mail & SMS. But for printing it can also be pdf. I'm not sure how exactly foxycart integrates with PW as there's nothing to download, just configuration, I'll need to learn foxycart first I suppose. Thanks again. Link to comment Share on other sites More sharing options...
apeisa Posted June 14, 2013 Share Posted June 14, 2013 There are lot's of options for you, but I think all of them requires a custom coding (if you want to automate the process at all). It is pretty hard to help you at this point (no clear questions), but definitely when you have progressed a little you get lots of help from here. So I suggest as a first action try to draw more clear picture for us how you want the process to work. 1 Link to comment Share on other sites More sharing options...
Vineet Sawant Posted June 14, 2013 Author Share Posted June 14, 2013 Yes, you are correct, right now, I'm totally confused. I should first try to get clear picture myself of what I really want & how will it work. Thanks again 1 Link to comment Share on other sites More sharing options...
Macrura Posted June 15, 2013 Share Posted June 15, 2013 Hi Vineet - i recently did a site with FC so i might be able to provide some insights; since you can pass variables to the cart, all you would need to do is to pass the seat # as a variable to the cart and then users could check out; You can make custom receipt pages and that page would similarly be able to show the seat #s. You wouldn't need to make real tickets, the receipt could be the ticket. But if you needed to generate real PDF tickets say with QR codes or something like that, you would have to learn the foxycart API and then get the sales data back to PW to process the PDF generator, as well as remove sold inventory from stock. this might be a good thing to look at: http://wiki.foxycart.com/integration/modx/inventory 1 Link to comment Share on other sites More sharing options...
Vineet Sawant Posted June 15, 2013 Author Share Posted June 15, 2013 Hello Macrura, Thank you very much, it's very helpful. I was confused weather FoxyCart is the solution I need. Your explaination has made confident that only FoxyCart can do that. Thanks again. Link to comment Share on other sites More sharing options...
Macrura Posted June 15, 2013 Share Posted June 15, 2013 Hi Vineet - also you should be aware that foxycart is free to development, so you can just setup an account now and try it out and see if it will work. You don't pay until you want it to actually be able to run real transactions; The main problem i see with your setup is how do you remove sold seats; assuming you'll have to read the json response and then run a script to remove those seats from inventory; Some of the more advanced ticketing systems put a seat hold on seats as soon as they are added to the cart (in case 2 users try to add the same seats at the same time)..something like that might be necessary if you're selling actual seats; if you're doing GA, then this would be so much easier... 1 Link to comment Share on other sites More sharing options...
Vineet Sawant Posted June 15, 2013 Author Share Posted June 15, 2013 Hi Macrura, About maintaining the inventory, I'm still not sure that will be managed. Since I'm not a developer, my knowledge about all this is limited So right now I'm just focusing on getting tickets sold, then I'll be focusing on managing the inventory. But your reply has made me think about it and I must confess it's one of very important part of the system that I've totally neglected so far. So I will now also include it in all the thought process. About foxycart, I'm just starting to explore it's awesomeness. I've read that it's free for development but I'm not understanding how do I test it? Don't I need to activate it before I test it? And activation needs payment. So right now I'm just trying to figure this out. Also, I was thinking if I could just some even simpler solution like jCart? what would you suggest? I can't tell you how much I appreciate your help, I'm very grateful. Link to comment Share on other sites More sharing options...
Macrura Posted June 15, 2013 Share Posted June 15, 2013 Hi Vineet - i guess my main confusion would be about the seats - do users purchase a specific seat, can they select it, and if so, how do you prevent 2 users from selecting the same seat? As far as Foxycart goes, the pricing for the service itself is $15 per month, but depending on what sort of payment processor you use, there might be additional fees from that, for example, PayPal Payments Pro i think costs around $30 per month, and that's probably one of the cheaper payment processors they support. If you want a much simpler and less expensive option, jCart might work well, since it quickly and easily plugs into any site and supports regular PayPal payments; again the main caveat is how to you have interaction with PayPal and Processwire if you are trying to automate the ticket sales... The last site i did that involved theater ticketing used OvationTix, and as far as I know it worked well. I can't say i like the ovationtix system that much – while it is really powerful, the whole thing seems a bit antiquated; You might want to take a look at that anyway, i think it might give you some ideas, they have been around for a while and their system is really well proven as far as managing large theaters and productions. One of the key things it does is to allow users to pick their seats, it updates the chart based on what seats are sold, and also allows you to process point-of-sale transactions at the event... -marc 1 Link to comment Share on other sites More sharing options...
Vineet Sawant Posted June 16, 2013 Author Share Posted June 16, 2013 Hi Macrura, I will briefly try to explain how the system is working currently. Lets consider an example of Shakespeare's Macbeth playing in Broadway Theatre, NY. So, the admin side has 2 main pages, a dramas page & a theatres page. Dramas page will have Macbeth as child page & same for Broadway theatre which will be child of theatres page. Now when I've to add a show of Macbeth playing on 1st July, I will have to create a child page of Macbeth with template show. Show will ask for date & time of drama and the theatre it's playing in. Once published, the upcoming show will be displayed on Macbeth's page for users to see the available shows. I've already added theatre's seat chart (in the form of series of clickable spans working as individual seats) in Broadway's theatre page. When user clicks on book ticket, he/she's directly presented seat chart of the theatre, there user can choose as many seats they want and also can see in real time the seats that are booked(booked seats are greyed out/ disabled.). If two users are selecting same seats, the one whose payment process finishes earlier gets the seat, other will have to try again. Now that I understand this can be very frustrating for users who don't get seats, the client wants it this way so I can't help it but keep it the way it is. The reason I'm telling you the whole process is cause I'd like some expert opinion on the flow and may be you can see the problems I'm unable to see. I suppose the whole process will have impact on payment process as well. Your solution for ticket booking, OvationTrix looks very good. I wonderif it works with ProcessWire, I will check it. Thanks again. Sorry for the long post. Link to comment Share on other sites More sharing options...
Macrura Posted June 17, 2013 Share Posted June 17, 2013 (edited) Hi Vineet - I read up a bit on the XML datafeed that FoxyCart provides, and that feed is what is read/parsed to decrement the inventory in something like the ModX plugin that is related to FoxyCart inventory; you should be able to easily hire someone to adapt that for processwire, and then you would be able to automatically remove sold seats http://modx.com/extras/package/foxycartinventory i guess the main snafu, again, is how to you prevent 2 users from both purchasing the same seats? You might have to use session variables, for example maybe when someone adds seats to their shopping cart, the page redirects to a processwire template that can run a script that would place the seats in that person's cart on 'hold' (and prevent them from being added to another users cart), so you would have to have 3 status types for each seat, SOLD, AVAILABLE and HOLD; then after the person checks out, your XML datafeed parser would check the sold seats against the ones on hold and then change their status to SOLD; you would also have to have it so that the cart expires in some short time frame, otherwise what happens if someone adds seats to their cart, but never checks out - i'm not sure what the default cart expiration is for FoxyCart. The bad news about OvationTix is that it is a complete system, and already does all of the things you have spent your time making, like it has it's own seating charts, seat selector, and backend management of shows, showtimes, etc.. So i don't think you would really want to use it, unless you need something full featured and needed it really fast; With Ovation, one of the other issues is that you can't for example make your own seating chart – the OT admins have to make that for you... (i think you explain to them the seating layout of the space and they configure that from their end..) My recommendation would be to see what you're clients budget is for the shopping cart component and the payment processing, and if they can afford it, then go with Foxycart; maybe search the FC forum for info on unique items and how to prevent multiple users purchasing, as well as if anyone else has done theater or ticketing.. Edit: i gave this more thought, and came up with the idea of keeping the add to cart and all of the logic for your site within processwire, for example using apesia's shopping cart module. Then you could control more elements and style to the cart and any also execute any custom processing you would need within processwire; all you would have to do is to make some changes to the module to let the last step bring the user to the foxycart checkout. For example you could wrap the whole cart view in a form element and use the foxycart tags to achieve adding all of the products from the 'processwire cart' to the 'foxycart cart' and redirect to the checkout; Foxycart makes it easy to add multiple items to the cart at once.. <form action="http://YOURDOMAIN.foxycart.com/cart" class="foxycart" method="post"> <input type="hidden" name="name" value="Les Miserables" /> <input type="hidden" name="theater" value="Imperial Theater" /> <input type="hidden" name="datetime" value="06-05-2013 8:00PM" /> <input type="hidden" name="seatNo" value="Q13" /> <input type="hidden" name="2:name" value="Les Miserables" /> <input type="hidden" name="2:theater" value="Imperial Theater" /> <input type="hidden" name="2:datetime" value="06-05-2013 8:00PM" /> <input type="hidden" name="2:seatNo" value="Q14" /> <input type="hidden" name="cart" value="checkout" /> <input type="submit" value="Checkout" /> </form> Edited June 18, 2013 by Macrura 3 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now