Guia Geral Painel Codemarket

Felipo Antonoff
Postado em 14 de novembro de 2018
Editado 4 meses atrás
# Guia Geral Painel Codemarket Olá, bem vindo ao nosso artigo no qual explicamos todos os detalhes sobre o nosso Painel Codemarket, algumas partes serão artigos e tutoriais criados em outras páginas para mais detalhes. ## O que é o Painel Codemarket? É o painel de configuração criado exclusivamente por nós da Codemarket para configuração da maioria dos nossos Produtos e de parceiros que usam o nosso Painel. Ele basicamente substitui o Painel de Configuração da plataforma usada, tendo mais recursos e uma usabilidade superior, facilitando também o desenvolvimento dos Produtos. O nosso Painel aparece na sua Loja ou em Minha Conta -> Licenças, podendo configurar também direto pelo nosso site, tornando ainda mais fácil a configuração dos Produtos que usam ele. Em sua loja fica a nossa API do Painel Codemarket, que serve de comunicação entre o Painel Codemarket e sua Loja. ## Changelog das atualizações Vamos adicionar as novas versões do Painel Codemarket e mais detalhes de cada versão. Basta sobrescrever os arquivos anteriores para atualizar para uma nova versão, se teve mudanças no xml, precisa limpar o cache das modificações. ### Versão 1.0.7 - 16/03/2019 * Rodada a atualização na library, não teve alterações * Adicionado Status Pedido Abandonado, Todas as Regiões, Todos os Grupos de Clientes e Usuários, usado por alguns produtos Alterações apenas na library Configuration, basta subir os arquivos do módulo para sua versão Opencart na raiz da loja. Caso sua versão seja anterior a 1.0.5, recomendamos também limpar o cache das Modificações, normalmente em Extensões -> Modificações -> ícone azul (limpar cache). ### Versão 1.0.6 - 17/01/2019 * Melhorado a lista retornada de Pagamentos e Entregas * Melhorado o retorno dos campos extras, só recebendo agora os dados essenciais, para evitar problema com a validação dos campos extras do cliente Alterações apenas na library Configuration, basta subir os arquivos do módulo para sua versão Opencart na raiz da loja. Caso sua versão seja anterior a 1.0.5, recomendamos também limpar o cache das Modificações, normalmente em Extensões -> Modificações -> ícone azul (limpar cache). ### Versão 1.0.5 - 08/12/2018 * Pode agora usar mesmo com a loja no modo manutenção, criado xml para liberar o acesso mesmo em manutenção; * Adicionado o recurso de atualização do Painel Codemarket; * Melhorado o salve do endereço da listagem do Painel na configuração da Loja, que removido ao salvar a configuração da loja, mudamos o code usado, resolvendo esse detalhe. Teve alterações no xml, após subir os arquivos, precisa limpar o cache das modificações, normalmente em Extensões -> Modificações -> ícone azul (limpar cache). ### Versão 1.0.3 e 1.0.4 - 06/11/2018 * Tiramos o uso de Traits devido algum possível conflito ou loja que não suporta muito bem; * Melhorias gerais no código. Não teve alterações no xml, logo não precisa limpar o cache das modificações. ### Versão 1.0.2 - 05/11/2018 * Melhoria de enviar os dados para o Painel; * Novo recurso na library Response para enviar texto com base64; * Melhoria na library Configuration para lidar melhor com config do Opencart sem a informação da porta do Banco de Dados. Não teve alterações no xml, logo não precisa limpar o cache das modificações. ## Preciso usar o Painel Codemarket? Sim, ele é obrigatório o uso e fundamental para os módulos que usam ele, ou seja, a maioria dos nossos Produtos e de alguns parceiros, sendo mencionado na página do Produto essa informação em Compatibilidade. ## Quais as vantagens do Painel Codemarket * Facilita as atualizações do módulo, devido a quantidade de recursos e qualidade superior do nosso Painel, facilitando a criação de novos produtos e atualizações no Painel; * Fácil acesso a Configuração, podendo configurar em nosso site ou em sua Loja; * Tamanho menor e menos arquivos nos Produtos (módulos, temas e integrações), já que não precisa de vários arquivos do Administrador para o painel padrão da plataforma Opencart ou outra, diminuindo a quantidade de arquivos e seu tamanho ocupado na loja, alguns produtos chegam a ter apenas um xml ou poucos arquivos, ocupando pouco espaço no hd da Hospedagem; * Quantidade de recursos e excelente usabilidade; * Maior redundância e garantia de disponibilidade da Configuração, pois é salvo em nosso sistema o Backup da Configuração e um cache na Loja com excelente desempenho; * Comunicação feita diretamente dentro da Loja, pois é salvo em Cache no Banco de Dados da Loja cada configuração, com isso a comunicação ocorre com excelente desempenho; * Atualização automatizada, ele consegue atualizar automaticamente seus arquivos internos dentro da sua Loja se tiver suporte a Zip; * Segurança com certificado digital SSL em toda comunicação entra o Painel e a Loja, além de assinatura com Hash HMAC em toda comunicação, por isso usamos uma Chave que precisa ser adicionada na configuração da Loja; * Na Loja fica apenas nossa Painel Codemarket com código fonte aberto, somos contra o uso de criptografia, deixamos em nossos Produtos ou nosso Painel o código fonte aberto sem qualquer uso de criptografia, pois acreditamos na transparência e que nossos clientes tem que saber o que é adicionado em sua loja; * Resumo da versão do Opencart e PHP sendo exibido em Minha Conta -> Lojas; * Tela própria para a Configuração de cada Produto; ## Quais os requisitos do Painel Codemarket * Loja Opencart entre a versão 1.5.4.x até 3.x; * PHP 5.6 ou mais atual; * Curl com suporte a TLS 1.2; * Hospedagem sem bloqueio do IP da Codemarket; * Acesso ao Administrador da loja com permissão de acesso as Extensões e Configuração da Loja; * Uma conta em nosso site Codemarket; * Uma Licença relacionada com a Loja; * Vqmod 2.3.2 ou mais atual para Opencart 1.5.4 até 1.5.6.4; ## Verificar Instalação Em Minha Conta -> Lojas, existe um botão Verificar Instalação, ele serve para validarmos o Painel Codemarket instalada em sua loja e a configuração da Chave que serve de assinatura para segurança na comunicação. Ao clicar nesse botão, vamos verificar no caminho sualoja.comt/index.php?route=code/codeapi/test se está usando a Chave de segurança e se está instalado o Painel Codemarket, nessa comunicação pode ter alguns resultados diferente, sendo o esperado e padrão uma mensagem de sucesso, informando que foi verificado com sucesso, caso tenha instalado o Painel, adicionado a Chave e não ocorra nenhum bloqueio da Hospedagem, CDN ou WAF. Porém, caso ocorra algum erro, vamos retornar com uma mensagem, informando o possível problema, segue os possíveis motivos de não funcionar a Verificação: 1. Faltou subir os arquivos do Painel Codemarket em sua Loja 2. Faltou configurar a Chave em sua Loja 3. Bloqueio da Hospedagem, CDN ou WAF 4. Versão do PHP ou Curl menor que a mínima compatível Normalmente serão esses os motivos, sendo informado um resumo na mensagem de erro. Se ocorrer o bloqueio da Hospedagem, CDN ou WAF, precisa pedir para liberarem o nosso endereço api.codemarket.com.br para comunicar com sua loja, vamos fazer chamadas apenas para o endereço: sualoja.comt/index.php?route=code/codeapi/nome da função, no lugar do nome da função, fica a rota final como test por exemplo. ### Mensagem de sucesso ao Verificar Instalação em Lojas * Painel Codemarket verificado com sucesso em sua loja!: Quando a Loja está com nosso Painel Codemarket instalado, configurado com a Chave e tem o retorno esperado, sem qualquer bloqueio ou erro, nesse caso o Painel é validado com sucesso e já pode ser usado na Loja; ### Mensagens de erros ao Verificar Instalação em Lojas As possíveis mensagens de erros atuais são: **Erros Técnicos:** * Provável bloqueio da Hospedagem, CDN ou WAF, HTTP Código: 403, por favor verificar: Quando a requisição retorna HTTP Código 403 e sem resposta, normalmente sendo bloqueio causado pela Hospedagem, CDN ou WAF, além do 403, pode aparecer no lugar dele qualquer HTTP Código acima de 400, precisa nesse caso da verificação com a Hospedagem ou serviço de CDN/Waf usado, para pedir para desbloquearem as requisições vinda da api.codemarket.com.br; * Problema na comunicação, verifique se o Curl usa TLS 1.2: Quando deu erro na comunicação com a Loja, normalmente problema na versão do Curl; * Por favor tente novamente ou entre em contato por E-mail: Quando não foi possível salvar a URL da loja e outros dados, raramente vai acontecer, porém se ocorrer precisamos verificar; * Não foi possível Verificar, método não compatível: Quando a requisição não chega no método certo, por exemplo enviamos Post, validamos se chegou como Post na Loja, se não da esse aviso, raramente vai ocorrer, só se a Hospedagem estiver redirecionando e perdendo a requisição basicamente; **Erros de Instalação e Configuração:** * Verifique se foi salvo a Chave na Configuração da Loja: Quando não foi configurado ainda a Chave na Loja ou na verificação venho vazio, a Chave é essencial para comunicação segura e validação da comunicação; * Verifique se foi salvo a Chave certa na Configuração da Loja: Quando a Chave existe na Loja, porém a assinatura gerada com ela não é igual a assinatura enviada pela requisição; * Por favor tente novamente ou entre em contato por E-mail: Quando da HTTP Code 200, porém não retorna nenhum dos erros acima e não chega também o retorno certo da verificação, raramente vai ocorrer, porém se ocorrer precisamos verificar; * Verifique se foi instalado o Painel Codemarket e configurado a Chave na Loja: Quando não da nenhum dos erros acima e também não recebemos o retorno certo, provavelmente faltou instalar nosso Painel e configurar a Chave na Loja; ## Como funciona? O funcionamento do Painel Codemarket é relativamente simples, basicamente é um Webhook que comunica com a Loja sempre que ocorre uma mudança na Configuração, veja os passos abaixo: 1. Você realiza a configuração do Produto acessando a configuração dele pelo Minha Conta -> Lojas -> Configuração ou na sua Loja em Extensões se for Opencart 2.x até 3.x ou em Extensões -> Módulos para Opencart 1.5.x; 2. Após configurar, vamos enviar um Post seguro com assinatura para a sua Loja; 3. A loja vai receber nossa requisição pela API interna do nosos Painel Codemarket e vai salvar na Loja em Cache no Banco de Dados a nova configuração feita, tudo de forma automatizada; 4. Quando o módulo instalado precisar da configuração, vai fazer uma consulta no Banco de Dados da sua Loja e utilizar ele; 5. Sempre que houver qualquer edição na Configuração do Produto que usa nosso Painel, vai ser atualizado no Cache do Banco de Dados da sua Loja, com isso o desempenho e redundância é superior, pois não precisa realizar qualquer consulta em nosso sistema, ficando diretamente na Loja; Em resumo é semelhante a notificações de Pagamentos, no qual a cada alteração se comunica com a Loja, informando a mudança, funciona do mesmo modo, por isso nosso Painel é totalmente seguro e usado o padrão de comunicação segura por Webhook, o segredo é feito pelo Hash HMAC com a Chave da Loja e conteúdo da requisição, o mesmo suado pelo Github e empresas sérias de Pagamentos, ainda conta com o Certificado Digital SSL usando o protocolo TLS 1.2. ### Segurança usada * Usamos Certificado Digital com TLS 1.2, o mesmo usado por empresas sérias de Pagamentos e Bancos; * Toda comunicação feita com o uso de uma Assinatura criada com o uso da de um segredo a Chave da Loja, conteúdo da requisição e criada com o uso do Hash HMAC criptografado, com isso valida que a requisição vem da Codemarket de forma segura, usada por empresas de pagamento nas notificações de Pagamentos; * A listagem das Produtos na Loja, é realizada com uso de um Token que muda a cada listagem, com isso sempre que acesa a lista de Produtos para Configurar um novo Token único é criado; * A tela da Configuração de cada Produto usa também um Token único que é alterado sempre que ocorre uma configuração Salva; ## Artigos e tutoriais complementares [**Novo Painel Codemarket**](https://www.codemarket.com.br/blog/post/novo-painel-codemarket) Neste artigo, vamos informar mais detalhes sobre o novo Painel Codemarket, lançado oficialmente no dia 29/10/2018. [**Como instalar o Painel Codemarket no Opencart?**](https://www.codemarket.com.br/blog/post/como-instalar-o-painel-codemarket-no-opencart) Aprenda neste tutorial a instalar o nosso Painel Codemarket em sua Loja Opencart, com todos os passos necessários, no final do tutorial vai ter o mesmo instalado, verificado e podendo configurar o produto com licença ligada a sua loja. [**Atualizando para o novo Painel Codemarket**](https://www.codemarket.com.br/blog/post/atualizando-para-o-novo-painel-codemarket) Aprenda neste tutorial a realizar a migração do Painel Codemarket anterior, para o novo Painel Codemarket, como desativar ele, remover seus arquivos e principalmente a puxar as Configurações já feitas para o cache do Banco de Dados da sua Loja. [**Utilizando o Painel Codemarket em sua Loja**](https://www.codemarket.com.br/blog/post/utilizando-o-painel-codemarket-em-sua-loja) Aprenda neste tutorial a realizar a utilizar o novo Painel Codemarket, seja usando diretamente em sua Loja ou pelo nosso Painel em Minha Conta -> Licenças, além de alguns detalhes sobre as Configurações e segurança.