Desenvolvimento

13 ago, 2013

Como criar um módulo para sua loja Opencart?

Publicidade

Tudo bom? Hoje é dia de colocar a mão na massa e falar de código. Já expliquei aqui como funciona a estrutura e a modelagem de dados da plataforma, e também expliquei a importância do VQmod na manutenção da integridade da plataforma. Hoje vou falar sobre como construir um módulo simples para a plataforma de comércio eletrônico Opencart.

O que nosso módulo vai fazer?

Para evitar uma maior complexidade neste artigo, o plugin terá como função criar um box com um formulário em nossa loja que receberá dois campos para nome e e-mail de usuários interessados em receber newsletter da loja, basicamente um plugin para captação de base .

Onde o modulo será exibido na loja?

Como utilizaremos o modelo padrão de plugins do sistema, o módulo poderá ser exibido em qualquer template do sistema e na localização definida na configuração do módulo, como você pode visualizar na imagem abaixo:

opencart-1

Módulo para sua loja Opencart

Criando a interface administrativa do módulo

O primeiro passo para a criação do módulo é disponibilizá-lo na área administrativa da loja. Para isso, você deve criar os seguintes arquivos, nos caminhos indicados:

/admin/controller/module/rfnewsletter.php

Arquivo responsável pelo controle das ações do módulo na interface administrativa do módulo, ou seja, é o responsável por tudo que ocorre no admin, ativação do módulo, visualização de dados e exportação da base de cadastrados.

/admin/view/template/module/rfnewsletter.tpl

Arquivo responsável pelo template da área de ativação e localização do módulo da frente de loja.

/admin/view/template/module/rfnewsletter_data.tpl

Arquivo responsável pelo template de exibição dos dados dos usuários cadastrados no módulo.

/language/portuguese-br/module/rfnewsletter.php

Arquivo responsável pelas informações de idioma do módulo.

Após esse primeiro passo, você deve criar a tabela no banco de dados que será responsável pelo armazenamento dos dados, para criar a tabela que utilize a query abaixo:

[sql]

CREATE TABLE `rfnewsletter` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)

[/sql]

Se você seguiu todos os passos corretamente, o módulo deve estar disponível para instalação no menu extensões > módulos do seu Opencart, mas você deve estar se perguntando: Ué, mas o que eu coloco nos arquivos? Como é muita coisa para descrever aqui no artigo, você pode baixar o plugin pronto e em funcionamento no site do Opencart, onde coloquei o módulo.

Depois de baixar o zip que coloquei com os arquivos, você deve ter disponível sua tela de módulos, que é acessada através do menu: extensões > módulos com o nome “Newsletter para visitantes”. Ao encontrar essa opção, clique em instalar e depois em editar. Na tela seguinte, vamos instalar o módulo nas páginas desejadas, sempre seguindo estes passos:

  • Clique em adicionar módulo
  • Selecione o layout que vai receber o modulo (Home por exemplo)
  • Posição (Topo/Rodapé)
  • Mantenha a opção habilitado
  • Clique em salvar

opencart-2

Módulo Opencart

Feito isso, o módulo estará ativado no sistema. Para que tudo funcione de acordo com o esperado e o box seja exibido no site, copie os arquivos da pasta Catalog dentre das pastas dentro seu sistema, você irá encontrar os arquivos de Model / View / Control e idioma.

Uma vez instalado, os usuários poderão cadastrar nome e e-mail para receber notificações do site. Por fim, você pode visualizar e exportar a base de usuários cadastrados no sistema; para isso, clique no botão Dados e você será direcionado a tela abaixo:

opencart-3

Exportar dados

Agora, vamos falar um pouco sobre os arquivos da pasta catalog do módulo – eles são simples e objetivos:

MODEL (Model/module/rfnewsletter.php)

Apenas uma inserção responsável por armazenar os dados no banco.

[php]

class ModelModuleRfnewsletter extends Model {
public function save($name,$email) {
$this->db->query("INSERT INTO `rfnewsletter` (`id`, `name`, `email`) VALUES (null, ‘$name’, ‘$email’);");
}
}

[/php]

Controller (Controller/module/rfnewsletter.php)

São apenas dois métodos uma para exibição do módulo e outro para que os dados possam ser salvos no sistema.

Pronto, seguindo estes passos você criou o módulo simples para cadastro e exportação de e-mail e nome de usuários. Para baixar o módulo completo, e só acessar este link. Se tiver dúvidas ou sugestões, coloque nos comentários.