Customer Groups are a feature that can be used to supply custom pricing and product availability to customers.
First, when creating customer groups, you can allow customers to enter the Customer Group Code during account creation to opt in to customer groups.
Additionally, admin users can edit customer records to add customers into groups.
Each group can have product-level specific visibility and pricing, under Products > Product Catalog Manager > Product Editor >> Advanced tab
This can also be edited in bulk via the Product Import/Export's Customer Group Pricing column.