DevSecOps

7 jul, 2014

Conheça três plataformas de ecomerce simples e acessíveis

Publicidade

Pequenos empresários e empreendedores que desejam criar uma loja na Internet não precisam investir enormes somas em software e hardware. Uma loja online pode ser acessível mesmo para pequenas empresas ou empresários individuais. Uma solução para os não técnicos é vender os produtos através de sites de leilões ou marketplaces e pagar uma taxa para o prestador de serviços.

Como alternativa, os provedores de hospedagem oferecem sistemas de lojas prontas para seus clientes, permitindo-os disponibilizar seus produtos para venda online apenas cadastrando os produtos em uma loja hospedada no próprio provedor. Essa solução geralmente implica no pagamento de uma taxa mensal ou de um preço fechado. Muitos sistemas de gerenciamento de conteúdo também contêm módulos de loja virtual prontos para uso. Executar uma loja em um servidor próprio pode ajudar tanto a economizar custos como a manter o controle das coisas. Neste artigo, testamos alguns sistemas de lojas prontas, incluindo duas ferramentas livres e de código aberto, OpenCart e Satchmo, e o sistema comercial e proprietário LemonStand. O ambiente de testes é uma plataforma AMI Amazon Linux baseada em RHEL (versão 2013.03).

Entre outras coisas, queremos mostrar como é complexa a instalação e configuração em um servidor próprio, se os candidatos suportam os papéis de usuário (por exemplo, para alterações de categorias e descrições de produto), o quão intuitivas as lojas são para os compradores, e se é possível a cooperação com sistemas de CRM, além de quais interfaces de pagamento são fornecidas pelas plataformas de e-commerce. Para simular uma loja real, os testadores utilizaram o mesmo conjunto de exemplos de arquivos e produtos.

O primeiro candidato foi desenvolvido pela OpenCart Limited, de Hong Kong. O OpenCart é liberado sob a GPLv3 e é gratuito na versão básica, embora os usuários tenham que pagar por algumas extensões e temas. O software da loja requer um servidor web (preferencialmente Apache), PHP 5.2 ou mais recente, MySQL e cURL. Analisamos a versão 1.5.6, que também necessita das extensões do PHP, GD e Mycrypt, presentes no sistema.

Armazenamento

Após descompactar o arquivo ZIP, é preciso copiar o conteúdo do diretório de upload para qualquer diretório onde a loja deverá funcionar no servidor web. O desenvolvedor também precisa criar um novo banco de dados MySQL e um usuário correspondente para instalação do banco de dados. A instalação continua através da interface web. Depois de aceitar o contrato de licença, o script de instalação verifica se todas as dependências foram cumpridas e se outros arquivos PHP e diretórios possuem os direitos de acesso corretos. Em seguida, renomeie o arquivo config-dist.conf para config.conf e o arquivo admin/config‑dist.conf para admin/config.conf.

Em seguida, no navegador, insira as informações referentes ao banco de dados no formulário e crie uma conta inicial para o administrador da loja. Finalmente, remova o diretório de instalação do servidor. Para acessar a área de administração do OpenCart, acrescente admin ao URL. Após o login, o painel aparece com uma visão geral e estatísticas de visitantes e compras realizadas. A primeira parada na loja recém-instalada é o menu do sistema e, em seguida, as opções Settings ou Localization (Configurações ou Localização), onde é possível configurar detalhes gerais da loja e do proprietário, incluindo o endereço, idioma, moeda e unidades de pesos e medidas. O processo implica uma enorme quantidade de cliques, embora o OpenCart suporte a configuração granular.

Acessar Settings/Users (Configurações/Usuários) é obrigatório. O OpenCart oferece suporte a usuários e grupos, que podem ser usados para definir de forma muito precisa quais funcionários têm acesso a quais áreas da administração da loja e se eles estão autorizados a fazer alterações nas configurações (figura 1). Assim, um funcionário da loja verá as informações de envio, alguém de vendas será capaz de manter o catálogo de produtos, mas não os dados do cliente, e um funcionário do grupo de contas poderá acessar clientes, vendas e informações fiscais, mas não conseguirá modificar os produtos oferecidos. O sistema de armazenamento gerencia clientes em Sales/Customers (Vendas/Clientes). A seção Customer Groups (Grupos de Clientes) contém as configurações gerais para as contas de compras. O administrador pode, por exemplo, estipular que novos cadastros sejam aprovados manualmente.

