Es ist so, dass HTML eine rein statische Angelegenheit ist, was bedeutet:
Ein HTML-Script wird vom Server 1:1 an den Browser des Users gesendet.
Das bedeutet weiter: Ein HTML-Script kann kein Warenkorb-System bilden.
Warum das?
Ganz einfach, um ein Warenkorb-System zu bilden muss der Server Eingaben von Kunden verarbeiten und zwischenspeichern. Diese Daten müssen natürlich auch explizit dem Anwender zugeordnet werden können.
OK klar, aber der Browser will HTML!
Das stimmt, darum braucht man auf der Serverseite Scripts (PHP, CGI, ASP etc) die den benötigten HTML-Code auf der Basis der eingegebenen Daten generieren können.
Der generierte HTML-Code ist wieder nur statisch, das macht aber nix, weil dieser HTML-Code nämlich benutzerspezifisch generiert wurde.
Das kann so ein Server übrigens ein paar Millionen Mal pro Sekunde machen.
Was also?
Es braucht serverseitig ein Script mit hungrigen Variablen, die Werte von Kunden empfangen wollen. Sind alle Variablen gefüllt, hat das Script eine Riesenfreude daran, HTML-Code zu erstellen und diesen auszuliefern.
Alles klar?