Users can buy access to individual pages. Possible with Drupal?
Hi. I've been browsing documentation for an hour and don't seem to be getting anywhere, so I was wondering if someone here might be able to help me out. It would be greatly appreciated. Basically, I'm looking to create a site and want to check Drupal can handle it before diving in. The site will look something like this:
It is composed of a number of pages with various multimedia content on them. If a user wants to view a page, they must purchase access to it. Once they have done so, they can access it whenever they want. Users can buy access to multiple pages and this must be remembered so they can go to a 'My Account' page and jump to any of the pages they have bought.
It sounds simple enough, but I'm yet to find a module that appears to offer it. Any subscription modules seem to only offer the ability to give access to a range of content. They do this by upgrading a users role (and hence access) when they purchase the subscription. This would be highly impractical for me as it would require creating a different role for each page as I want page-by-page access.
Does anyone know if there is a module / combination of modules that would allow this?
I hope I've been clear.
Regards,
Peter

Of course it's possible...
Of course it's possible... It just sounds ridiculous doing it that way? Is it absolutely necessary to do it 'by node'? Why not by taxonomy term? You could use either http://drupal.org/project/taxonomy_access or http://drupal.org/project/tac_lite and have a user buy term access through it?
Pobster
It IS absolutely necessary to do it 'by node'.
Each node will be a unique item that users buy access to. They will always be buying access to one at a time. Your suggestions would require me to create a taxonomy term for each node. I guess this would not be so bad if I could hook the creation of a node to create a taxonomy term. Would that be feasible?
Cheers
Peter
I'm looking to do something very similar...
.. and not finding quite the right combination of modules to achieve it. I need every node to be a unique product that users purchase access to, it is then removed from 'sale', although the purchaser can acces it at any time, ideally via a 'my purchased nodes' page in their profile.
so far, my best solution is to sell a one-off file download in ubercart with the complete node in it, that is attaches to the node which has only limited info shown (i am basically selling business leads, want to show the relevant info but with the critical contact details only viewable on purchase).
selling full node access would be much preferable as re-typing out all the info (form a very large cck type)+ the extra contact info into a .txt file or whatever to attach to the node is cumbersome. this seems like somthing that drupal should handle easily but i'm just not making any headway right now...
the maintainer of cck field permissions suggested backporting code from d6 to d5 which might be a solution but i'm not really adept at coding and not even sure if its the right solution.
it might help you though, good luck with this
http://drupal.org/node/256617
Yep.. Need something similar.
I have been trying to do something very similar now for months. I need users to be able to browse node teasers and then purchase a node to be able to access further information located in the node. Node is not removed from pool and all "purchasers" of that node can refer back to at any time by accessing a view (My Purchases).
I have tried roles but this wont work as above because every node needs a unique role. Also Taxonomy wont work as every node needs to be unique.
The best I am thinking is a file download using ubercart or eCommerce.
The problem now is how to do this seamlessly.
What would be great is that a node is created and a file is automatically attached to it that includes all the information in the node. The node is displayed with only certain fields visable (easy enough). Once the node is purchased, it is treated as a file download and the attachment is made available for download that now reveals the information needed.
To compound my problem, I need a commision paid to the creator of the node. This is coming in ecommerce's next major version.. So I hear.
Any suggestions, collaboration, greatly appreciated.
Stuck with Ubercart and file downloads
Wish I could help you more, but I never really did advance beyond my original solution which has just gone live.
- I have created a single 'Product' in Ubercart, to which I added CCK fields. So I begin by creating content 'Product' type. (although it's actually called 'Appointment' as I'm selling business appointments)
- I use the file attachment to upload a .txt file (which contains the extra fields - essentially the most valuable info which buyers are paying for the right to access) into my (private) file system
- On submission of the node, i have the usual option to 'Edit' the node I've just created. I then have to associate the file I uploaded as a download for sale with this node on a 'Features' page.
- And then, set the stock level as '1', and stock tracking as active, using the Simple Stock Levels contrib module in Ubercart (essential as I only want to sell each download once - they are business appointments that have been generated with members of the public by my employers.)
It's a bit clunky, means typing several fields out twice (on the cck node in Drupal and in the .txt file) and is far from ideal, but at least it works (finally).
I don't know about ecommerce but the Ubercart forum guys have been Uberhelpful, and even as a non coder I have been able to remove bits and bend Uber a little to my needs. Not easy, but at least possible. So I can only say Ubercart is definitely worth trying from the commerce angle. Regarding the commission element you seek, well, good luck!
Sorry I can't help more, if anything else does come to me about your project, I'll let you know.
Solution...
Hi. I found a way to do this. Actually several ways..
Required Modules using eCommerce.
Nodeproduct
CCK
VIews
Signup
Signup eCommerce integration
1)First use CCK to create a content type called "Business Contact"
2)Delete the main body field by deleting the header.
3) Create new field for "Description of Contact" or "Industry" or whatever vague description you want the user to see.
3.5) Add another field with the contact information you want the user to pay for for example "Phone Number".
4) install nodeproduct and make the "Buisness Contact" a product for eCommerce.
4.5) Install Signup and Signup eCommerce integration.
4.75) Check off the options to sign up the user when they purchase the product.
5) Create a view that filters all "buisness contacts" and then make the view a listview or table view.
6) Use Fields to include Node:Title, field_description etc (and all other fields you don't mind the user seeing without paying.) and also include the field for "add to cart"
Now, this is your main browsing view and you can do more to it to make it sortable etc. It lists all your nodes with only the fields you want visable.
When a user peruses this view and sees a lead he wants, he clicks the "add to cart button" which "signs him up" for the node.. The user then can go to his account and see a list of all nodes he signed up for AND at that time can see all the fields on the node such as "phone Number"
Some tweaking to the text in the module will be needed to make it look more professional but it does exactly what you need.
Another way to do it using no ecommerce is to use Signup pay module instead of ecommerce but I have not gone that route.
Good Luck!
6)
will try this next time thanks!
Hi
Guess if I had looked properly at using eCommerce module instead of Ubercart I might have come across this option, but would have taken me sooooo much more time to work all this out- thanks for your considered explanation of your method.
I think I might have another site or two coming up with this requirement so I'll definitely try going this route.
Thanks again for posting your findings!
Cheers
Anyone still looking for a
Anyone still looking for a solution, i made a little module that uses userpoints for doing this.
Eventually you can sell userpoints with http://drupal.org/project/userpoints_ubercart
You can fnd the node access selling module at http://drupal.org/project/userpoints_nodeaccess
It is for drupal 6 tho