Hi,
Most likely than not, one of your require statements are getting hit thus reverting your transaction. Since the transaction revert did not have a message attached to it, I’m guessing the require statement that is getting hit is –
Perhaps you can put a message near the require statement and see if that gets returned to confirm it –
require(msg.sender != products[id].seller, "This is a test require statement message");
To resolve this make sure to not buy the NFT item from the same address as you’re using to sell it.
Hope this helps.