4 replies [Last post]
sphism's picture
Offline
Bug Finder
Joined: 11/29/2007
Juice: 215
Was this information Helpful?

Hello everyone.

I've been using ubercart for a while now on 2 commercial projects and it's finally time to start work on my own site, yeaha.

It's a bit tricky tho and i'm not entirely sure how it's going to work, any advice will be very much appreciated.

I run a site dedicated to learning circus type skills. For the last 4 years I've been making video clip 'tutorials' and giving them away. This was great for a while, lots of happy people, active forums etc. But I just don't have the spare time these days to do it. Then i made a dvd and sold quite a few copies of it. The dvd took a year to produce (6 months part time, 6 months full time) and the return was probably a fifth what i would have earned if i'd not made it. But it was awesome, people loved it, great advertising etc etc. So it was totally worth while.

The main idea for the new site is to sell lessons. A lesson will consist of videos, text, images, audio files. There will be a large taxonomy of the content. To start with there are 4 teachers but that will increase. 1 lesson will be approximately something that would take 10 minutes to explain in person and will cost maybe 50 cents US.

The videos will be FLV format, people upload any video type and they get converted. I would prefer the content to be viewed online rather than download, altho downloading the videos, or at least caching the videos would be good for when users view the lesson more than once.

The user will need to be able to browse thru the categories, seeing a small sample of the content plus description teaser. I imagine that the payment will go thru to the site and then a the teacher will be paid maybe 65% of the cost.

Questions:
1) So what is the best way to set this up?
2) DO i want the ubercart product to be the full lesson node?
3) Is it better to make the product node just a quick preview to a separate node type?
4) Is there any way to PAY PER NODE using ubercart?
5) If the lesson is on multiple pages how does that work?
6) How can I split the money between the site and the teachers with minimal fuss?
7) Could I set up each teacher as an AFFILIATE who gets paid for each time their lessons get watched?
Cool What if I want to offer a group of 10 related lessons (a course) for a discounted price?
9) Since there's lot's of lessons for small prices i'd really like to sell credit to be redeemed in the shop, say you can buy $5 credit and then use it to buy lessons. Also you could earn credits like juice points.
...
..
.
Probably more but i can't think of anything right now.

Then once the payment side of things is set up I want to make a nice drupal module that offers 'guided tuition'. It will track what each person has learned and offer ideas of what to learn next. Also there's going to be so much content that we don't want noobs to get totally overwhelmed. So this will guide people thru what they want to learn. Any advice on that would be handy but not really anything to do with ubercart. Well i guess maybe it could be, maybe it would be a little like a 'people who bought this also liked this....' module.

Boom. It's so nice to finally be working on my own project again. And it's also great to have been working on 3 commercial drupal projects to get my skills up to scratch.

Thanks in advance for any advice,

matt

Ryan's picture
Offline
Joined: 08/07/2007
Juice: 15438
Re: Using ubercart to let teachers sell online lessons

I don't have a full list of answers for your questions, but I did have a quick thought to share... in order to control access, I think your best bet is going to be to tag all content related to a lesson with a specific taxonomy term. When someone purchases a lesson, give them access to view items of that term. TAC Lite does something like this, but it would require an individual user role for each lesson... not recommended. That would get cumbersome to setup and administer very fast. I'd look into making a custom node access module that simply granted a user the right to view items of a particular taxonomy term. Integrate this with the Ubercart checkout somehow, and you're golden! I'm not sure if anything like this already exists, but it should. Eye-wink

sphism's picture
Offline
Bug Finder
Joined: 11/29/2007
Juice: 215
Thanks for that ryan. I've

Thanks for that ryan.

I've made some progress with the site but I'm a little disappointed with how it's shaping up.

I got the functionality I need by using:

TAC_Lite ~ for granting access to a particular taxonomy term, in my case each Course of lessons.
Ubercart Roles ~ apply the role feature to a Course product to unlock it.

Cumbersome to setup and not ideal. Then i found:

Taxorole ~ This is a clever little module that saves a bit of the hastle by automatically generating a role each time you make new taxonomy term. It should also setup TAC_lite by linking the term to the role. But this doesn't seem to work right.

Still it's a very random setup to do something fairly easy, buy access to a node, or group of nodes.

I also played with:

ACL and Content Access as an alternative to TAC_lite. I like the look of this solution and I'm wondering if it's worth making a ubercart Feature which adds a user to the node access list for a particular node.

Does anyone know how the node_access table works in drupal? It seems a bit random.

I figure I could probably take a look at how the ubercart_roles module works and hack it up to make an ubercart_node module??? Can anyone give me any pointers? Like ageneral overview of what would need doing.

Also is anyone working on anything similar?

What would be ideal I think is if the product node IS the node that you are buying. A user gets to see the teaser of that node only, then when they buy it they get to see the full node.

Currently I have a product node that allows access to a separate node.

I did find an old module called Premium i think, that allows teaser view of a node, then you have to pay to see the whole node.

It would also be nice if I could get rid of lots of the checkout process since i don't need to know address and so on. I'd like to just have it so you view a teaser, click a button to view it, it says it will deduct X amount from your credit, you agree and view the node.

Well that's a random list of thoughts, i'm super tired today, been out juggling in a park all day Smiling

Laters,

matt

artatac's picture
Offline
Joined: 06/11/2009
Juice: 79
Dear Matt I am also working

Dear Matt

I am also working on this and wondered what your final solution was?

Regards

joe

gmarton's picture
Offline
Joined: 05/09/2009
Juice: 28
ubercart+signups=sell classes

I have done this with integrating the signup module, and created separate content type for each type of class.
Basically signup page will do a count of how many classes were purchased and how many signups there are.
Purchases - Signups = remaining classes
if remaining classes is 0 then display the 'buy a class' button else let them sign up.

This was the best way I could think of doing it.
I use the SKU to count purchases and node.type to count signups.

Here is how I count purchases:

$zumba_purchased = db_result(db_query("SELECT SUM(op.qty) AS classes_purchased FROM {uc_orders} AS o
LEFT JOIN {uc_order_products} AS op ON o.order_id = op.order_id
LEFT JOIN {uc_products} AS p ON op.nid = p.nid
where (o.order_status = 'completed' OR o.order_status = 'payment_received') AND p.model = '1-ZUMBA' AND o.uid = %s", $user->uid));

and sigups

$zumba_signups = db_result(db_query("SELECT COUNT(*) FROM {signup_log} AS s
LEFT JOIN {node} AS n ON s.nid = n.nid
WHERE n.type = 'zumba' AND s.uid = %s", $user->uid));

Currently being used here: http://www.cheekyfitness.com

"It's not what you know. It's what you know when you don't know"
http://www.633a.com | http://www.CheekyFitness.com