Figura 1: O administrador OpenCart adiciona funcionários a um grupo. As configurações de grupo definem os direitos de acesso e modificação de um usuário.
Figura 1: O administrador OpenCart adiciona funcionários a um grupo. As configurações de grupo definem os direitos de acesso e modificação de um usuário.

Decoração da vitrine

Nossos testes revelaram algumas omissões importantes, como uma opção para importar listas de clientes (de planilhas ou de outros sistemas de vendas). Da mesma forma, a versão básica do OpenCart carece de recursos para importação e exportação de catálogos de produtos. Uma busca na página de extensões² fornece uma série de plugins para extensão da loja, inclusão de recursos de importação e exportação – seja gratuitamente ou por uma pequena ou grande quantidade de dinheiro. Sem as extensões, o OpenCart pode pelo menos produzir um dump SQL com todas as configurações e conteúdo de texto através da ferramenta System/Backup Restore (Sistema/Restaurar Backup), mas é preciso fazer o backup de imagens e outros conteúdos manualmente. Um clique em Restore (Restaurar) abre um diálogo de seleção que permite ao usuário fazer upload de backups de dados em formato SQL.

Mais de 2300 temas estão disponíveis na página de extensões para a decoração da vitrine da loja. Muitos temas são gratuitos e outros custam entre US$ 15 e US$ 90. Mais ofertas para OpenCart estão disponíveis a partir marketplaces independentes na Internet. Para criar um novo template para a loja, faça o download do arquivo, descompacte-o e salve o conteúdo no diretório catalog/view/theme no servidor web. O tema é ativado através do painel de administração em System/Settings (Sistema/Configurações). Pressione Edit (Editar) e, em seguida, selecione o novo template em Store. Além dos temas, as extensões também incluem uma série de plugins para interfaces de pagamento e envio, feeds RSS, lojas em vários idiomas e até mesmo blogs. Melhorias que ajudam a avaliar as vendas e gerar relatórios práticos de gerenciamento também estão disponíveis.

O administrador organiza seus produtos no menu Catalog. Categorias e subcategorias ajudam a configurar a navegação interna do site. Os departamentos principais, que possuem uma caixa de seleção ao lado da opçãoTop, aparecem no menu principal na tela inicial da loja. O OpenCart também oferece suporte a propriedades, que permitem aos clientes escolher e filtrar produtos. Em Catalog/Options (Catálogo/Opções) (figura 2), é possível determinar as variações disponíveis para um produto (por exemplo, tamanhos, cores etc.). A seçãoProducts (Produtos), com uma dezena de submenus e uma infinidade de opções de configuração podem representar um desafio para os operadores da loja virtual. Preencher nomes, descrições, metatags, números de artigos, taxas de impostos e palavras-chave de SEO é bastante trabalhoso. Os donos das lojas também devem reservar um tempo para editar imagens. As dimensões não devem exceder uma largura ou altura máxima de 1000 pixels, e os arquivos não podem ser maiores que 300KB.

Figura 2: O gerente da loja usa as opções de catálogo para definir os detalhes de um produto. Aqui, também é possível especificar como a interface web apresenta seus itens (por exemplo, formulários, botões e imagens).
Figura 2: O gerente da loja usa as opções de catálogo para definir os detalhes de um produto. Aqui, também é possível especificar como a interface web apresenta seus itens (por exemplo, formulários, botões e imagens).

Fortuna e sucesso

Uma vez que as prateleiras estão abastecidas e a loja esteja aberta, os resultados são impressionantes. Os clientes encontrarão uma loja online clara e com navegação intuitiva. Os recursos de busca integrada são satisfatórios para termos simples e encontra produtos cujos títulos contenham o termo inserido. Opcionalmente, os clientes podem pesquisar em subcategorias e descrições de produtos. Os operadores que desejam oferecer a seus potenciais compradores maior flexibilidade de pesquisa precisam investir em uma extensão para isso.

