Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Por favor, poste aqui todas as dúvidas que você está tendo sobre a instalação, atualização ou configuração do OpenCart v1.x
#48128
Bom dia pessoal, seguinte, estou criando um módulo pra um cliente e ele usa um ERP que tem vários produtos usados, e ele não quer ter o trabalho de "recadastrar" esses produtos novamente na Loja Virtual, queria saber se tem como eu setar uma segunda configuração de banco de dados para eu conseguir ler esses dados do tal banco de dados dele junto com o que já tenho na minha loja.

Ex:
define('DB_DRIVER', 'mysql');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'user');
define('DB_PASSWORD', 'pass');
define('DB_DATABASE', 'meu_db');
define('DB_PREFIX', 'oc_');

define('DB_DRIVER_SEGUNDO', 'mysql');
define('DB_HOSTNAME_SEGUNDO', 'ip.remoto.do.outrocliente');
define('DB_USERNAME_SEGUNDO', 'user');
define('DB_PASSWORD_SEGUNDO', 'pass');
define('DB_DATABASE_SEGUNDO', 'db_dois');
define('DB_PREFIX_SEGUNDO', 'oc_');

E setar essas configurações junto com o banco da minha loja, usando dois banco de dados.

Ainda não achei nenhuma solução pra isso :cry:

Fico no aguardo. Valeu! :)
#48131
Olá,

Ficou bem claro o que você deseja, porém, realmente não é possível do jeito que você está fazendo, pois para o OpenCart aproveitar os dados de produtos do seu cliente, em primeiro lugar a estrutura de tabelas que armazenam os produtos do banco de dados do seu cliente, devem ser idênticas a do OpenCart, em segundo, não é possível no OpenCart de maneira prática fazer com que dois bancos sejam consultados e exibam somente um resultado, que no caso seria a listagem do produtos.

Em resumo, não será possível do jeito que você deseja. O ideal seria fazer uma integração entre o ERP e o OpenCart, mas esse processo não é nativo no OpenCart, teria que ser feito a parte, o que com certeza seria bem trabalhoso e inviável de se conseguir ajudar através de mensagens aqui do fórum.

Espero ter ajudado. :D
#48144
Olá, primeiramente obrigado pela ajuda

Consegui fazer a conexão :D
Da seguinte maneira:
Primeiro você tem que criar as configurações no arquivo de configuração do próprio opencart.
ex:
define('DB_DRIVER_SEGUNDO', 'mysql');
define('DB_HOSTNAME_SEGUNDO', 'ip.remoto.do.outrocliente');
define('DB_USERNAME_SEGUNDO', 'user');
define('DB_PASSWORD_SEGUNDO', 'pass');
define('DB_DATABASE_SEGUNDO', 'db_dois');
define('DB_PREFIX_SEGUNDO', 'oc_');

Segundo: Depois da linha 37 no arquivo index.php, no meu caso dentro da pasta admin/, tem que adicionar uma linha idêntica a do banco que já é nativa a da loja. ex:
// Database_MotosUsadas
$nova_conex = new DB(DB_DRIVER_SEGUNDO, DB_HOSTNAME_SEGUNDO, DB_USERNAME_SEGUNDO, DB_PASSWORD_SEGUNDO, DB_DATABASE_SEGUNDO);
$registry->set('nova_conex', $nova_conex);

Terceiro: para usar essa variável para acessar os dados do banco setado, basta setar a classe na model que vá usar as mesmas configurações, no meu caso eu vou usar: $this->nova_conex->query("AQUI VOCÊ FAZ O CODIGO SQL QUE QUISER FAZER NO OUTRO BANCO");

Simples, porém pra descobrir isso foi um pé no saco, demorei 2 preciosas horas.

Mas perfeito, consegui fazer e vou terminar o modulo para o cliente, creio que em tempo.

Obrigado pelo suporte, um abraço. :D
#48145
No caso, esse módulo vai exibir apenas os produtos do ERP do seu cliente?

Pois sei que é simples a questão de exibição do produto através do módulo na loja, mas como fica a compra dele na loja OpenCart? E a baixa deste produto no estoque quando vendido? E a exibição destes produtos por categoria? E nas buscas por produtos?

Não estou querendo dizer que não é possível, mas creio que será bem trabalhoso fazer com que funcione de forma completa esta integração. :)

Obrigado por compartilhar sua solução, pois pode ajudar outros colegas que passem pelo mesmo problema. :D
#48148
Recebi sua MP @dinego,

No caso, só explicando o que colega desejava, era somente conectar ao banco de dados do ERP externo para importar para o OpenCart os produtos já cadastrados no ERP. :)

Me desculpe se entendi mal. ;)