Diferenciação entre código e referencia do produto

Olá…
Gostaria de saber qual é a idéia central para diferenciar a referencia do produto do código …
Pois no meu sistema preciso colocar a opção para o usuário digitar tanto a referencia como o código do produto , como o codigo de barras. Isso na tela de venda, como em outras telas…

Já vi isso em outros sistemas… e não sei como diferenciar se o usuário está digitando uma referencia ou o código do produto no campo…

Para diferenciar o codigo de barras do codigo do produto, eu pego o texto digitado, e verifico se (texto > 9) dígitos então pesquisa o produto por código de barras, se (texto <= 9) pesquiso pelo código do produto

Mas e se for a referencia como se faz? alguma idéia para diferenciar a referencia do código?

Estou supondo que você use um mesmo campo para a busca por código de barras e por referência (um tipo de código interno). Depende do sistema também.

Inicialmente, vejo algumas opções:

1 - se for um software PDV (frente de caixa), sempre assumir que o que é digitado é um código de barras. A busca por referência deve usar um mecanismo à parte;
2 - garantir que nenhuma referência tenha mais que 12 caracteres. Isso faz com que qualquer coisa com 13 caracteres seja entendido como código de barras, e qualquer outra coisa seja vista como uma referência. Isso implica que seus códigos de barra sempre tenham 13 caracteres(EAN 13);
3 - diferenciar pelo caractere de início. Se for 9 ou 2 (códigos de barra gerados por balanças), considera como código de barras. Qualquer outro, considera como referência. Pode ser combinado com o método 2, para maior efetividade, e implica verificar no cadastro qual a referência gerada, impedindo a criação de referências iniciadas por 9 e 2;
4 - fazer a busca tanto por código de barras quanto por referência e ordenando por código de barras primeiro e referência depois. Assim, caso haja colisão (referência de produto igual a um código de barras de outro), o usuário seleciona o produto que quer. Caso não haja colisão, é só trazer o único produto selecionado

Particularmente, prefiro o método 4, ainda mais se houver a possibilidade de cadastrar códigos de barra internos (gerados por etiquetas próprias, por exemplo), o que dificulta os métodos anteriores.

Abraço.

Opa , obrigado pelas dicas… vou analisar essa metodologia que voce me passou… e vou implementá-las… obrigado mais uma vez…