Por padrão, as lojas OpenCart oferecem a avaliação de produtos. Para expressar suas opiniões, os usuários pressionam o botão Write a review (Escreva um comentário) na descrição do artigo, digitam um nome e o texto, escolhem entre uma e cinco estrelas, digitam o texto de um validador captcha e submetem a avaliação. O gerente da loja libera os comentários pertinentes em Catalog/Reviews (Catálogo/Comentários). Se quiser desativar o recurso, o administrador da loja encontrará a opção para fazê-lo na guiaSystem/Settings/Option/Products (Sistema/Configurações/Opção/Produtos).

Se o usuário quiser combinar o OpenCart com um sistema de CRM, é preciso investir em uma extensão; existem duas interfaces comerciais para SugarCRM e Vtiger. O OpenCart também implementa opções de pagamento relevantes, tais como PayPal, cartões de crédito, Amazon Payment e transferência bancária na instalação básica ou através de módulos e extensões, bem como Free Checkout (útil para downloads gratuitos) e pagamento na entrega.

Satchmo

O segundo candidato ao teste é escrito em Python, está disponível sob a licença BSD, e usa o framework web Django. O Satchmo requer Python 2.5 ou posterior, bem como um banco de dados que opere com Django. Nativamente, a loja online usa SQLite3, com MySQL ou PostgreSQL como alternativas. A versão Satchmo instalada para teste (v0.9.2) requer Django 1.4. Se existir uma nova versão do Django, é necessário fazer o downgrade. Embora a instância de desenvolvimento inclua um servidor próprio, os desenvolvedores do Satchmo recomendam um servidor web com um adaptador Python para uso em produção (por exemplo, o Apache com o módulo mod_wsgi).

Antes de instalar o Satchmo, é necessário preparar o sistema e instalar o Pip, um gerenciador de pacotes de módulos Python, bem como Mercurial, o GNU Compiler Collection e o pacote python-devel. O site do projeto oferece uma documentação detalhada para uma instalação rápida e um guia passo a passo. Com a ajuda do Pip e do script clonesatchmo.py, tudo isso pode ser feito em um curto espaço de tempo. Quando solicitado, o usuário digita os dados de login de administrador desejados, então muda para o subdiretório recém-criado da loja e inicia a instância de teste, digitando:

python manage.py runserver

Por padrão, o servidor escuta na 127.0.0.1:8000. Para aceitar conexões de outros hosts, os administradores definir o endereço IP para a porta, como em:

python manage.py runserver 0.0.0.0:8000

O painel de administração não impressiona exatamente pela clareza. Como as entradas não são ordenadas de forma lógica, mas em ordem alfabética, os itens de menu mais acessados ​​na rotina diária de vendas estão escondidos na parte inferior da página. Os administradores devem planejar o tempo suficiente não só para a configuração inicial de uma loja online, mas também para expandir e recolher os numerosos menus. Se o desenvolvedor já tiver experiência com o Django, deve avançar mais rapidamente no aprendizado.

Ao contrário dos concorrentes, o Satchmo não faz distinção entre funcionários e clientes e gerencia todos os usuários e grupos através do item de menu Auth. Quando se trata de direitos de acesso, o software conta com flags opcionais, como Staff e Super User. Abaixo dele há um campo em que o administrador pode conceder acesso individual às áreas do painel de administração. O campo também aparece na seção de gerenciamento de grupo, por isso é possível atribuir direitos de uma maneira muito granular (figura 3). O recurso de importação e exportação de informações de clientes e funcionários também não está presente; no entanto, o Satchmo possui o item Export Product Defs no menu ao lado direito do painel administrativo, abaixo de Admin Tools, que permite exportar todos os dados de produtos, incluindo imagens e categorias, e armazená-los em XML, JSON e formatos YAML. Esse backup também inclui informações sobre o número de artigos individuais disponíveis e vendidos. O sistema da loja importa arquivos de backup no mesmo local. Ambas os recursos são marcados como experimentais na versão atual.

Figura 3: O Satchmo é o único candidato de teste que não faz distinção entre funcionários e clientes e possui um único ponto de controle para os privilégios de acesso e associações de grupos.
Figura 3: O Satchmo é o único candidato de teste que não faz distinção entre funcionários e clientes e possui um único ponto de controle para os privilégios de acesso e associações de grupos.

