One word of warning when doing something like this. I would recommend changing the value of gravity for the smaller bodies to be affected by the larger body, rather than adding the gravitational force as an external force (ie: body->addForce() ). The reason is that if you use the latter method, it is reliant upon your framerate. I was trying to simulate wind acting on a body, and I until I changed the gravity on the body to be (VEC3(0, -10, 0) + WindSpeed) my results would be inconsistent because my framerate was not constant.
You can easily update this each frame, same as you would need to if you were applying a force, so it shouldn't change your implementation much.