Return/recall teleport portal or NPC

Hello everyone. Backstory warning, I’m trying to make a mall on my server and I am trying to figure out the best way to get people to and from it. Originally I was going to just spawn major city portals, but I learned that people would take the easy way and go to the mall just to use the portals. Still others wouldn’t even visit the construction site because it would make them leave where they were.

On to the point. Is it possible, through a SQL SmartAI or something, to make a portal or NPC to teleport people to the mall, and save the location they came from so that a counterpart portal or npc can return them right to that location? My first thought on this was to just hijack the battlegrounds system, but apparently that only uses known BGs from the dbc, correct? Any other ideas are welcome as well.

one way could possibly be that you make an NPC spawned through an item.
The NPC has a way to make the place your inn / hearthstone location. (he is an innkeeper)
… or some other way make the player get his inn set.

Then you can use the hearthstone position to recall back.

About the only way I can come up with … if not using C++.