If you're staying at JDR, there are hundreds of small craft/gift shops in Ocho Rios (known as Ochi). There's also a market with lots of souvenir type stuff. Just watch your wallets/purses, pick pockets are rife. Also, don't let vendors place jewellery on you - bracelets etc, as they will expect you to purchase them.
Always haggle, but politely. Some vendors can be a bit pushy, just politely say no thanks, or avoid making eye contact all together.
By my eye, the quality of the souvenir stuff in the airport duty free is better than I find at crafts market.
That also depends on how much you're buying and whether you have the room in a carry on to buy it at the airport.
you will get a lot of the items sold in Ochi on the beach with the venders that Jewel brings in and you can bargain with them. We enjoyed the market- and they are pushy but you just say thanx but no thanx. Also the shops you are directed to by the jewel bus that takes you to town (10 per person round trip) have good deals and bad deals- buy your alcohol at the duty free shop at the airport if you have a direct flight. We only spent two hours in town.