13 replies [Last post]
thill's picture
Offline
Joined: 01/25/2008
Juice: 809

Hey Uberworld,

We are going to be building a module to add a date attribute with stock support.

I am wondering what the community need is for this module. We are open to input and sponsorship as always.

This module will help people selling recurring events, for example a tour that runs once a day five days a week.
This way when there is a product called tour X the customer can select what date to attend.

Each date will have a stock level just like a normal attribute. This way if the tour maximum is 50 people then that date will become unavailable for people to select when the stock has reached 0. We would also like to to make this available to uc_node_checkout just like any attribute so that registration for an event that happens every day would work as well.

The module will need options for every product it is associated with. For example, tour X might only be available M, W, F while tour Y is available T, TH. Ideally a option to select available days of the week for each product would be best. The other part of the equation is tours that run more than once per day, like a AM or PM The time would be a separate attribute but would tie into the date to keep track of default stock per item.

The product/date option would also need a beginning and an end so that daily events running for 2-3 months would not have dates available 6 months from the current date.

This will work with the date pop-up module to make it a good UI. Making dates un-selectable by stock level, along with dealing with a group of four when two spots are open will be two more difficult items perhaps.

Any input for making this module more community friendly would be appreciated, what other needs can be solved with a date attribute?

Thanks

nadavoid's picture
Offline
Joined: 11/13/2007
Juice: 63
Concerts, public events

I could see this type of module being used for concerts or performances. In my local symphony, they perform the same concert twice: Friday, then Saturday. There are 9 sets of these throughout the year. Then Nutcracker is performed 5 times each December. And a local theater often performs the same show 11 or 12 times: Thu, Fri, Sat. Then Thu, Fri, Sat, Sun matinee. (not necessarily always the same set of 4 days, or identical times.)

For all of these scenarios, it would be nice to be able to enter the concert once, enter the dates/times it will be performed, and as a result have it appear on a calendar at those dates/times.

Glad you looking at creating this type of a module!

thill's picture
Offline
Joined: 01/25/2008
Juice: 809
Re: Concerts, public events

I totally agree with what you are saying and fully understand. How would the UI be setup for that though? For example say we have the calendar pop-up the current month, and if there are no events that month the user couldn't select a date, would it be fine for them to have to switch months until they found an available date?

I am also seeing a need for this for a movie theater, or other ongoing items where you need date as an attribute.

My thought is there would be a fine line where a drop down would be better than a calendar, for example it your event only happens 10 times a year wouldn't a select box be easier than flipping through 12 months looking for a date?

nadavoid's picture
Offline
Joined: 11/13/2007
Juice: 63
Re: Re: Concerts, public events

My comments regarding concerts and performances are mainly to give you more of a picture of how some people would be using this module. As far as implementation and user interface, that will take more thought. I'll go ahead and give you my initial, not even half-baked thoughts regarding data, interface, and usage. This is most likely a much more specific use case than what you have in mind, but it is one use case nonetheless. I hope it helps you as you consider how to develop your module.

-- admin and data --
I guess defining some terms is important here. For the sake of clarity and discussion, I'll set the following definitions. Please feel free to change them though!

Event (or performance): Single thing that has one start time and one end time.

Concert (or play): A single set of repertoire to be performed. May be repeated.

Most Concerts are short-term, lasting not more than a month.

A concert would have a title such as "East Meets West" (a concert) or "Cinderella" (a play).

It would have a series of dates when it would be performed. The longest running show I can think of might span a couple of months at the most. (I suppose longer for Broadway shows, but that's not where I'd be using this.)

It would have description and maybe other CCK fields.

-- end user interface --
The first thing the end user would see is a month-view of a calendar. It would default to either the current month, or the soonest month that has an event scheduled.

