There is 1 "main" choice:
Are you going to use a payment processor (like bitpay or coinpayments) or do you have the technical skill and time to do everything yourself?
I've never used bitpay, but i have used coinpayments a couple of times. They have library's and plugins available that allow you to include their service into most popular shopping cart systems.
If you decide to accept payments directly, you'll have to pick which (alt)coins you'll accept, run a daemon and use their daemon's interface to create new addresses and check for transactions funding these addresses.
I've created a testsite for the lightning network:
https://unblur.ninja , the backend runs bitcoind, clightning and lightning-charged. It also shows a (very, very, very) basic integration of the coinpayments payment processor (
http://unblur.ninja/opencreditline.php => see "OPEN A NEW CREDIT LINE WITH CRYPTO CURRENCY")