O que temos de bom

Temas pré-fabricados para ajudar a variar o visual estão em falta. Se o desenvolvedor quiser “decorar” uma loja criada pelo Satchmo, precisará manipular o código HTML e o CSS diretamente. Solicitações para novos temas são feitas nos fóruns de usuários mas passaram despercebidas até o momento. A maioria das lojas linkadas como referência para compra ou download de temas e templates do Satchmo encontram-se fora do ar e, portanto, falharam ao servir de inspiração.

Figura 4: O Variation Manager no Satchmo ajuda o administrador a adicionar diferentes versões de produtos para a loja online.
Figura 4: O Variation Manager no Satchmo ajuda o administrador a adicionar diferentes versões de produtos para a loja online.

Assim como acontece com o OpenCart, um programa Python classifica os produtos em categorias e subcategorias. Os clientes os acessam em um menu à esquerda na página da loja. Na seção de produtos, os administradores também podem atribuir descrições, opções e atributos aos artigos. O item Configurable Products (Produtos Configuráveis) permite gerar variantes e definir projetos diferentes para determinados artigos (figura 4). Assim como o resto da interface, o trabalho envolve muitos cliques e apontamentos antes de tudo ficar pronto. O recurso de busca do Satchmo é muito simples. Os usuários digitam termos simples na caixa de busca, e o programa retorna os produtos e categorias correspondentes e avalia os títulos e descrições. O Satchmo interpreta automaticamente duas entradas como uma operação AND e exibe apenas os resultados que correspondem a ambos os critérios. O uso de aspas não altera os resultados. Não há opção para o envio de review dos usuários.

O Satchmo inclui vários módulos pré-instalados para a interface de pagamento, a maioria dos quais servem ao mercado internacional. Métodos de pagamento comumente utilizados na Europa incluem PayPal e Google Checkout. Os desenvolvedores também têm implementado módulos para fornecedores como Sermepa, Cybersource.net e Trust Commerce, entre outros. Alternativamente, o Satchmo suporta a opção de pagamento na entrega e cupons de desconto. Contudo, recursos e extensões para a cooperação com sistemas de CRM estão em falta.

Quadro 1: Plugins em WordPress para lojas online

Fácil de usar, oferece várias opções de design e está disponível em vários idiomas – o WordPress [10] é um dos sistemas de gerenciamento de conteúdo mais populares. Todos os dias, designers e desenvolvedores publicam novos temas e plugins; assim, uma série de extensões já estão disponíveis para converter sites em WordPress em pequenas e médias plataformas de vendas. Um sistema muito popular é o WooCommerce da empresa norte-americana WooThemes. O plugin em si é gratuito e é suficiente para uma loja simples. No entanto, uma variedade de extensões premium estão disponíveis para a adaptação de funções especiais, tais como guias de remessas, faturas e interfaces de pagamento adicionais.

A wpShopGermany é bastante difundida na Alemanha. Ela ajuda os usuários a operar lojas virtuais de acordo com a legislação alemã, integra-se bem com temas já existentes, está disponível em vários idiomas e oferece gateways para os modos de pagamento típicos da Alemanha, além de ajudar os vendedores a emitir boletos e criar vouchers. Os usuários podem testar o plugin por 14 dias gratuitamente, após o qual precisam pagar entre 25 e 150 euros, dependendo de licença. Pequenas soluções como Tinypass e Sell Media são destinadas principalmente a usuários que desejam vender conteúdo digital, como artigos, fotos, ou algo semelhante em um site WordPress. O Tinypass é gratuito mas não é publicado sob uma licença livre; o registro no site do provedor é necessário. O Sell Media está licenciado sob a GPLv2. O plugin em si também é gratuito. Extensões comerciais permitem que os usuários façam o upgrade para incluir recursos como descontos, uma função de marca d’água, e assim por diante.

LemonStand

