A software developer I met almost a year ago remarked, "These days, it's not about writing code per se. There is already a lot of code out there in open source. These days, it's all about joining different bits of code together to solve the problem that you're tackling". I couldn't agree more.
User registration, payments, catalogs, blog posts -- functionality such as this has been written and re-written so many times, there is simply no reason to write your own version of this. From Plone to Drupal, there are plenty of systems that provide all this. The proof is perhaps in that Groupon started as a Wordpress blog.