# OpenCart

OpenCart é um sistema de E-Commerce Open Source desenvolvido por Daniel Kerr utilizando a linguagem de programação PHP, sendo o sistema licenciado nos termos da GNU General Public License. É um sistema gratuito e de código aberto para criação e gestão de loja virtual, focado na facilidade de instalação e utilização.

## História

O sistema começou a ser desenvolvido em 2007 por Daniel Kerr, um engenheiro de software da Grã-Bretanha, que estava desanimado com a utilização do sistema de E-Commerce Open Source denominado osCommerce, que não recebia atualizações há anos, não era desenvolvido com POO e estava fora da realidade competitiva do mercado.
Inicialmente Daniel Kerr não sabia qual nome o sistema teria, então pensou em alguns nomes genéricos como Live Cart e Oscart, até chegar no nome OpenCart, porém, ao tentar registrar o domínio opencart.com viu que o mesmo já havia sido registrado, então entrou em contato com o proprietário do domínio e negociou a compra do domínio, que no final ficou por 1000 USD's, uma quantia razoável na época em que Daniel Kerr ainda morava com sua mãe.
Daniel Kerr ainda era empregado quando começou o desenvolvimento do OpenCart, então trabalhou em suas horas de descanso no sistema por anos, até que saiu do seu emprego e começou a focar seu trabalho no OpenCart, porém, o OpenCart dava pouco retorno financeiro, mas tudo mudou quando Daniel Kerr fundou a OpenCart Limited e criou o Marketplace do OpenCart.

## Apresentação

O OpenCart possui uma completa gestão de pedidos, sistema de afiliados, sistema de vale presentes, sistema de vendas de produtos digitais (downloads), múltiplos meios de pagamento e fretes, além de ser possível expandir as suas funcionalidades através das extensões (plugins ou add-ons), modificações, e customizar sua aparência através de temas (template).
O OpenCart foi desenvolvido para ser leve e rápido, por isso conta com uma administração simplificada e intuitiva, e uma estrutura de loja que, além de contar com sistema de cache de informações para agilizar o carregamento das informações, usa de forma madura a biblioteca JQuery em vários recursos, utilizando-se do mecanismo AJAX para carregar informações sem a necessidade de atualizar as páginas.
O modelo de instalação e desenvolvimento segue o padrão MVC, bastante conhecido por equipes de desenvolvimento de softwares para web, o sistema é desenvolvido utilizando as linguagens PHP, CSS, Javascript, as biblioteca JQuery e o BootStrap e o engine template Twig.

## Requisitos para instalação

* Servidor Web Apache 2.4 ou superior (funciona com Nginx 1.14 ou superior).
* OpenSSL 1.0.1c ou superior.
* Curl 7.34.0 ou superior.
* PHP 7.3 (ou superior).
* Bibliotecas do PHP: curl, dom, fileinfo, gd, mysqli, mbstring, openssl, zlib, zip e xml.
* Banco de Dados MySQL 5.5 ou superior (funciona com MariaDB 10.3 ou superior)

## Recursos gerais

Alguns dos recursos do OpenCart são:
* Documentação livre.
* Plataforma Open Source.
* Cadastro ilimitado de produtos.
* Cadastro ilimitado de fabricantes.
* Cadastro ilimitado de departamentos.
* Cadastro ilimitado de páginas de informações.
* Suporte para vários temas (templates).
* Suporte para várias moedas.
* Suporte para vários idiomas.
* Suporte para extensões (plugins ou addons).
* Suporte a Modificações (OCMOD) usando a linguagem de marcação XML.
* Instalador automático de extensões.
* Suporte a modificações no core da plataforma de forma virtual (sem alterar os arquivos originais).
* Suporte para várias formas de pagamento.
* Suporte para várias formas de envio (frete).
* Suporte para Google Merchant Center.
* Suporte para Sitemap XML.
* Suporte para uso de certificado de segurança (SSL).
* Suporte para relacionamento entre produtos.
* Suporte para avaliação/resenhas de cliente nos produtos.
* Suporte para promoção de produtos por período.
* Suporte para desconto progressivo por quantidade de produto.
* Suporte para venda de produtos por download.
* Suporte para venda de assinaturas com pagamento recorrente.
* Suporte para venda de acessórios opcionais por produto.
* Suporte para atributos de produtos.
* Suporte para opções de produtos.
* Suporte para imagens adicionais do produto.
* Suporte para vários tipos de impostos incluídos no produto.
* Suporte para preços diferenciados por grupo de clientes.
* Suporte para gerenciamento de várias lojas.
* Suporte para modo de manutenção.
* Suporte para URL amigável.
* Suporte para compra como visitante.
* Suporte para gerenciamento de cache de informações do banco de dados.
* Suporte para gerenciamento de campanhas de marketing por link.
* Sistema de lista de desejos para clientes.
* Sistema de busca por produtos na loja.
* Sistema de comparação de produtos para clientes.
* Sistema de comissão para afiliados da loja.
* Sistema de venda de vale presentes e utilização do mesmo na loja.
* Sistema de cupons de desconto ou frete grátis.
* Sistema de envio de informativo (newsletter).
* Sistema de devolução de produtos.
* Sistema de pontos onde os mesmos podem ser utilizados na compra de produtos.
* Sistema de créditos (caso necessite devolver um valor ao cliente).
* Sistema de histórico de pedidos com mudança de situação do pedido.
* Sistema de permissões por grupo de usuários na administração da loja.
* Sistema avançado de SEO.
* Impressão de faturas.
* Impressão de listagem de produtos para entrega.
* Venda direta pela administração da loja.
* Vários relatórios de vendas, clientes, produtos, afiliados, etc.
* Ferramenta de backup e restauração.
* Ferramenta de log de erros.
* Redimensionamento automático das imagens (thumbnail).
* Layout responsivo (adaptável para dispositivos mobile).
* Controle de clientes online.
* Log de atividades de clientes na loja.

## Idiomas

Nativamente o OpenCart suporta apenas a língua inglesa, porém, outras dezenas de idiomas como o português do Brasil estão disponíveis como pacotes instaláveis.

## Extensões

O objetivo das extensões (plugins ou addons) é modificar, expandir ou adaptar novos recursos ao OpenCart.

## Pagamento

O OpenCart tem suporte para dezenas de formas de pagamento, e nativamente para:
* Depósito ou Transferência Bancária
* Pagamento na Entrega
* Pagamento grátis

## Frete

O OpenCart tem suporte para dezenas de formas de envio (frete), e nativamente para:
* Frete Fixo
* Frete Grátis
* Frete por Itens
* Retirar na loja
* Frete por peso