I am working on building an app for a startup company on the Force.com platform, and I am struggling to find the best way to set up and distinguish between two very distinct customer types.
The customer types:
- Standard B2B type customers, which will purchase hardware and software and maintain an ongoing relationship with the company
- B2C type customers (generally will be many more of these than of the B2Bs) who purchase a service (similar to a loyalty program) from the company.
The company acts as a middleman between the two customer types, but sells products and services on both sides.
Any thoughts on the best way to set this up without using person-accounts (which I am forced to work with now at another company, and can’t stand)?
I think this question is focused on how to structure the Account and Contact objects.
You could create an enforced one-to-one Account-Contact model by using triggers to query the number of contacts for each B2C account, and to throw an error if more than one contact exists. You’ll also want to enforce exactly one contact on every account edit (but not on create). Triggering the creation of a new contact for those accounts after insert would also be a good idea.
Essentially, you’ll need to use two Account record types, might need two contact record types, efficient triggers, and two Opportunity record types so you can use two sales processes.