Właściwie to sesja opiera się na ciasteczkach więc jest to podobne ale nie do końca. W ciasteczku to co ustawisz widoczne jest dla użytkownika i przechowywane na jego komputerze. W przypadku sesji na urządzeniu użytkownika jest tylko jedno ciastko z id sesji a wszystkie informacje dotyczące tej sesji przechowywane są na serwerze.
W przypadku sklepu internetowego jak i wielu innych rzeczy osobiście myślę, że lepiej i nawet dużo wygodniej będzie użyć sesji bo dostępna jest ona po prostu prawie jak zwykła tablica: $_SESSION['nazwa']. Umożliwia łatwe przechowywanie wielu wartości - tak musiałbyś tworzyć kilkanaście ciasteczek. Ciasteczek warto myślę używać gdy potrzebujemy zapisać jakąś pojedynczą rzecz, która nie musi być zależna od sesji np. kiedy użytkownik ostatni raz odwiedził stronę albo czy wyraził zgodę na ciasteczka. Przypominam jeszcze, że sesja kończy się w momencie zamknięcia przeglądarki lub gdy upłynie określony czas przez który nie będzie używana. W przypadku ciasteczek możemy sami ustawić czas po jakim wygasną.