O projeto OpenCart Brasil é um fork do OpenCart 3, que tem o objetivo de oferecer uma versão do OpenCart otimizada, atualizada e segura, com foco especial no mercado brasileiro, sempre compatível com a última versão estável do OpenCart, e mantendo a licença GPLv3 para garantir que o projeto OpenCart Brasil é livre e sempre será.
Aqui você poderá analisar o código, relatar erros e enviar correções ou melhorias para o projeto.
Recomendamos que todos os desenvolvedores sigam este repositório para receberem atualizações sobre o projeto.
Para acessar uma demonstração online do OpenCart Brasil e visualizar a loja em funcionamento clique aqui.
- API REST e Webhook.
- Bootstrap 3.3.7 atualizado.
- Suporte para tarefas agendadas.
- Sistema de afiliados 100% funcional.
- Correção de bugs e otimizações no código.
- Campo NCM e CEST nos produtos.
- Campo SKU nas opções dos produtos.
- Atualização automática do OpenCart Brasil.
- Melhorias no gerenciamento de sessões.
- Melhorias no gerenciamento de cookies.
- Melhorias no gerenciamento de downloads.
- Melhorias no processo de login dos clientes.
- Melhorias na criptografia das senhas dos clientes.
- Novas extensões do tipo conversor de moedas.
- O processo de instalação ocorre em português do Brasil.
- Ferramenta de instalação por linha de comando em português do Brasil.
- Após a instalação, a loja já estará em português do Brasil com a moeda Real.
- Todos os dados de demonstração e dados auxiliares já estão em português do Brasil.
Para analisar todas as correções, modificações e melhorias realizadas a cada versão lançada clique aqui.
Para realizar a atualização automática do OpenCart Brasil, na administração da loja, acesse o menu Configurações→Manutenção→Atualização, clique na aba "Atualizar", e siga as instruções na página para executar a atualização automática.
Atenção: Em casos raros, durante o processo de atualização automática ocorre um erro que não permite o acesso a loja após a substituição dos arquivos da loja, sendo que este é causado pelos seguintes motivos:
- O cache de arquivos criado pelas modificações OCMOD estão causando o problema.
- O tema que foi instalado na loja sobrescreveu arquivos nativos do OpenCart.
Para resolver, apague todos os arquivos (com exceção do arquivo index.html) e as pastas que estão dentro da pasta storage/modification (veja o caminho para a pasta storage dentro do arquivo config.php), e reenvie os arquivos do tema que você está utilizando na loja (caso esteja utilizando um tema personalizado).
Dependendo da hospedagem (com baixa qualidade), pode ser necessário fazer o download da versão mais recente do OpenCart Brasil, e reenviar todos os arquivos da pasta "system", sobrescrevendo os arquivos que já estão lá.
Após executar os procedimentos, acesse a administração da loja e vá no menu Extensões→Modificações, clique no botão Atualizar para atualizar o cache de modificações, depois vá na página principal do painel de controle da administração da loja, abaixo do botão "Sair", você verá um botão na cor azul com o desenho de uma engrenagem branca dentro dele, clique neste botão, e no popup que vai abrir, clique nos dois botões na cor laranja que estão dentro da coluna "Ação" para atualizar o cache do tema.
- Loja 100% traduzida.
- Atualização automática.
- Instalação 100% traduzida.
- Suporte para tarefas agendadas.
- Campo NCM no cadastro do produto.
- Campo CEST no cadastro do produto.
- Campo SKU nas opções dos produtos.
- Novas extensões do tipo conversor de moedas.
- Correção nas sessões.
- Correção nas estátisticas.
- Correção nos arquivos config.
- Correção na API do catálogo.
- Correção na edição de pedidos.
- Correção no sistema de pontos.
- Correção no programa de afiliados.
- Correção no Google Merchant Center.
- Correção nas campanhas de marketing.
- Correção no formulário de contato.
- Correção no formulário de produtos.
- Correção na biblioteca do carrinho.
- Correção no envio de e-mail por SMTP.
- Correção das falhas ao finalizar o pedido.
- Melhorias nos produtos por downloads.
- Melhorias no gerenciamento de sessão.
- Melhorias no startup e framework do core.
- Melhorias na tradução e no layout de e-mail.
- Melhorias na comunicação com o banco de dados.
- Melhorias na criptografia das senhas dos clientes.
- Melhorias na redefinição de senha do cliente na loja.
- Melhorias ao criar pastas e enviar imagens através do gerenciador de arquivos.
- API REST para gestão de produtos, atualização do histórico de pedidos e listagem de dados.
- Webhook para notificar aplicações externas por meio de HTTP sobre atualizações nos produtos e pedidos.
- Marketplace Brasil de extensões.
- Suporte intermediário para LGPD.
Se o seu serviço de hospedagem não lhe oferece versões atualizadas dos softwares citados abaixo, troque de serviço de hospedagem, pois sua loja não pode ficar exposta por causa das falhas de segurança existentes em softwares antigos.
Se você é o profissional que administra os servidores que armazenam os arquivos e dados da loja, não utilize os softwares descritos abaixo em versões antigas. Utilize as versões mínimas recomendadas, sendo o ideal utilizar as versões mais recentes não só por questões de desempenho, mas principalmente por questão de segurança.
- Apache 2.4 ou superior.
- Nginx 1.14 ou superior.
- LiteSpeed 5.4 ou superior.
- OpenLiteSpeed 1.6 ou superior.
- 1.0.1c ou superior.
- 7.34.0 ou superior.
- MySQL 5.5 ou superior (Recomendado 5.7 ou superior).
- MariaDB 5.5 ou superior (Recomendado 10.3 ou superior).
- 5.6 ou superior (recomendado 7.4).
Diretiva | Valor |
---|---|
register_globals |
Off |
magic_quotes_gpc |
Off |
safe_mode |
Off |
file_uploads |
On |
allow_url_fopen |
On |
open_basedir |
none |
default_charset |
UTF-8 |
max_execution_time |
360 |
upload_max_filesize |
100M |
post_max_size |
100M |
memory_limit |
128M |
session.auto_start |
Off |
session.use_only_cookies |
On |
session.use_cookies |
On |
session.use_trans_sid |
Off |
session.cookie_httponly |
On |
*session.cookie_secure |
On |
*session.cookie_samesite |
Lax |
session.cache_limiter |
nocache |
session.gc_maxlifetime |
3600 |
session.gc_probability |
1 |
session.gc_divisor |
100 |
Só habilite a diretiva session.cookie_secure quando o HTTPS estiver funcionando em todas as páginas da sua loja, caso contrário o usuário não conseguirá logar. Lembrando que toda loja deve utilizar certificado de segurança para conexão segura por HTTPS.
Só habilite a diretiva session.cookie_samesite se você estiver utilizando o PHP 7.3 ou superior.
Configure as diretivas session.gc_probability e session.gc_divisor conforme o número de visitas simultâneas/diárias que a loja recebe, pois elas são as responsáveis pelo momento em que ocorrerá a higienização de sessões expiradas, ou seja, se você configurá-las conforme abaixo:
Diretiva | Valor |
---|---|
session.gc_probability |
1 |
session.gc_divisor |
100 |
Siginifica que "em média" a cada 100 visitas, há 1% de probabilidade da higienização de sessões expiradas ser executada, o que é mais que suficiente para uma loja de pequeno porte, sendo que você pode configurar higienizações mais agressivas (não recomendado), conforme abaixo:
Diretiva | Valor |
---|---|
session.gc_probability |
1 |
session.gc_divisor |
4 |
Significa que "em média" a cada 4 visitas, há 25% de probabilidade da higienização de sessões expiradas ser executada.
O importante é configurar as diretivas com sabedoria, levando em consideração a análise estatística da quantidade de visitas simultâneas/diárias que a loja recebe, para não executar higienizações desnecessárias ou poucas higienizações, sempre levando em consideração que as configurações devem ser reavaliadas quando houver alterações na quantidade de visitas simultâneas/diárias da loja, ou quando a loja estiver se preperarando para receber um número de visitas acima do rotineiro.
Importante: Não esqueça de habilitar as tarefas agendadas, pois elas são complementares na higienização de sessões expiradas (há instruções mais abaixo sobre como habilitar).
Variável | Valor | Descrição |
---|---|---|
wait_timeout |
30 | 30 segundos |
interactive_timeout |
30 | 30 segundos |
max_allowed_packet |
16777216 | 16M |
- cURL
- DOM
- Fileinfo
- GD
- MySQLi
- Mbstring
- OpenSSL
- ZLIB
- ZIP
- XML
Não é compatível com sistema operacional Windows utilizando servidor web IIS.
Em breve a versão mínima aceita pelo OpenCart Brasil será o PHP 7.4, pois o suporte para o PHP até a versão 7.3 encerrará em dezembro de 2021, ou seja, não faz sentido continuar o suporte para versões do PHP que os próprios desenvolvedores abandonaram, o que significa que essas versões não receberão correções de bugs e falhas.
Faça o download da última versão estável através de nosso site clicando aqui.
Faça o download da última versão estável marcada como latest release clicando aqui.
composer create-project opencartbrasil/opencartbrasil nome_da_pasta
git clone --depth 1 https://github.com/opencartbrasil/opencartbrasil.git
cd opencartbrasil
composer install
docker run -p 80:80 opencartbrasil/opencartbrasil:latest
version: '3'
networks:
app-network:
services:
app:
image: opencartbrasil/opencartbrasil:latest
container_name: app
volumes:
- ./src:/var/www/html
networks:
- app-network
ports:
- 80:80
environment:
OCBR_HTTP_SERVER: "http://localhost/"
OCBR_DB_HOST: "db"
OCBR_DB_USER: "store"
OCBR_DB_PASS: "store"
OCBR_ADMIN_USER: "admin"
OCBR_ADMIN_PASS: "123456"
OCBR_ADMIN_EMAIL: "usuario@dominio.com.br"
depends_on:
- db
db:
image: mysql:5.7
container_name: db
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: store
MYSQL_PASSWORD: store
MYSQL_DATABASE: opencartbrasil
networks:
- app-network
- Crie um banco de dados no MySQL para uso da loja.
- Crie um usuário no MySQL para uso da loja. Atenção: Em produção utilize um usuário exclusivo para a loja.
- Adicione no usuário as permissões de acesso ao banco de dados da loja.
- Extraia o conteúdo do arquivo zip que você baixou, no servidor em que você irá instalar o OpenCart Brasil.
- Renomeie os arquivos config_dist.php e admin/config_dist.php para config.php.
- Em ambiente Linux, a permissão incial de todos os arquivos deve ser 644 e de todas as pastas 755.
- Através do navegador, acesse o domínio onde estão os arquivos do OpenCart Brasil para iniciar a instalação.
- Ao final da instalação a loja estará pronta para utilização.
Através da interface de linha de comandos, a loja pode ser instalada automaticamente.
- Extraia o conteúdo do arquivo zip que você baixou, no servidor em que você irá instalar o OpenCart Brasil.
- No diretório raiz onde estão os arquivos do OpenCart Brasil, execute a linha de comando para iniciar a instalação.
- Ao final da instalação a loja estará pronta para utilização.
Exemplo de instalação através da linha de comando no servidor local:
php install/cli_install.php install \
--db_driver mysqli \
--db_hostname localhost \
--db_username root \
--db_password 123456 \
--db_database opencartbrasil \
--db_port 3306 \
--db_prefix ocbr_ \
--username admin \
--password admin \
--email usuario@dominio.com.br \
--http_server http://localhost/
Lista de parâmetros para instalação através da linha de comando:
Parâmetro | Descrição | Padrão | Obrigatório |
---|---|---|---|
db_driver |
Driver para conexão com o banco de dados (mysqli, pdo ou pgsql). | mysqli | Não |
db_hostname |
Nome do servidor de banco de dados. | localhost | Não |
db_username |
Usuário com permissão para o banco de dados. | Sim | |
db_password |
Senha do usuário com permissão para o banco de dados. | Sim | |
db_database |
Nome do banco de dados para instalar as tabelas da loja. | Sim | |
db_port |
Porta para acesso ao banco de dados MySQL. | 3306 | Não |
db_prefix |
Prefixo adicionado nas tabelas criadas no banco de dados. | ocbr_ | Não |
username |
Usuário de acesso do administrador da loja. | admin | Não |
password |
Senha de acesso do usuário administrador da loja. | Sim | |
email |
E-mail do usuário administrador da loja. | Sim | |
http_server |
Domínio da loja com uma / (barra) no final. | Sim |
A execução das tarefas agendadas são essenciais para o funcionamento do OpenCart Brasil, sendo que a execução das tarefas agendadas não sobrecarrega a navegação da loja, pois elas ocorrem em segundo plano.
Atualmente as seguintes tarefas estão agendadas para serem executadas no OpenCart Brasil:
- Higienizar as sessões expiradas uma vez ao dia.
- Atualizar a cotação das moedas uma vez ao dia.
Para executar as tarefas agendadas do OpenCart Brasil, você necessitará acessar através da administração da loja o menu Extensões→Tarefas agendadas, copiar a linha que está no campo Comando, e adicioná-la para ser executada a cada 1 (uma) hora no Agendador de Tarefas (Cronjobs ou Tarefas Cron) de sua hospedagem.
Importante: Se você nunca utilizou o Agendador de Tarefas de sua hospedagem, solicite ajuda ao suporte de sua hospedagem para saber como utilizá-lo.
Substitua o bloco location / { }
do seu arquivo nginx.conf por:
location / {
try_files $uri $uri/ @opencart;
}
location @opencart {
rewrite ^/sitemap.xml$ /index.php?route=extension/feed/google_sitemap last;
rewrite ^/googlebase.xml$ /index.php?route=extension/feed/google_base last;
rewrite ^/system/storage/(.*) /index.php?route=error/not_found last;
rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
location ~* (\.twig|\.tpl|\.ini|\.log|(?<!robots)\.txt)$ {
deny all;
}
Para o controle de versões utilizamos as especificações de Versionamento Semântico
Este repositório não é adequado para fornecer suporte sobre a utilização do projeto OpenCart Brasil.
Só registre uma Issue para relatar erros no núcleo do projeto OpenCart Brasil.
Para suporte relacionado sobre a utilização do projeto OpenCart Brasil, utilize o nosso fórum:
https://forum.opencartbrasil.com.br/
Se você encontrou um erro no núcleo do projeto OpenCart Brasil e deseja nos relatar, você deve registrar uma Issue.
Se você tem uma correção ou melhoria e deseja nos enviar, faça um fork e nos envie um Pull request para avaliarmos.
Se você descobrir uma vulnerabilidade de segurança no projeto OpenCart Brasil, envie um e-mail para dev@opencartbrasil.com.br. Todas as vulnerabilidades informadas serão imediatamente tratadas caso confirmadas.
O projeto OpenCart Brasil é um software de código aberto licenciado sob a GPL v3.