For the bitcoin side use
https://btcpayserver.org/ you can self host it. Good support and a lot of people use it.
There are a few blogs how-to for accepting ETH but I have NO experience with any of them so I cannot comment on them. You can probably find an ETH discussion in alt-coins here to poke around it.
The only downside I see is that you will have to go to cart -> Pay with crypto -> choose crypto -> payment -> back to cart.
So you are adding the complexity of having 2 separate crypto checkouts.
With that being said there might be one that does it all, I do not know about it.
Stay safe.
-Dave