LemonStand é o terceiro candidato ao teste e é baseado em PHP. A ferramenta, produzida no Canadá, está disponível sob uma licença comercial e custa menos de 500 dólares americanos após um período experimental de 30 dias, durante o qual nenhum processo de pagamento real é possível. E esse não é o único limão azedo que os usuários do programa são forçados a chupar. Alguns módulos e temas para estender os recursos estão disponíveis gratuitamente do LemonStand Marketplace, enquanto outros custam de algumas várias centenas de dólares.

Nossos testes analisaram a versão 1. Quem estiver interessado em desenvolvimentos futuros e quiser manter-se informado sobre o progresso da LemonStand 2 e sua versão em nuvem deve acompanhar o blog do desenvolvedor. O software da loja requer um sistema LAMP: Apache 2, PHP versão 5.2.5 ou superior e MySQL 4.1, pelo menos, sendo recomendada a versão 5. Além disso, são requeridas as bibliotecas OpenSSL, PHP Mcrypt e cURL; o SOAP PHP é opcional. O ImageMagick também deve estar instalado; o navegador precisa de um plugin flash para desenhar gráficos no painel de administração e fazer o upload de arquivos. A documentação se esquece de mencionar a necessidade do pacote php-xml, mas se ele estiver ausente e o administrador importar a versão PHP do tema Zest, toda a instalação irá falhar por conta de dependências não atendidas da engine do template.

Antes de instalar, é necessário criar um banco de dados MySQL. Em seguida, descompacte o arquivo lemonstand_installer.zip no diretório do servidor web de sua preferência. É preciso definir a opção de configuração do Apache All AllowOveride para a pasta e habilitar mod_rewrite. No navegador, chame o script install.php, aceite o contrato de licença e digite seu nome, as chaves de licença associadas, e as informações do banco de dados. O usuário pode escolher um identificador próprio para a área administrativa da loja; isso oferece um pouco mais de paz de espírito, quando confrontado com ataques automatizados de botnets. É possível alterar o nome do diretório especificado durante a instalação a qualquer momento no arquivo config/config.php.

A rotina de instalação do LemonStand gera uma senha adicional para conteúdos sensíveis do banco de dados, que por sua vez deverá ser mantida em um lugar seguro. Ela será necessária, entre outras coisas, para acessar os dados de inventário para uma nova instalação ou para migrar o servidor. A documentação não revela detalhes de criptografia. Além da conta de administrador, o desenvolvedor precisa criar uma outra conta privilegiada que garanta acesso à loja real e uma conta para a configuração do banco de dados e criptografia. As tarefas administrativas diárias são realizadas com a conta de administrador. Como etapa final, o usuário pode importar um tema opcional e dados de exemplo para a loja. Depois disso, é necessário excluir o arquivo install.php e o diretório installer_files do servidor. Os desenvolvedores da ferramenta recomendam mover o arquivo config.dat para um diretório fora da raiz do servidor web e, concomitantemente, modificar o arquivo config/config.php.

Assim como o OpenCart, o LemonStand oferece ao administrador um painel com uma visão geral da loja e gráficos estatísticos. O primeiro passo da instalação é pressionar o botão de menu na margem esquerda, o que leva o usuário para System/Settings (Sistema/Configurações). À primeira vista, a interface parece mais organizada que a de seus concorrentes, mas a impressão é rapidamente colocada em cheque. As etapas de configuração individuais nem sempre são intuitivas. Por exemplo, se o usuário quiser excluir um país da sua zona de entrega, não deve perder seu tempo em busca de botão para desativar o recurso. Em vez disso, deve simplesmente não fazer tal escolha no menu pop-up que aparece após pressionar o botão Enable or disable (Ativar ou desativar).

Retornável?

LemonStand distingue meticulosamente entre clientes e funcionários. O sistema gerencia os clientes em Store/Customers (Loja/Clientes) e funcionários em System/Users (Sistema/Usuários). Os clientes não têm direitos especiais, mas o sistema os divide em grupos, como atacadistas ou varejistas (figura 5). O operador da loja pode definir diferentes preços ou taxas para diferentes grupos de clientes. A importação e exportação baseada em CSV também está inclusa. O administrador pode facilmente atribuir ou revogar privilégios para os colegas. O software da loja online também suporta funções para a própria loja, um blog relacionado e um sistema próprio para gerenciamento de conteúdo.

