Amazon has a lot to offer, that's for sure. However, I try not to order much that's either sold/shipped by Amazon or fulfilled by Amazon because they play too much with their shipping.
The last few orders I placed on Amazon that were either sold/fulfilled by Amazon took longer than a week just to get shipped. Most businesses can manage to ship out in-stock items in one business day, two tops. However, I've had Amazon wait 9 business days to ship, while my order's status has said "preparing for shipment" for 4 days. As I'm not Prime member, I feel like they do this on purpose so you'll have to wait upward of a week to get your items because they know that if they ship your items out the next business day, USPS will usually deliver in about 3 days, so why pay for Prime for a one day difference?
I never have this issue when I order items sold by a third party. I've even called Amazon about why it was taking days to "prepare my shipment" but even they couldn't tell me why or even what the real status of my order was. Oddly enough, after first telling me that my order didn't go through due to a server issue to the items just not being in stock, about one hour later, my order shipped out from a city about 60 miles away from me. My order was delivered the next morning in a box that was way too big and not even taped all the way shut.
Order from trusted third-party sellers. You'll have the best experience that way if you're not a Prime member.