1) The best way to maintain sofa upholstery fabrics is to dry-clean them. There are professional cleaners who come to your home with dry-cleaning/heavy-duty to can clean the sofa.
2) 3M has a product named Stain guard for Fabrics that can be sprayed to the sofa fabric. It smears Teflon like coating on the fabric and does not absorb liquids spilled on the fabric.
3) Unless and otherwise you are in a real hurry, making custom sofa is always preferred than buying a ready-made sofa. You will have control over the quality of the material and fabrics. Good quality cushions with right density foam should be chosen while making the sofa. Please be mindful that the labour costs of repairing the sofa is very high. Hence, do not compromise on low quality/cost materials & fabrics for the sofa.