Creating a 'booking' type form for retreats in Ubercart
What do you do with a tortoise stuck in its shell? You walk around it and occasionally poke at it with a stick which will either have one of two responses of either it'll stick it's head out or stay stuck.
This is my description of the problem of creating the right user experience / interface for creating a booking form.
- Need to enter retreats with the ability to 'book' or submit a deposit and register.
- Need guest to fill out a form answering questions the retreat centre needs to know about their history, preferences, etc.
- Need to be able to track and record all this information.
Keep in mind for this application Ubercard needs to look less like a "Shopping Cart" and more like a "Donation Box". It took me awhile to suss out what it was tht I needed.
Prime objective: create a content type that essentially integrates the exisitng fields found in my "Retreats" content type (includes calendar, sometimes repeating dates, linking to other content type like "teacher", associated images, etc) with the fields found in an Ubercart content type (in this case cost and that lovely "Add to Donation Cart" button).
Opening "Products" and "Retreats" and "add new content type" resulted in the forementioned "prodding a turtle with a stick". Not to be outdone, I did a search on drupal.org and found a lovely post started by Webchick explaining the concept of the Ubercart Class - prompting me to announce my love for her via twitter! It was literally a light bulb turning on in my head as I had wondered what these mysterious "product classes" were but was a bit afraid to 'read the manual'... (for those of you who don't know me, reading the manual is scor's job... I usually throw myself full tilt in trouble before I even look for a manual).
So now I'm doing the obvious - having created a content type magically by defining a new product class under the Ubercart Product menu - I can now add all of the pre-existing fields to mash up my desired "Ubercart Retreat" product which can in future be used to create retreats by the site admin!
That's item #1 on my list... stay tuned for how I solve #2!