I have started the work on this but didn't have any time nor interest to finish but I could get a proof of concept working. The concept is somewhat basic but I took a different approach than the officials, where they create a clone from your character and open the stall using that clone. I used the existing system for auctions and hooked an external web app to list the auctions. That external app would be able to buy the items, notifying the running server and then the server would send mails to both the seller and the buyer with their items.
The external app talk via REST to a NodeJS/Express server which connects to rAthena via TCP streams and exchange raw packets. It seems a bit complicated, but once you get the hang of how packets work you'll be fine.
On the rAthena side I've hooked some methods and packets to open/close auctions and to send mails.
Node/Express server can be found here https://github.com/Danil0v3s/react.cp
rAthena modifications can be found here https://github.com/Danil0v3s/broriginal/pull/11
And the external app I've created to use as a launcher using Electron.JS can be found here https://github.com/Danil0v3s/broriginal-launcher
None of these wouldn't be possible without the help from Norminator, Nitrous, Zell and many others. If you have any questions regarding any of these, I'll keep an eye on this thread. And please, bear in mind that I haven't created any of these to be used by anyone else but me, so you won't find any comments or anything explaining anything and some solutions are completely hammered just to work