It is sad, and these vendors are definitely detroying their own livelihoods with their agressive, short-sighted approach, with tourists and locals opting more and more to avoid the public beaches and go to private island locations.
Now, it is definitely possible to still enjoy the beach.. you just have to go with your eyes open and prepared to negotiate all prices upfront. Or just say no gracias a lot. Above is a list of set prices agreed to by the local Cartagena council. Screenshot them so you have them as a reference point. There's also a number you can call if things get heated.
Above all, don't accept anything until you've set the price first. No trial massage. No sample oyster.
Now go forth, ready to avoid the beach bullying. Once they know you're clued up, they will probably leave you alone. Wish it wasn't like this but you know, sometimes life's a beach.
UPDATE: Jan wrote in comments said he couldn't read the prices in the images. So I'll write them out here now:
A double tent with 4 chairs - 30,000 pesos
Umbrella with 2 chairs - 20,000 pesos
Single tent with 2 chairs - 15,000 pesos
Sun chair - 12,000 pesos
Plastic table - 4,000 pesos
Plastic chair- 4,000 pesos
Complete massage - 50,000 pesos
Head of hair braids - 50,000 pesos
Individual braids - 20,000 pesos
Oysters - 5,000 pesos (we have definitely heard of people getting sick from eating them FYI)
Beer - 3,500-4,000 pesos
And for best beaches please check out this section of the website.