First decide on the language you want to use for the project: PHP, ASP, etc.
Then look into working with sessions in that language. The session will allow you to save the information for what the people wish to buy. You should also consider if you want this information to be saved or not. A session lasts the life of the browser (once the window is close, the session is typically ended). So if you want the info saved, you may need to store the data into a cookie or database. If you don’t care to save the info then when people come back to your site they’d have to reselect what they want to buy (if they didn’t actually make the purchase the first time there).
It’s up to you how you want to handle the products you’ll be selling. You may want to go the easy route and just hard code the products into a web page. Or you may want to use a database - in which case you could either build a backend or not. The backend would allow you to add/edit/remove products easier, but it may not be necessary.
The key thing on the above two paragraphs is that a database might be needed. If it is, start looking into the different database options available to you and decide which one to go with. Then start looking into how to work with the database for whichever language you’re working with.
If you’re adding things to a “shopping cart” (either storing items in the session, database, cookie, etc) you’ll want to give the visitor the option to edit/remove items from it. That shouldn’t be too difficult. Same with allowing them to view the cart. Not a big deal.
Next comes checking out and payments. You may wish to search the forums because I’m sure there have been some discussions about which payment methods are available. And how you work with the different options available will come into play for how you code this part of the system.
Once payment has been made you’ll come back to a page at your site which should somehow have a list of the materials that you’ll need to email to the person. So keep in mind that you may have to get the persons email address before check out. It also depends on how the payment is processed. It may allow you to return the users email address associated with the service (like PayPal can do for example).
Once you have the materials you can send them as attachments via email or send them a link to download the materials. Again this will depend on a few factors - personal preference, file size, etc. You could even zip all the files they ordered together and just send the one zip file (or the link to download the zip file – but you’d need to use the language you picked to zip everything together (if that’s an option)).
It would probably be a good idea to track the sales as well. When you email the order to the person, send yourself an email with a list of everything they bought, their email, name, etc. So you know what they ordered incase something goes wrong.
I may have left a few things out there… but that’s a basic outline. Really your next step should be to sit down and walk yourself through all the steps you can think of that happen when you order something online. Make sure you plan everything out the way you want it to work and cover all your bases. Even if you’re not sure you need a specific step, but it’s typical to an online order, put it in your notes. Just because it’s there doesn’t mean you HAVE to use it. It’s better to have too much info than to find out later that you missed a step and need to recode a section.
Once you have the steps outlined and you know which language you want to use to make it… start checking out that language to see what options you have available to do each step. If you get stuck… post a question here and I’m sure someone will help.