Shopping in Cancun
There are 3 areas with American-style malls. Going from south to north in the hotel zone, they are:
As you reach the northern leg of the hotel zone, there is a flea market on the left-hand side. I didn't check it out and so can't report whether it is any good.
Along most the right-hand side of Avenida Tulum, the main street downtown, is a sprawling flea market / bazaar where people try to persuade you to look at their wares and haggle over prices.
Many people are uncomfortable with the idea of arguing with the salesperson to get a lower price than is on the price tag. When you see the prices on the price tags, you may change your mind. You will quite naturally turn your back in disgust, which signals the other person that they should shout a much lower price.
When you hear that second price, if you don't enjoy haggling, what you can do is name your own price and the salesperson will quote you a final price somewhere in the middle. If you do enjoy haggling, I guess you can go all-out and ask for other things to be thrown in for free, or bargain them down to your lowest price.
Sometimes even the second and third quoted prices are higher than you would pay in a "no-haggling" store. It pays to decide in advance what you are prepared to buy during your trip -- 1 colourful blanket, 1 onyx carving, 2 leather belts, 5 t-shirts, and so on. Check the prices on these items in 2 places, a mall and a smaller store. Remember these prices in pesos. Then when someone pulls you in off the street and quotes you a price, you don't have to do any currency conversion, just reply with a lower price than is in the store and don't budge until the prices are at least comparable.
I paid more than I should have for a leather belt because my mind blanked converting pesos to American dollars to Canadian dollars. I paid a fair price for a colourful blanket because I knew that they could be had for about $20 US in stores.
Based on the original prices quoted to me versus "fair" prices, expect the final price you pay to be more than 1/3 lower than the original price. If you can't bargain down that far, try your luck elsewhere.
Somewhere between overpriced malls and potentially overpriced street vendors, there are specialty stores with reasonable prices. Some are along Avenida Tulum on the left side. For the true Mexican shopping experience you can try "Commercial Mexicana" on the right side of Tulum past Avenida Uxmal. I also saw some stores with good prices and selection around Yaxchilan and Sunyaxchen. See the discussion of downtown for directions to the side streets along Avenida Tulum.
Around some of the tourist attractions you will find reasonably well-stocked gift shops. Most prices will be $1-2 US higher than in the city. You might want to buy a souvenir of that place, but don't buy general-purpose things there. Wait until you've gone shopping downtown before going on one of these tours so you can compare prices.
The one exception to this rule is a gift shop about 52 kilometers / 30 miles before Chichen Itza. A number of tour buses make a rest stop here. It was by far the best stocked store I saw for any kind of souvenirs, and prices were better than I saw anywhere else. If you do go to Chichen Itza, save your souvenir shopping until you have the chance to see this shop. There were a number of kinds of carvings, hammocks, and so on that I didn't see anywhere but here, and there were lots of nice knickknacks for $5-10 US.
I would advise against buying anything in the arrivals area, as you'll doubtless have better and cheaper alternatives later.
The same goes triple for the departures area. If you need to get rid of your last pesos, do it before you get to the airport. The prices that I saw were just ridiculous.
If you are determined to get a Hard Rock Cafe t-shirt or a Planet Hollywood tote bag, I guess nothing can stop you. But don't say I didn't try.
One unique Cancun brand is Señor Frog's. You can get frog-emblazoned merchandise at Señor Frog's restaurant, malls, probably a number of smaller stores and gift shops, and the airport.