For customization look for blend targets or morph targets. Basically you use differnent models with the same vertex/triangle structure, but with different placement of the vertices. In game you then interpolate the vertices between different models. Either you interpolate the whole model (eg. to change the body mass) or you use only a (weighted) subsection of the mesh to blend between different versions of it (eg. nose or ears).
Eventually you could take all meshes and control values and bake it into a single mesh (you don't want to blend the mesh at run-time all the time , especially if you have more than 2 blend targets).
Clothes on the other hand are just different meshes for the same body part. Just take care to define a clear interface between different body parts , if you like to change different body parts individually. Changing the texture and color is finally the last, and one of the easiest ways, to add some more customizations (scars, tattoos etc.).
Take a look at blenders morph targets to get a feeling how it works.