By default you can assign a promotion code to a customer in CS-Cart.
I didn't want to use the code for discount. But the possibility to buy the product. Without the code the product cannot be ordered (shopping basket off).
Are you wanting them to enter a code? Or can you use usergroups?
Usergroups can be used to define what products are available to what customers and what are not. This works well if their classification is not unique.
I'm obviously missing something if you need to create a 1-1 relationship.
I would think that having product A and product B be only for UG1 and product C being only for UG2, that customers who are in UG1 will see product A and B and customers in UG2 will see product C. Customers in both usergroups would see both.