Here's how I put my 3D printed ball jointed doll (BJD) together.
I'm using 3mm x 1mm neodymium magnets from Aliexpress to keep the head cap attached. I use superglue pen to glue these in place, making sure the magnets are oriented to attract the pieces together.
I've designed the doll to use 6mm BJD doll eyes. I'm holding them in place using BJD eye putty. You could 3D print some eyes or use small beads instead. Any kind of modelling clay or putty should work to keep the eyes in place, or you could glue them in if you didn't want to be able to change them out for different colors or adjust their positions.
Here's a video of the process of stringing the doll. I'm using hat elastic with fishing line tied on the ends to go through the hands and feet, I string the arms first, then the legs and finally the head. (The head is attached with fishing line around the elastic that holds the arms together and held inside the head using a bead). Another option is to use beading jelly elastic instead of fishing line - the knots are easier to tie.
The design process for creating the doll is documented here: part one and part two.
You can find the parts on Thingiverse