Teu raciocínio está correto.
Tudo depende das regras de negócio.
Por exemplo, um produto é fornecido somente por um fornecedor. Se for, então posso no produto colocar o código do fornecedor. Se não for, então é melhor indicar o fornecedor no momento da compra.
Se o produto já existe no estoque, você pode informar a quantidade já existente. Se não existe, então no momento da compra esta quantidade poderá ser atualizada. Inclusive o preço de compra e preço de venda também podem ser atualizados no momento da compra, se a regra for esta.
Para validar uma quantidade comprada, você teria que ter outro campo indicando a quantidade máxima. Não sei se isto é interessante. Normalmente, o que se faz é verificar quantidade mínima para disparar um aviso de necessidade de uma nova compra.
Ficou claro? Tudo depende das regras do negócio. Não há uma receita pronta.