It is like asking how to program an app for Windows computer, it is a broad question, too broad to put it in a way for you to pick one and follow and for us to write them out.
In any case, you have to pay for hosting and domain, you can think of it as rent. You can minimize it all the way down to $0 but personally I would not bother visit a website with .cc .tk or whatever Pac Island free domain.
You have the options of DIY the code, use or pay for pre-made or railed designs. Think of it as you being a carpenter, a carpenter acquitance doing it for free, or have a contractor doing the inside of the store.