Help needed - Building an e-commerce competition entry system with Gravity Forms

Hi, I am looking for some community advice.

A few years ago, I built a website for a rural county fair with Gravity Forms and Gravity View doing the heavy lifting.

So, there are animal competitions. About 150 for each for horses, show jumping, cattle, goats and sheep.

Members of the public can come along, and enter using Gravity Forms with View then creating the entry data for Show Stewards to see who has entered.

Things have changed though; they now want to be able to take payments at the time of entry, and ONLY see entries from people who have paid. They also want to simplify it. You should only have to enter the data for an animal being exhibited once; in Sheep particularly you may find they enter 10 animals 10 times, so 100 entries!

So I’m thinking, with the new system:

On registration, you can choose Add Animals as part of the process. You then have a form for each animal type with an Add Another Animal using Gravity tool Nested Forms to allow for a repeater.
You do this at the start, so when in an application form later you need to say which animal you want to enter for the competition it will only show the relevant animals that’s you’ve entered. So for a sheep entry form you just see the sheep you’ve entered as a dropdown, and perhaps if the comp is breed specific it only shows the matching sheep you have in your profile, and an error message if you don’t have any.

They really want a “Shopping Basket” for their new system. So, you can enter or remove animals but when you “finalise” it to pay, you get given a card payment input with the calculated total. This is then used to generate a Gravity View for the Steward so they can see who has paid and what they’ve entered.

How do people think I should approach this? Should the animal profiles be a custom post type, and each animal competition be a custom post types? So every sheep or goat I create a profile for gets linked back to the user profile of the logged in user?

Should I have user_meta to have user profile flags such as has_made_entry and _payment_made and _payment_amount_paid? So as a User I can visit my dashboard and see what payment I’ve made? If I’ve made a payment but need to now pay more as I’ve entered another animal?

There are lots of ways of doing this, but at as the only dev in my office I don’t have any other GF Gurus to ask!

I’m particularly interested in the integrations with Gravity Perks and GF and Gravity View. It’s a no-brainer to license all three for this project but can anyone think of anything I’m missing, or think other tools may be better suited to the job?