Vi a aula de apresentação do projeto e achei promissor por ser algo tão visto no dia a dia, e que provavelmente terei de fazer ou trabalhar com semelhantes ao longo da minha carreira, então, assim como fiz com os outros projetos, fiz sozinho sem ver as aulas de produção, assisti algumas poucas partes depois de me adiantar para ver como os professores resolviam. Tentei não usar muitas funções exclusivas do JS como o .split que os professores usaram, apenas tive que usar a documentação para descobrir a função .filter(), pois não sabia como fazer apenas com lógica. Com isso em mente, além de fazer o solicitado, quis testar a lógica inversa, adicionando um botão de "remover".
https://github.com/otavioFaria0/Carrinho-de-Compras
https://shopping-cart-base.vercel.app/
Aqui está o projeto no GitHub e no Vercel, gostaria que apontassem coisas que fariam diferentes ou de maneira mais simplificada no código, pois acredito que me estendi desnecessariamente. Espero ser ajudado, ou quem sabe ajudar alguém com alguma nova ideia.