A menos que você realmente precise dos recursos de um número inteiro (ou seja, a capacidade de fazer aritmética), provavelmente é melhor armazenar os IDs do produto como strings. Você nunca precisará fazer nada como adicionar dois IDs de produto ou calcular a média de um grupo de IDs de produto, portanto, não há necessidade de um tipo numérico real.
É improvável que armazenar IDs de produtos como strings cause uma diferença mensurável no desempenho. Embora haja um pequeno aumento no tamanho do armazenamento, o tamanho de uma string de ID do produto provavelmente será muito menor do que os dados no restante da linha do banco de dados.
Armazenar IDs de produtos como strings hoje economizará muito no futuro se o provedor de dados decidir começar a usar caracteres alfabéticos ou de símbolos. Não há desvantagem real.