Tente isso:
return; após o alerta: Coloque a palavra-chave return; dentro do bloco if que verifica a quantidade inválida. Isso interrompe a execução da função imediatamente após exibir o alerta. Consequentemente, o código que adiciona o item ao carrinho não será executado se a quantidade for inválida.
Ai, quando o usuário digitar uma quantidade inválida:
A função será interrompida devido ao return;
O item não será adicionado ao carrinho.
if (!product || product.trim() === "") {
alert("Por favor, selecione um produto.");
return;
}
if (isNaN(quantity) || quantity <= 0) {
alert("Quantidade inválida. Insira um número maior que zero.");
return; // Impede a adição ao carrinho
}
Se você quiser ser ainda mais preciso, pode usar uma expressão regular para verificar se a quantidade é apenas um número inteiro positivo:
A expressão regular ^\d+$ garante que a entrada seja composta apenas por dígitos (\d) e que haja pelo menos um dígito (+).
if (!/^\d+$/.test(quantity) || quantity <= 0) {
alert("Quantidade inválida. Insira um número inteiro positivo.");
return;
}