Welcome to Magento Skool.
** ** Just reread you post after having written all of what follows, and it all still applies. However, in your case you will simply create your catalogs and make them “Is Active” = No for the main website and Yes for the “limiting” website. Read below to understand what I just said. Actually, if there were simply a “Must Be Logged In To View Catalog” setting on the Store admin page then you’d be set. But this is not the case. ** **
Currently, as far as I know, Customer Groups is not used to limit access to sites, stores, or categories, but functions more for putting customers in pricing categories. Quick limiting of a customer group to a category would be great timesaving feature. Instead, It appears that each customer account must be assigned to a website when the customer account is CREATED.
I have the solution for you using the current Magento functionality, but it appears to be a bit buggy at the moment, unfortunately. I’ll explain in a bit.
Perhaps you can give it a try to see if you can have better luck.
1) Currently, you’ll have to set up a second entry point for these members which involves setting up a second website. Don’t panic! It’ doesn’t have to be wholely separate website. A subfolder of your main website will do, but it MUST be set up as a “website” as apposed to a store or store view beneath your Main Website. This is due to the fact that customer members are assigned to websites, not stores or store views. Perform the functions in the following link to create a second website/store:
2) Test that you have correctly created you new store view by going to http://www.your_website_name/limited_store_name. If you receive a 404 error then revisit step 1.
3) Limit the categories in that store. Assuming that you have already created the category which you want the particular set of customers to be limited to, from the admin page do the following:
a) Catalog->Manage Categories
b) Select the store view that you just created in step 1 with the pull down at the upper-left
c) For EACH category that you DO NOT want displayed for the selected store view
i. Scroll down to “Is Active”, uncheck “Use Default Value”, set the dropdown value to “No”
ii. Click “Save Category” at the upper-right.
d) Test that all is correct so far by viewing http://www.your_website_name.com/limited_store_name and you should see that only the IS ACTIVE categories are available in your catalog menus. If not, revisit the steps above.
4) Back to Admin,
a) Select Customers->Manage Customers
b) Click “Add New Customer”
c) Select website to which the customer will be registered with the “Creat In” pulldown list. Understand that “Create In” means exactly what it says. You will not be able to edit this field after the customer acciybt is Created In a particular website.
d) Enter the name and email information.
e) Select a customer group which, again, has more to do with a pricing category and nothing to do with catalog category access.
f) Enter a password or check “Send auto-generated password” if you would rather that the member manage their password.
g) Click “Save Customer” at the upper-right
5) Now go to http://www.your_website_name.com/limited_store_name and click “login” and enter the email address and password of the user just created in the limited store. The dashboard for that user should come up.
Well, that’s what is supposed to happen. What happens on my machine is that SOMETIMES the user is logged in to the correct dashboard on the limited website and only have access to the allowed product categories. Other times they are logged in to the MAIN website and have full travel over all within. Now, this error could be something peculiar to my installation and actions that I have performed susequently, so your mileage may vary.
If having your limited category members go to a sub page is not to your liking then you may overcome this by having a dropdown “Select your group to Log In” and filled with all of the “group” names in it at the upper-right of your home page in place of the “Log In” link. Upon select, your JS can redirect to the proper login for that group - http://www.your_website_name.com/selected_limited_group_name/customer/login/
Best of luck!