My advice would be to run your own node (bitcoind), assign addresses for your users and store them in a database.
Bitcoind will notify you whenever a transaction happens, so if a user makes a deposit, all you need to do is update the database with the user's new balance.
If the user buys a product, no bitcoin transactions should be made. Instead, the values (balances) in the database should change. If a user have 0.2BTC in his balance, and then he buys a product that costs 0.1BTC... 0.1BTC +0.004BTC (4% platform fees) should be deducted from his balance and 0.1BTC should be added to the seller's wallet (always, on the database).
Now, whenever a withdrawal request is made from a user's dashboard, that's when you make an on-chain transaction based on the user's balance found in the database.
In order to do any of the above, you have to be familiar with Bitcoin-CLI[1][2].
[1] https://chainquery.com/bitcoin-cli
[2] https://www.youtube.com/watch?v=cMM-t7azzJE&list=PLhWIQKZKupCawKJQBAEJc-Y4I30HQ6KBH
Sounds like an amazing idea, and would truly be something in the space. Though I imagine that people buying things in Bitcoin aren't going to want all their money sitting with a centralized company with no idea as to if they're getting their funds are not. Just a concern I always raise when it comes to crypto projects that are going to be holding the coins themselves during a transcation.
I'd imagine a good idea would be to setup some sort of wallet where independent moderators (arbitrators) can release the coins to the sellers once everything is confirmed to have been delivered to the buyers. Though then again, we land in a place where you have to trust someone, now we're stuck to trusting the moderators.
Pretty much why people stick to sites like Ebay/Paypal/Amazon -- they know that if something goes wrong, in the worst case they can claw their money back from their credit card company. A benefit and a tradeoff to not have in crypto.
I think this idea already implemented by nicehash, because when you buy hashing power, you need to deposit crypto to your account, and then make transactions. Need to learn more about security issues with crypto, because nicehash was hacked in 2017 and $64m in crypto was stolen. They still didn't make full payout to their users. So it's a big security issue.