Thanks in advance for your help. I’m completely stumped on how I can do this.
Here is my issue.
I have a node type show;
Each show has a number of performance dates and times.
When the user clicks “purchase tickets” from a show’s page, I need to show them a single page, where the following happens:
The top of the page has a calendar that has dates and times available for this show highlighted. The user can then pick a date and time for this show that he wants to see. He can pick multiple dates and times.
Once he picks and date and time, I add them to a “cart” using ajax. The user can then enter the number of tickets that he wants for each performance.
Finally, on the bottom of the page he enters his checkout information (name, address, credit card etc) and is then pointed to a confirmation page. This is not done by ajax. Finally he authorizes the transaction and check out. (I’m using UberCart, but nothing else tied in, so I can switch if needed).
This is driving me nuts. I have no idea how to pull this off. Not even where to get started. Can someone please help?
What you want to do, is going to be quite hard and wont work well with ubercart, since you want to make a single add to cart and checkout page.
Ubercart will by default allow users to add items to their cart, and would also by default create a checkout flow, but you want something complete different than what ubercart offers. You might want to rethink your approach and either choose a flow that works better with ubercart or choose a different solution that by default works better with what you want (if there is such a thing).
What you can do
To do what you describe, you would need to create a custom page, that shows the calendar with the shows, some javascript to hand the ajax and a checkout form.
Behind the scenes you need to generate the calendar with the appropriate days (the date module might help you), respond to the ajax requests and add items to the basket, handle the checkout flow/order status and redirect to payment form or handle payment as well.
All of this would need to happen in a custom module, you would need to use hook_menu to create the page, that would take the product node as argument. You can use that in your callback function to generate the calendar. You would also need to create a callback for the ajax and add the actual javascript to do all the magic.