Remove Chocolate stains from Upholstery:
Scrape off excess chocolate. Mix one tablespoon of liquid dishwashing detergent, like
Dawn Ultra Dishwashing Liquid Dish Soap, with two cups of cool water. Using a clean white cloth, sponge the stain with the detergent solution. Blot until the liquid is absorbed. Repeat until the stain disappears. Sponge with cold water and blot dry. If that doesn't work, use a clean white cloth, sponge the stain with a dry-cleaning solvent, like
Guardsman Professional Strength Dry Cleaning Fluid . Blot until the solvent is absorbed. Repeat until the stain disappears.
source:
https://www.goodhousekeeping.com/home/cleaning/tips/a16147/stains-chocolate-may07/
As for fabric anti-stain treatments... Scotchguard works well, though you have to remember that it wears out and will need periodic reapplication (every 3-6 months).
https://www.scotchgard.com/3M/en_US/scotchgard/how-to-auto-fabric-carpet-protector/
Some dealers offer upholstery protection with lifetime guarantees.... though I have never taken them up on such an offer as I always get leather seats and put sheepskin covers over them.