You are asking for a lot. For these types of services people make hundreds of dollars. An easy shopping cart you can do is to set up a section on your site, maybe just a box or something. Then everytime someone adds a product to the shopping cart, set up a VB or C# function to add that specific product to the shopping cart via session variables. Then have the box, on every page, pull the session variables, if there are any, into the box and display them. It is quite easy actually.
For the payment gateway, that is something you purchase and usually the price depends on the package you choose. Most prices are for 500 - 2000 purchases a month with 2.9% charges of the total ordered. Then if you go over your purchases, they can be anywhere from .10 to .25 per order charged, in addition to the 2.9%. You can always use paypal, which is cheaper. After choosing a payment gateway, you need to integrate it into your website. It is a big process that is not, almost ever, done for free. Just look up what you need for an ecommerce site. Search google for 'create asp.net shopping cart' and this should bring up a number of resources you can use.