Viele CMS basieren ohnehin auf PHP, wenn auch nicht alle. Momentan weit verbreitet ist XTCommerce, schau es dir mal an. Magento dürfte vermutlich etwas zu groß sein.
Wenn Du es selbst programmieren willst, solltest Du dich nicht nur mit php Sessions und Warenkorb-Möglichkeiten auskennen sondern auch die nötigen Bezahlvorgänge kennen. Dafür gibt es auch einige Tutorials. Die einfachsten Sachen gehen sicher fix, wenn Du etwas komplexeres willst musst Du mit einiger Arbeitszeit rechnen.