Restricting add to cart

Probably a simple question…

Customer has a special root category and a number of sub-categories within it.

They want the products and prices to be visible to all users (registered or not).

But they do NOT want anyone not a member of a specific usergroup to be able to add the products within these categories to their cart (but able to add products in all other categories). I.e. only registered users can add the product in these specific categories to their cart.

How is this best accomplished?

I had thought about making the price zero and setting the zero price action to NOT allow add to cart. And then going into Qty discounts and setting the price there for quantity 1 for the desired group associated with the user. (seems like an obscure way)

Is there an easier way?

Again, products should be visible to all but want to restrict ability to add to cart when not in a specific usergroup. I have not yet plowed through the code to see how the add to cart button can be restricted.

Anyone done something similar?

In content.tpl do something like:

{if !$auth.user_id && ($category_data.category_id == "26" || $category_data.category_id == "20")}
{include file="categories_pages/categories_nobutton.tpl"}
{include file="categories_pages/categories.tpl"}

Then create a template with the add to cart button removed (or commented out).

Do the same for the product pages

I was hoping there was something that could be done in the Admin area (I.e. configurable) so that it could be administered by a non-developer type person. Unfortunately there are about 20 sub-categories in this structure so doing {if $category.category_id == ‘1’ || $category_.category_id == ‘2’…} is not reasonable.

Did you ever figure out a good way to accomplish this?

Don't remember… But I'd think that having an 'unregistered' usergroup having a price of zero would accomplish what the customer wanted… But not sure if a zero price in the quantity discount table is ignored or not… But you could experiment with one product to see what happens.

This was from a couple of years ago and many things have changed since then.