Does Pet Store POS Software Support Multi-Pet Health Profiles for One Owner?
Yes. Every pet under one owner is its own record in Pawfora, with its own species, breed, date of birth, weight, vaccination and deworming rows, and its own scored health findings per visit. One booking can carry several pets, each priced separately. The thing it cannot do is share one pet between two owners.
The Short Answer: One Owner, Separate Pet Records
A generic till has one customer and, if you are lucky, a notes box. A household with a lab, a cat and a nervous rescue terrier ends up as a single name with "the fluffy one" typed into the note, and nothing about that can be searched, filtered or reported on later. Ask the till which dog was due for a booster in March and it has no way to answer, because as far as it is concerned there is one dog, or possibly none.
Pawfora stores each animal as a row in its own table under the owner's client record. Three pets means three profiles, each with its own fields and its own history, and the owner's record is just the thing they hang from.

There is no cap on how many pets one client can have inside the app. The public intake form, the one a new customer fills in before their first visit, does stop at twenty pets per submission, which is a guardrail rather than a policy: it keeps somebody from pasting a whole rescue roster into your database in one go.
One limitation belongs in the answer rather than at the bottom of the page, because it is the thing that catches shops out. A pet belongs to exactly one client. There is no household entity and no second contact, so a dog shared between two people has to live under one of them, and the other person has no access to that dog's records in their own portal.
What a Pet Profile Holds: Species, Breed, Date of Birth & Weight
Each profile carries name, species, breed, gender, date of birth, colour, microchip number, whether the animal is neutered, weight to two decimal places, a photo, and free text for notes.
Species is a closed list of five values: dog, cat, bird, rabbit and other. That sounds restrictive until you watch what an open field does to a database over two years, which is how you end up with "dog", "Dog", "canine" and "dog " sorted as four different things. The trade-off is real though: a guinea pig is "other", and so is a ferret.
Date of birth renders as an age, which is the number staff actually use at the table. Weight is stored against the pet and gets rewritten when a groomer records a weighing on a report card, so the number on the profile is the most recent one rather than a figure nobody has touched since the pet was a puppy.
Vaccinations and Deworming: Dated Rows Per Pet
Vaccination and deworming records are stored per pet in their own table, split by kind.
A vaccine row holds the name, the date it was last given, and the date it expires. A deworming row holds the type, the date it was given, the next due date, and the medication used. Because the rows hang off the pet and not the client, three cats in one household means three separate rabies histories, each with its own dates, and looking at one tells you nothing about the other two.
There is a second mechanism sitting alongside those dates, and it is worth knowing about because it can disagree with them. The pet also carries a vaccination status: Up to date, Due, Not vaccinated or Unknown. That status is a word, not a date, and it is stored as a text marker inside the pet's notes field. Nothing reconciles the two. A dog can read "Up to date" on its profile while its rabies row expired last spring, because somebody set the status once and never came back to it. Staff see both on the same card, which is the honest way to leave it; the shop decides which one they trust.
From a care row you can raise a reminder by hand, and sending that reminder is a click. Nothing sends it for you. There is no scheduled job in the system that watches expiry dates, and the only overnight task that exists is a housekeeping one for website analytics. If you want pet vaccination records chased, somebody has to work the list.
Health Findings: Nine Body Areas Scored on Every Report Card
Every grooming visit writes a report card, and the card belongs to one pet. It carries the weight taken that day with the unit it was taken in, the groomer's pre-check notes, findings across nine body areas scored from one to five, before and after photos, and the care notes that go home with the animal.
So a four-dog household accumulates four separate streams of findings, not one blended history. Reading across them means opening each pet's cards, which is fine for two dogs and gets slow for six. That is the honest shape of it: the data is per pet because it has to be, and per-pet data is read one pet at a time.
The findings are observations made by a groomer, and the grooming report card says so by what it does not carry. No diagnosis codes, no medication list, no link to a veterinary system. A note that a dog's left ear looked inflamed is a thing a groomer noticed, which is useful and is not a diagnosis.
Behaviour and Handling: Tags, Handling Warnings & Staff Views
Health for a groomer is clinical, and it is also whether the animal bites.
Pets can carry tags from a list the shop defines, with presets covering the situations staff actually need flagged: bite risk, anxious, escape artist, senior, noise-sensitive. Custom tags are allowed, and they are per pet. That is what makes a household record work in practice, because "the older one is fine, the puppy is not" is a sentence a notes box can hold but a checkbox cannot.
Alongside the tags sits a free-text field for anything that does not fit, capped at 500 characters on the public intake form so a new customer cannot hand you an essay.
Tags and the note behind them are the handling warning, and both live on the staff side. They sit on the pet's card, one click from the booking, so whoever takes the animal knows what they are walking into before they reach for the lead.
One Appointment, Several Pets: Multi-Pet Pricing & Booking Locks
A booking in Pawfora's pet shop point of sale software holds a list of pets rather than a single one. Each pet on the booking has its own services, its own assigned staff, and its own pricing tier, which is how a small terrier and a large doodle on the same visit get charged different amounts for the same groom. Totals are worked out per pet and summed for the booking.
The server also stops the same dog being in two places at once. When a booking is written it locks the pet rows and re-checks, and if that dog is already booked into an overlapping slot the second request comes back refused rather than quietly creating a double.
Here is a limit that surprises people. On the settled invoice, each line records which pet it was for as a name, not as a link back to the pet's record. The bill reads correctly and the customer can see that the nail trim was for Biscuit, but there is no per-pet revenue report hiding behind it, and if two pets in one household share a name the numbers cannot tell them apart.
What the Owner Sees in Their Client Portal
Owners get a pets page in their client portal listing every animal attached to their record, ordered by name. They can add a pet and edit it: species, breed, date of birth, weight in whatever unit the shop uses, vaccination status, and notes. Everything is scoped to their own client record, so one customer cannot reach another customer's dog.
They also see their own grooming reports, with the photos.
What they do not see is the rest of it. The dated vaccination rows, the pre-check scores and the tags stay on the staff side. A dog tagged "bite risk" is visible to the person picking up the clippers and invisible to the owner, which is the way most shops want it and is worth stating plainly, because "health profile" means something different to the shop than it does to the customer.
Before the first visit, a new owner can fill in their own pets through an intake link, with a photo per pet if the shop requires one, and vaccination details if the shop asks for those too.
What Pawfora Does Not Do for Multi-Pet Households (Boundaries)
The short list, because this is where brochures tend to drift.
One pet belongs to one client. No household grouping, no shared custody, no secondary contact on a pet. Two people splitting a dog means picking one of them, or keeping two pet records that never talk to each other.
The vaccination status word and the dated vaccination rows are two separate things, and nothing keeps them in agreement.
Nothing sends an expiry alert by itself. Reminders are written and sent by a person.
There is no cross-pet view. No report of every pet due or expired across the shop, no filter on the client list for it, no widget on the dashboard. A household of five is read one pet at a time.
There is no clinical record: no diagnoses, no allergies field, no medication list beyond the deworming one, no veterinary integration.
And there are no per-pet revenue totals, because the invoice stores the pet's name rather than its record.
Summary & Next Steps
If "multi-pet support" for you means one owner, several animals, each with its own dates and its own history, then yes, and per-pet is the only way the data is stored. If it means a household you can manage as a unit, or a system that tells you a booster is overdue without being asked, then no, and no amount of clicking will get you there.
The practical way to judge it is to open a client you know well, one with three or four animals, and read one pet end to end: profile, vaccination rows, last few report cards, tags. If that tells you what you would have wanted to know before the animal came through the door, the rest is detail.
Related questions: how pets are added through the public intake form, whether a pet's weight history can be read as a trend, how vaccination expiry dates are tracked per pet.
Related questions
See it on your own shop
Every module is unlocked for 7 days. Set up your services and take a real booking before you decide anything.
No credit card required · Cancel anytime