There's usually a selection similar to what you said. Princesses, fab 5, frozen, marvel, Star Wars. All can change cruise to cruise though.
With pins, without pins.
As to getting them beforehand, if there's specific characters you know you definitely want, get them before, nothing onboard is guaranteed.
If you wait till onboard, the stores don't open until after you have sailed away, so you'll have to wait a few hours to get them.
And, it's Disney, so they're more expensive onboard than if you were to buy them from other stores/online beforehand.
Basically, it depends what your priorities are.
As to where to get them in advance, sorry I can't really help there, but look online for an idea.