Fiz o que vc descreveu da seguinte forma:
Eu criei uma classe php que cria 2 input text e 1 botão, o primeiro input é uma busca por código( o usuário digita e da enter ou tab , é executado um ajax que busca o produto ) , o segundo input é um autocomplete da descrição e o botão abre uma modal com um grid que lista os produtos, ao clickar 2 vezes em uma linha do grid seleciona o produto.Na modal do grid foram adicionados filtros que atualizam o grid conforme digita a descrição, por exemplo, ou seja a modal é uma busca detalhada.
Ao selecionar um produto por qualquer meio: busca direta , autocomplete ou modal é preenchido os 2 input e um hidden que é o ID.
Para isso tudo funcionar eu utilizei varios plugins jquery:
- jQuery UI , jQuery Dialog para a modal, jQuery datepicker em filtros da modal;
- jQuery para os ajax e todas as operações javascript necessárias.
Não php eu não utilizei nenhuma classe , eu mesmo criei . Essa classe php (jqseeker.php) cria o html , e o javascript.
como todos os dados buscados são por ajax : busca direta, busca autocomplete, lista do grid , ficou facil utilizar essa busca para qualquer coisa : clientes , produtos , fornecedores, basta criar os 3 arquivos php executados via ajax e configurar apenas os campos que aparecem no grid / filtros da modal .
Explicando bem mais ou menos é isso que eu fiz, espero que tenha conseguido passar a idéia.