Figura 5: O LemonStand é o único sistema no teste que atribui clientes aos grupos e, assim, oferece preços especiais para atacadistas e revendedores.
Figura 5: O LemonStand é o único sistema no teste que atribui clientes aos grupos e, assim, oferece preços especiais para atacadistas e revendedores.

Os administradores encontrarão a seleção de produtos e a orientação do usuário na loja no painel abaixo de Categories and Products (Categorias e Produtos). Nossa equipe de teste aprovou a interface lógica do LemonStand, o melhor de todos os candidatos. Os produtos possuem atributos, opções e extras que podem ser acessados ​​diretamente de guias na janela de configuração, ao invés de itens extras de menu. O usuário ainda pode designar atributos que define a outros produtos, reduzindo assim a necessidade de alternância e a tendência a cometer erros por descuido. A seção de administração de produtos também inclui funções para exportar e importar uma série de produtos e encomendas em formato CSV. O LemonStand também possui um módulo de backup e restauração que pode lidar com dumps de SQL e ainda cobre imagens de produtos associados e outras mídias.

As ofertas de temas são gerenciáveis​​. Cerca de metade dos 20 skins estão disponíveis gratuitamente. O estilo mais caro com web design responsivo custa pouco menos de 90 dólares americanos. O administrador os gerencia na área do painel abaixo de CMS. Outras funções permitem a escolha de um estilo diferente para clientes específicos, permitindo que a loja se ajuste em telas menores e maiores. A função de busca do LemonStand impressionou no teste, porque permite que o administrador intervenha no que pode ser pesquisado, como descrições de produtos e até mesmo de metadados. A caixa de pesquisa aceita strings e curingas. As opções de filtro na visão geral do produto também estão bem implementadas, mantendo a loja bem definida, mesmo com uma grande variedade de estoque. Os desenvolvedores também incluem um sistema para comentários de clientes.

Figura 6: O LemonStand implementa nativamente algumas interfaces para opções de pagamento. Para cada modo de cobrança é possível determinar quais grupos de clientes estão autorizados a usá-lo.
Figura 6: O LemonStand implementa nativamente algumas interfaces para opções de pagamento. Para cada modo de cobrança é possível determinar quais grupos de clientes estão autorizados a usá-lo.

Várias opções de pagamento, incluindo PayPal (figura 6), cartões de crédito e Google Checkout são integradas diretamente. Os operadores podem recorrer ao Marketplace para os módulos que implementam outras interfaces, incluindo a transferência imediata, agora amplamente utilizada na Europa. Uma olhada na coleção de extensões é válida em qualquer caso, com extensões para conectar o LemonStand com os sistemas Infusionsoft e OneSaas CRM.

Conclusão

Não há nenhum vencedor claro no balanço final da nossa análise. Tanto o OpenCart como o LemonStand são sistemas úteis, cada um dos quais só necessitanto de algumas pequenas coisas para fazer um operador loja completamente feliz. O OpenCart, por exemplo, não contempla uma função para gerenciamento de temas e extensões diretamente do painel. Isso é melhor resolvido pelo LemonStand. No entanto, o LemonStand Marketplace oferece significativamente menos extensões. A comunidade OpenCart parece mais ativa nessa área. O Satchmo não é um sistema ruim, mas acaba por ser muito trabalhoso e confuso em comparação com o LemonStand e o OpenCart. Sem conhecimento de Django, os usuários não se sentirão tão confortáveis com o Satchmo como com os outros candidatos, e a apresentação do produto deixa muito a desejar nas condições de entrega. Sem temas prontos disponíveis, os usuários definitivamente precisão reservar um orçamento para um designer gráfico ou web designer.

Se o usuário já possui um site ou um blog em WordPress [10], pode ser poupar do trabalho de criação de um ambiente de loja próprio, preferindo recorrer a uma extensão (veja o quadro “Plugins em WordPress para lojas online”). A instalação e a configuração não levam muito tempo, e o usuário só precisa manter um sistema. Embora essa abordagem possa ser conveniente para os administradores, devemos sempre lembrar que esse tipo de monocultura de software tende a ser vulnerável ​​a ataques externos.