Algumas funcionalidades, como as de limpar a lista de compras e o valor total no inicio do programa, não adicionei no meu código porque fiz as mudanças diretamente no index.html. Adicionei uma condição para que o carrinho só seja alterado caso a quantidade seja maior ou igual a 1. Na hora de limpar o campo quantidade, fiz da seguinte forma: "campoQuantidade.value = '';". Dessa forma o valor fica vazio e é exibido o número 0 automaticamente, já que ele foi definido como placeholder no código HTML.
let listaProdutos = document.getElementById("lista-produtos");
listaProdutos = listaProdutos.querySelector('section');
let valorFinal = document.getElementById('valor-total');
let campoQuantidade = document.getElementById('quantidade');
let totalGeral = 0;
function limpar() {
listaProdutos.innerHTML = '';
valorFinal.textContent = 'R$0,00';
campoQuantidade.value = '';
totalGeral = 0;
}
function adicionar() {
let quantidade = campoQuantidade.value;
if (quantidade >= 1) {
// Pegando o nome e o preço do produto.
let produto = document.getElementById('produto').value.split(' - R$');
let produtoNome = produto[0];
let produtoPreco = produto[1];
let totalProduto = produtoPreco * quantidade;
totalGeral += totalProduto;
listaProdutos.innerHTML += `<span class="texto-azul">${quantidade}x</span> ${produtoNome} <span class="texto-azul">R$${totalProduto}</span><br>`;
valorFinal.textContent = `R$${totalGeral},00`;
campoQuantidade.value = '';
}
}