ho seguito i tuoi consigli, ho modificato cosi il codice:
codice:
if(isset($_POST['IDprodotto'])&&isset($_POST['quantita']))
{
    $IDprod= $_POST['IDprodotto'];
    $qta= $_POST['quantita'];
    $prodotti = array('IDprodotto' => $IDprod, 'quantita' => $qta);
    print_r($prodotti);
    
    $prodottiJS= json_encode($prodotti);
    echo '<br>'.$prodottiJS;
    
    if(!isset($_COOKIE['acquisto'])) 
    {
        setcookie("acquisto", $prodottiJS, time()+360000); 
    }
    
    else 
    {
        $_COOKIE['acquisto'].$prodottiJS;
    }   
}
qua vado a inizializzare il cookie se non è stato creato altrimenti accodo un nuovo elemento (come hai detto tu), mi sono reso conto che in realtà quel $_SESSION['tipoaccount'] non mi serve proprio, infatti essendo le variabili di sessioni superglobali posso in seguito vedere se l'utente è privato/rivenditore e vedere il corrispettivo prezzo tramite query ad database. Penso che questa prima parte non ce niente da modificare. Qualche problemino ce nel secondo script, quello dove vado a visualizzare:
codice:
if(isset($_COOKIE['acquisto'])) 
{
    /*list($IDprod,$qta,$tipoaccount)=explode("|",$_COOKIE["acquisto"]);//[3]);
    echo 'ID PRODOTTO: '.$IDprod.'</br>';
    echo 'QUANTITA PRODOTTO: '.$qta.'</br>';
    echo 'TIPO DI UTENTE: '.$tipoaccount.'</br>';*/
    echo 'cookie settato';
    $prodotti = json_decode($_COOKIE['acquisto'], true);
    print_r($prodotti);
}


else echo 'cookie non settato';
infatti cosi com'è adesso se ho più stringhe concatenate nel cookie non mi visualizza niente. Mi suggerisci come posso modificare?
Grazie mille per i consigli che mi hai dato fino ad ora