The official MLB site has the Majestic Youth Authentic Collection of baseball team jackets for $69.95 (at the time I'm writing this) and adult sizes for $109.95. That's almost exactly the same price you'll find at any other reputable seller. So, why not go direct to MLB?
The best source for fitted baseball caps we've found is this place called Lids. They've got the "authentic" brand caps for all MLB teams at prices a few dollars lower than most any online sports store. Some other varieties are even cheaper.