If "East Meets West" is scheduled for this coming Friday and Saturday, as well as the following Friday and Saturday, the title "East Meets West" would show up 4 times: once on each day it will be occurring. However, "East Meets West" is just one node in the system. (at least the way I'm envisioning it.) Maybe it would work better if each purchasable event is a separate node. Not sure about that.

User clicks on an event, which takes the user to the detail page. (If one node with multiple dates, then the date should be selected automatically.) There they can add (ticket(s)) to cart.

A sensible alternative to that interface would be to see the Concert, then select the Event from a dropdown.

OK, so these are just some thoughts, and they obviously need some refining. Please don't take this as an actual request. It's not. I've had some thoughts about this type of thing, based on a conversation I had with one of my clients a month or two ago, but I do not currently have a pressing need. So I'm only sharing my thoughts, and I hope that these are helpful to you as you plan your module.

GreyHawk's picture
Offline
Joined: 03/17/2009
Juice: 174
We could really use this.

I sent an email through your contact list, but wanted to reiterate here: my consulting partner and I could really use this. Is it already in development? Need any testers?

We were looking to find or devise some type of workaround or alternative, but this would be perfect.

Please let us know if you're going forward with it or have something that we could try out.

echo's picture
Offline
Joined: 08/05/2009
Juice: 31
Very interested

I have a new project that would use this, that I've already set up with uc_node_checkout. A few different single day trainings are offered, and repeated on specific dates (each span specific hours on a single day). I was just exploring how to do this with attribute options, so only the dates and sku are unique. Calendar grid included, but not primary interface for end user for choosing a training. One idea is if the sku can be auto generated via token support, and use date, then view of registration lists could easily be grouped into identifiable trainings. I very much want to know the status of this module.

eddowding's picture
Offline
Joined: 07/07/2009
Juice: 2
+1

Hi Thill

Did you get anywhere with this development? I'd be interested to hear since we're doing the same thing.

cYu
cYu's picture
Offline
Bug FinderGetting busy with the Ubercode.
Joined: 11/19/2007
Juice: 850
Re: +1

I'm also wondering if this is around in any form anywhere. My basic case is a company providing boat tours, 7 days a week, 6 spots per day, probably limiting booking to 2-3 months in advance, maybe an AM and PM option, probably config for exceptions such as holidays, with admin input for marking spots as booked (if reservations and payment are done outside of site).

At first I thought I'd use attribute and stock modules as a base, but now I'm thinking it would make more sense to write a module with some admin config pages and then use uc hooks for the logic along with some form_alters. Sticking with core modules would be ideal, but the idea of having every possible date as an option along with unique skus and stock counts seems unwieldy.

DMSWebDesign's picture
Offline
Joined: 03/03/2010
Juice: 14
Date Selection Module

Hello Thill, did you get anywhere with this concept. I need exactly this for a project that I am working on now. I need to show a selections of available dates for an instructional course, and allow one of the avail. dates to be selected at time of course sign-up. I have a short turnaround on this. Please let me know soonest if you have a module available.
thanks.

Nicole Bluto's picture
Offline
Joined: 04/11/2010
Juice: 23
Also looking for something like this

I would also be interested in how you solved this problem.

jsnider's picture
Offline
Joined: 04/14/2010
Juice: 13
Re: Date as product attribute - input?

Hi Thill. This sounds like a great module, exactly what I am looking for (selling movie tickets). Any updates you can share?

Gardenside's picture
Offline
Joined: 03/24/2010
Juice: 18
The artist group I'm workign with could use this

I'd like to have one product where the user simply checks off the dates they want to reserve. I would like to be able to restrict the available date selections to certain days of the week and to be able to make exceptions for certain special occasion days.

For the time-being I've created separate products for each available day, which is a bit tedious. Luckily t it is only weekend days for now, but there are 104 of them in a year. For a workaround I may try massaging my data in Excel, putting the products into a csv file and importing directly through phpMySql instead of going through the drupal create content interface .

I looked at the hotel booking module and it wasn't quite what I needed. I was hopeful about the Drupal Event module until I realized that it doesn't work with Drupal 6

This is for an artist group that displays work in a public venue. The site in question (don't laugh - it still needs lots of work - I'm halfway switched over from a WordPress site) is http://artvallejo.org .

Thanks!

PS: but could that work with stock, which is needed on each product to track space availability?

Gardenside Studio

majnoona@drupal.org's picture
Offline
Joined: 07/02/2009
Juice: 90
subscribing

This is a great idea-- top of the results when I searched for "ubercart date attribute" Eye-wink

I'm happy to test/contribute to any code you'd like to put out-- I'd much rather build on what you have than duplicate effort!

thanks

leonk's picture
Offline
Joined: 01/15/2010
Juice: 128
Re: Date as product attribute - input?

It's been a while now so I take it this module idea has been dropped. If you have any code it would be helpful to others if we could see it.

I'm in a similar situation as many others here, I'm setting up a website for a theater and they want to allow tickets for shows with certain dates. All that's required on the front-end is a drop-down list of available dates. A date attribute does sound like the obvious answer.
However, I guess where it becomes tricky is the current setup of the attribute module gets you to insert each option manually.
The way I see it, it should be more like a date cck field (that you could set to have unlimited values in cck). And each new date added would become an attribute.

Thinking of it like like this (using a cck field), makes me think it could be done simply by node types....
So you'd create an event, which itself wouldn't be a product. But you would then have a 'date' node type, that is a product. This would just have one field (a date cck) field, which you could associate to the event node using node reference. There are many modules that allow the creation/editing of reference nodes quite easily (node relationships is one that comes to mind). You could also use the auto node title module to give the date node type the name of the event (with perhaps the date added on).

Then using views you could display the dates with the event all in one. Might need a bit of coding for the order selection and add to cart button. But I don't think it would be too much. An essentially you would have each date as it's own product with a separate SKU and stock levels.

Another alternative could be using the uc_node_checkout module, which I have yet to explore. But from what I understand it would involve creating a content type for each event, which does not seem suitable (as all my events will have the same fields). I also can't see how it could manage stock levels for dates.

Any thoughts from anyone on my solution (using a "date" node type and referencing the event)?