She said she was nervous about taking the bag back, assuming staff would say the smell was her fault. But the manager apologised and explained a shipment had been flooded with seawater and many of the bags recalled.
Another woman spoken to by the Herald on Sunday said she spent days wondering where the smell was coming from before tracking it down to her new Guess handbag.
Like Heap, she was told by the store manager the problem came up regularly.
Guess handbags retail at Farmers and Strandbags for about $150.
Leather and Shoe Research Association director Dr Warren Bryson said seawater was unlikely to be the culprit. Instead he blamed cheap fish oil, used to soften leather.
"Fish oils are commonly used throughout the industry," he said. "High-quality fish oils are fairly stable and don't deteriorate.
"But in cheaper oils, unsaturated bonds react with the air and you get a rancid, fishy smell. It's a chemical phenomenon."
Bryson said the oil was ingrained in the fibre of the fabric and there was little hope of being able to wash or air it out.
"Our noses can detect one bad odour compound in a million. The smell won't be great to start with and will get gradually worse, depending on heat, moisture and sun."
Leather King owner Trino Koers said many consumers had a misconception that $100-$200 would buy a high-quality leather handbag.
"The best fish oil, from orange roughy, is $1000 a litre. They are not going to be using that on a cheap bag that's made in China," he said.
Merrin Gemmell from Leather Works said there was no mistaking the smell of quality leather.
"It should evoke that sense of luxury. A lot of leather these days smells strongly of chemicals and falls apart very quickly," she said.
"Buy from a reputable leather supplier, buy New Zealand-made and get a quality guarantee in writing."
Farmers merchandise controller Mark Prusher said the company had received one complaint about a bag with a "fishy" odour and would honour the Consumer Guarantees Act if any other customers had the same problem.
Overland, Strandbags and Guess declined to comment.