Quem, assim como eu, tava fazendo as aulas usando netcore 2.1+, deve ter percebido que os itens do carrinho não salvavam de jeito nenhum. Um problema nas configurações da session.
Pra solucionar basta adicionar as seguintes opções:
services.AddSession(option =>
{
option.IdleTimeout = TimeSpan.FromSeconds(1200);
option.Cookie.HttpOnly = true;
option.Cookie.IsEssential = true;
});
E na parte dos middlewares, descer o app.UseSession para depois do app.UseCookiePolicy. Caso contrário, o método SetPedidoId irá sempre retornar uma valor nulo pra session.
Antes -> Depois
app.UseHttpsRedirection(); | app.UseHttpsRedirection();
app.UseStaticFiles(); | app.UseStaticFiles();
app.UseSession(); | app.UseCookiePolicy();
app.UseCookiePolicy(); | app.UseSession();