Yes, you should have plenty of time to shop. There are lots of shops right by the port. If you take a cab you can spend as much time as you want doing both. We went on a beach excursion, went back to the ship and went shopping after that. We spent about 1 1/2 hours at the stores.
I would say that it would depend on if you tender in or not. That can add about an hour to the time to get to & from the ship depending on the wait. We didn't go to a beach but really enjoyed the market by the tender dock. The locals there were very nice & we found some great prices on souveniers.
The sun is very hot and 2 to 3 hours at the beach is, for us, enough. We beach in the a.m., go back to the ship, the kids stay, and I go off shopping. PLENTY of time for both.
GET UP TO A $1000 SHIPBOARD CREDIT AND AN EXCLUSIVE GIFT!
If you make your Disney Cruise Line reservation with Dreams Unlimited Travel you’ll receive these incredible shipboard credits to spend on your cruise!