Hallo,
ich habe mir den Code nicht genauer angeschaut. Auf Anhieb habe ich keinen Fehler im Code gesehen. Um das im Detail zu debuggen, bräuchte ich das zugehörige Formular. Ein funktionsfähiges Beispiel auf jsfiddle wäre praktisch.
Generell würde ich dazu raten, das zu vereinfachen. Anstatt sich ein eigenes Format zu überlegen, solltest du ein prädestiniertes Format wie JSON verwenden. Mit JSON.parse() und JSON.stringify() ist es möglich, solche Daten eindeutig und zuverlässig zu (de)serialisieren. Dabei kann eigentlich nichts schiefgehen, und wenn doch, ist es tausendmal einfacher, den Fehler zu finden, da du bei der Manipulation der Daten nicht auf String-Ebene, sondern auf Objekt-Ebene arbeitest.
Was die Verschlüsselung angeht, so hat sich Jörg bereits geäußert. Wenn du schon den Warenkorb im Cookie speicherst – Warum? Üblich ist das serverseitige Speichern in einer Session –, so fügt eine clientseitige Verschlüsselung keine Sicherheit hinzu, sondern verschleiert die Daten nur minimal.
Mathias