Ola!!
Gravar varios cookie pode complicar bastante.
No momento da gravação do cookie, faria assim:
Response.Cookie["Teste"].Value = "Valor1&Valor2&Valor3&Valor4&...";
// Inserindo todos os valores concatenados e separados pelo caracter "&";
No momento de recuperar esses valores:
string[] vetor = Request.Cookie["Teste"].Value.Split('&');
Fazendo o comando "Split" quebrará a string em toda ocorrencia do caracter "&". Ou seja, vc terá um vetor que terá todos os seus valores e de forma organizada.
Por exemplo, chamando o indice 0 (vetor[0]) trará o valor "Valor1" que é o primeiro.
-----------------------------------------------------------------------------
Grava um cookie para cada produto e em cada cookie grava uma string cujo valor seria uma concatenação das caracterisiticas do produto.
No momento da recuperação voçê da um "for" no vetor para saber quantos produtos tem. Daí em cada passo voçê verifica as caracteristicas de cada um.