I run a large non-profit dog registration system. One of the functions is to require all dogs to be registered with us for this particular sport.

The way I have it now, I have set up individual contacts and added custom, multiple entry custom fields. Individuals need to purchase a dog registration. I'm struggling with this setup since if the individual already has a dog registered, that dog info pops up in the form rather than it being blank. The only way I can see charging for registration of dogs in this manner is through CiviContribute. I would like: 1. Member accesses page to add a dog 2. Member enters dog info 3. Member enters payment info (I'm using iATS payment gateway) 4. On successful payment, the registration is completed.

Did I shoot myself in the foot by making these multiple custom fields under an individual? I had heard some suggestions where the dogs should be a sub-class of an individual and then use a membership status to charge for them? The issue with this is that there are way more fields then needed for a dog - how do I restrict which fields are visible on the backend for this type?

I'm looking for discussion and suggestions on this. Any help is much appreciated.


2 Answers 2


I do not think I can give you just one answer. IMO you need to try a few ways before you make your final decision. Memberships certainly sound like a good idea to try.

I can imagine dogs would be a contact subtype with their specific fields, and the registration should be a relationship between the individual (owner - perhaps also a contact subtype) and a dog.


Yeah you probably want to add the custom fields to the contribution record, that way every new registration will be a new contribution and the fields will be blank each time for the user

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.