You don't need to buy them. Just thief in luvdisc and you're good to go. Get a Pokemon with Frisk and Thief, go fish with good rod, and you'll have more scales than Smaug in minutes.Mirage Island or Mirage Cave.
Edit: Also, since no one responded to my question, does anyone know where you can buy Heart Scales? Serebii says Mauville City, but the Poke Miles Shop in Mauville doesn't sell them. :/