Upload
buimien
View
217
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE SÃO FRANCISCO
Curso de Engenharia de Computação
FABÍOLA CALIXTO MATSUMOTO
DESENVOLVIMENTO DE APLICAÇÃO DE COMÉRCIO
ELETRÔNICO SEGMENTADO VOLTADO PARA COMPRA
COLETIVA
Itatiba 2011
FABÍOLA CALIXTO MATSUMOTO - RA 002200601359
DESENVOLVIMENTO DE APLICAÇÃO DE COMÉRCIO
ELETRÔNICO SEGMENTADO VOLTADO PARA COMPRA
COLETIVA
Monografia apresentada ao Curso de Engenharia de Computação, da Universidade São Francisco, como requisito parcial para obtenção do título de Bacharel em Engenharia de Computação.
Orientador: Prof. Marcelo Augusto
Gonçalves Bardi.
Itatiba 2011
AGRADECIMENTOS
Em primeiro lugar agradeço a Deus, por permitir e me tornar capaz de tantas coisas
em minha vida. Por me amparar nos momentos de fraquezas. Por fechar janelas e abrir
milhares de portas no caminho que eu escolhi percorrer. A minha família principalmente ao
meu esposo e minha filha que mesmo sentindo minha ausência souberam compreender e
me motivar durante toda a graduação.
E de modo especial me refiro ao professor Marcelo Augusto Gonçalves Bardi pela
sua tão importante orientação, dedicação e disposição constante em todos os momentos da
realização deste trabalho, proporcionando-me grande estímulo e motivação para realização
do mesmo.
RESUMO
O comércio eletrônico, também conhecido por e-commerce ou loja virtual, contribui
para o desenvolvimento, distribuição, produção e vendas pela internet, tornando as
transações mais rápidas e econômicas. Os sites de compras coletivas, apresentam ofertas
de anunciantes com grandes descontos, possibilitando alcançar consumidores que não
seriam atingidos em condições normais, trazendo o cliente para conhecer o seu produto em
promoção e, eventualmente adquirir outros produtos. Dessa forma, o objetivo deste trabalho
é projetar e desenvolver um sistema segmentado de compra coletiva que tem como
diferencial focar uma base de usuários com ofertas específicas aos seus interesses,
discutindo os fundamentos da prática e as metodologias de desenvolvimento inerentes a
essa classe de aplicação Web. O sistema é desenvolvido em Magento que é uma
plataforma completa de comércio eletrônico em código aberto que tem como base o
framework Zend, o que lhe permite a separação em MVC. Adicionalmente, a linguagem
base da plataforma é PHP, banco de dados MySQL além de outras tecnologias, como XML
e AJAX. Neste projeto são abordadas as diversas etapas para a criação, formas de
divulgação e administração de um site de compras coletivas. No qual se obteve uma
solução customizada funcional.
Palavras-chave: E-commerce .tecnologias livres .compra coletiva. magento.
ABSTRACT
Electronic commerce, also known as e-commerce or online store, contributes to the development, distribution, production and sales over the Internet, making transactions faster and more economical. The group sales sites, offers advertisers have deeply discounted, allowing to reach consumers who would not be achieved under normal conditions, bringing the customer to know your product promotion, and possibly acquire other products. Thus, the objective of this work is to design and develop a segmented system of group sale which is a differential focus on user base with offers specific to your interests, discussing the basics of the practice and development methodologies inherent to this class of Web application . the system is developed in Magento which is a complete e-commerce platform in open source is based on the Zend framework, which allows the separation of MVC. Additionally, the language of the platform is based on PHP, MySQL database and other technologies such as XML and AJAX. This project addresses the various stages for the creation, dissemination and forms of administration of a group sale site. In which he obtained a customized solution functional.
Keywords: E-commerce. free technologies. collective purchasing. magento.
SUMÁRIO
1. INTRODUÇÃO ................................................................................................................... 12
2. DESENVOLVIMENTO ........................................................................................................ 13
2.1 Fundamentação teorica .................................................................................................... 13
2.1.1 Histórico da Web ............................................................................................................ 13
2.1.2 Comércio eletrônico ....................................................................................................... 15
2.1.3 Comércio eletrônico voltado para compras coletiva ....................................................... 19
2.1.3.2 O ciclo da compra coletiva ......................................................................................... 21
2.1.3.3 Sites de compra coletiva segmentado ........................................................................ 24
2.1.3.4 Tipos de sistemas de compra coletiva ........................................................................ 25
2.1.4 Frameworks Web .......................................................................................................... 26
2.1.4.1 Zend Framework .......................................................................................................... 27
2.1.4.2 Plataforma osCommerce ............................................................................................. 27
2.1.4.3 Plataforma Magento ................................................................................................... 28
2.1.5 Padrões de Projeto ....................................................................................................... 29
2.1.5.1 Arquitetura MVC ........................................................................................................ 30
2.1.6 Linguagem de programação e ferramentas ................................................................... 31
2.1.6.1 PHP ........................................................................................................................... 31
2.1.6.2 JAVASCRIPT ............................................................................................................. 32
2.1.6.3 AJAX .......................................................................................................................... 33
2.1.6.4 XML ........................................................................................................................... 33
2.1.6.5 Banco de dados ......................................................................................................... 34
2.1.7 Software código aberto ................................................................................................. 35
2.2 MÉTODOLOGIA DE DESENVOLVIMENTO .................................................................... 36
2.2.1 Ferramentas utilizadas ................................................................................................... 36
2.2.2 Diagramas de caso de uso ............................................................................................. 37
2.2.3 Protótipos do site ............................................................................................................ 38
2.2.4 Instalação e configuração do Magento ............................................................................ 39
2.2.5 Interface do Magento ...................................................................................................... 43
2.2.6 Estrutura de arquivos do Magento .................................................................................. 48
2.2.7 Site de compras coletivas customizações ....................................................................... 48
2.2.7.1 Cadastro de cidades para ofertas ................................................................................ 48
2.2.7.2 Criação de categorias e subcategorias ........................................................................ 50
2.2.7.3 Inserindo ofertas para o site ......................................................................................... 55
2.2.7.4 Visualizando promoção na página principal ................................................................. 55
2.2.7.5 Calculando tempo restante da oferta ........................................................................... 56
2.2.7.6 Exibir preço normal e desconto da oferta ..................................................................... 58
2.2.7.7 Exibir quantidade de ofertas vendidas ......................................................................... 59
2.2.7.8 Conexão com redes sociais e microblogs .................................................................... 63
2.2.7.9 Configurações para realização de uma venda ............................................................. 66
2.2.7.10 Configurações de pagamento (PagSeguro) ............................................................... 70
2.2.7.11 Configurações do E-mail marketing ........................................................................... .73
2.2.7.12 Configurações gerais pós venda... ............................................................................. .74
2.2.7.13 Backup do banco de dados ........................................................................................ 78
2.3 RESULTADOS E DISCUSSÕES ....................................................................................... 80
2.4 CONCLUSÃO .................................................................................................................... 82
REFERÊNCIAS BIBLIOGRÁFICAS ........................................................................................ 83
LISTA DE ABREVIATURAS E SIGLAS
AJAX – Asynchoronous JavaScript and XML
ASP – Active Server Pages
ARPANET – Advanced Research and Projects Agency
CERN – Organização Européia de Pesquisa Nuclear
CSAIL – Laboratório da Ciência da Computação e Inteligência Artificial
CMS – Content management system
CSS– Cascading Style Sheets
CPF – Cadastro de Pessoas Físicas
CPU – Central processing unit
FTP – File Transfer Protocol
GNU – General Public Licence
HTML– HyperText Markup Language
MIT – Instituto de Tecnologia de Massachusetts
MVC – Model, View, Controler
MySQL– Structured Query Language
NCP – Network Control Protocol
OSI – Open Source Initiative
OSL – Open Source Lab
PDF – Portable Document Format
POO – Programação Orientada a Objetos
PHP– Hypertext Preprocessor
PHTML – Hypertext Preprocessor Markup Language
RAM – Random Access Memory
RSS – Really Simple Syndication
SEO – Search Engine Optimization
SGDB – Sistema de gerenciamento de banco de dados
SGML – Standard Generalized Markup Language
SQL – Structured Query Language
SSL – Secure Sockets Layer
WAIS – Wide Area Information Service
W3C – Word Wid Web Consortium
XML – Extensible Markup Language
URL – Uniform resource locator
LISTA DE FIGURAS
FIGURA 1: Tim Berners Lee, o inventor da Web ........................................................... 13
FIGURA 2: Computador NeXT ....................................................................................... 14
FIGURA 3: Parte da interface do primeiro navegador criado por Tim Berners Lee ........ 14
FIGURA 4: Etapas do ciclo de compra coletiva ............................................................. 21
FIGURA 5: Modelo de um site de compra coletiva segmentada 1 ................................. 24
FIGURA 6: Modelo de um site de compra coletiva segmentada 2 .................................. 25
FIGURA 7: osCommerce Online demonstração ............................................................. 27
FIGURA 8: Magento Online demonstração ..................................................................... 28
FIGURA 9: Arquitetura MVC em aplicações Web ........................................................... 31
FIGURA 10: Diagrama de caso de uso do ator cliente .................................................... 36
FIGURA 11: Diagrama de caso de uso do ator administrador......................................... 37
FIGURA 12: Diagrama de caso de uso do ator sistema .................................................. 37
FIGURA 13: Protótipo da oferta do dia (página principal) ............................................... 38
FIGURA 14: Protótipo das ofertas anteriores .................................................................. 39
FIGURA 15: Criando subdomínio: http://www.loja.fcmdesign.com.br .............................. 40
FIGURA 16: Criando banco de dados através do cPanel ............................................... 40
FIGURA 17: Criando usuário fabiola ao banco de dados ................................................ 41
FIGURA 18: Todas as permissões foram dadas á usuária fabiola .................................. 41
FIGURA 19: Instalação do Magento ............................................................................... 42
FIGURA 20: Conexão com o banco de dados ................................................................ 44
FIGURA 21: Frontend default do site .............................................................................. 43
FIGURA 22: Painel de login ( interface de administração) .............................................. 44
FIGURA 23: Backend do site (área administrativa) ......................................................... 44
FIGURA 24: Destacando os diretórios app e skin, que abrigam todos os principais ....... 45
FIGURA 25: dentro do diretório app................................................................................ 46
FIGURA 26: dentro do diretório dos layouts contidos na pasta app ................................ 46
FIGURA 27: dentro do diretório dos templates em PHTML, contido na pasta app .......... 47
FIGURA 28: dentro do diretório skin. Esta pasta contém os arquivos CSS, imagens e
arquivos JavaScript ........................................................................................................ 47
FIGURA 29: Projeto website compra coletiva ................................................................. 48
FIGURA 30: Cadastrando a loja da cidade de Itatiba ...................................................... 49
FIGURA 31: Lojas de Itatiba e Morungaba mostrada no backend .................................. 49
FIGURA 32: Visão das cidades de Itatiba e Morungaba ................................................. 49
FIGURA 33: Cadastrando categoria para a loja de Itatiba .............................................. 50
FIGURA 34: Categorias e subcategorias criadas ............................................................ 51
FIGURA 35: Categorias e subcategorias criadas ............................................................ 51
FIGURA 36: Criando atributo quantidade mínima para ativar a oferta ............................ 53
FIGURA 37: Criando Cupom .......................................................................................... 54
FIGURA 38: Criando produto .......................................................................................... 54
FIGURA 39: Informações de produtos ............................................................................ 54
FIGURA 40: Inserindo preço no produto ......................................................................... 55
FIGURA 41: Configurando novos produtos para pagina principal ................................... 55
FIGURA 42: Relógio Regressivo .................................................................................... 58
FIGURA 43: Exibindo Desconto ...................................................................................... 59
FIGURA 44: 10.000 Cupons ........................................................................................... 61
FIGURA 45: Quantidade de ofertas vendidas ................................................................. 62
FIGURA 46: Avisar um Amigo ........................................................................................ 65
FIGURA 47: Após clicar em “Compartilhe no Facebook”. ............................................... 65
FIGURA 48: Configuração para desativar pedido de visitante e exibir termos e
condições ....................................................................................................................... 67
FIGURA 49: Campos adicionais para clientes ................................................................ 68
FIGURA 50: Criando conta vendedor ............................................................................. 70
FIGURA 51: Modelo de uma conta vendedor ................................................................. 71
FIGURA 52: Ativando URL de retorno ............................................................................ 71
FIGURA 53: Token de segurança gerado ....................................................................... 72
FIGURA 54: Configurando PagSeguro no Magento ........................................................ 72
FIGURA 55: Criando Termo de Condição ....................................................................... 73
FIGURA 56: 56 – Fila de envio de E-mail marketing ...................................................... 74
FIGURA 56: 56 – E-mail de transação personalizado .................................................... 74
FIGURA 58: Links no rodapé do site............................................................................... 75
FIGURA 59: Alterando URL Padrão................................................................................ 75
FIGURA 60: Alterando Grupo de Clientes ...................................................................... 76
FIGURA 61: Alterando Layout de Categorias ................................................................. 77
FIGURA 62: Desligando Módulos do Sistema ................................................................ 77
FIGURA 63: Relatório de Vendas no Período ................................................................. 78
FIGURA 64: Backup pode ser salvo em lugar seguro ..................................................... 79
LISTA DE QUADROS
QUADRO 1: Dados Globais da empresa GrounpOn ....................................................... 20
QUADRO 2: Dados da empresa GroupOn no Brasil ....................................................... 20
QUADRO 3: Dados da empresa Peixe Urbano ............................................................... 21
QUADRO 4: Código Relógio Regressivo em JavaScript ................................................. 56
QUADRO 5: Código desconto ........................................................................................ 58
QUADRO 6: Código quantidade de ofertas vendidas ..................................................... 59
QUADRO 7: Código exibe mapa de localização da empresa ......................................... 60
QUADRO 8: Código exibe mínimo para ativar oferta ...................................................... 61
QUADRO 9: Código exibe número de ofertas mínima para ativar ofertas. ...................... 62
QUADRO 10: Código para envio de oferta destaque por twitter. .................................... 63
QUADRO 11: Código para compartilhar oferta pelo facebook. ....................................... 64
QUADRO 12: Código para enviar E-mails aos amigos do produto destaque. ................. 64
QUADRO 13: Código exibe mensagem “Siga-nos no Twitter”. ....................................... 66
QUADRO 14: Código em AJAX chama URL checkout para agilizar o processo ao
clicar em comprar. .......................................................................................................... 66
QUADRO 15: Código alterado de 2 colunas para 1 coluna lateral.. ............................... 67
QUADRO 16: Campo sobrenome pode ser apagado ou comentado. ............................. 69
QUADRO 17: Validação dos campos de endereço. ........................................................ 69
12
1 INTRODUÇÃO
Numa sociedade cada vez mais apta à adoção de novas tecnologias, a internet
passou a ser uma ferramenta indispensável na vida das pessoas procurando aumentar a
qualidade de vida e o bem-estar da sociedade. Do ponto de vista econômico, pode ser
utilizada para o comércio eletrônico sendo um diferencial estratégico para os
empreendedores e consumidores, pois é uma oportunidade de atuar em ambiente comercial
global (LASTRES, 1999). O comércio eletrônico, também conhecido por e-commerce ou loja
virtual, contribui para o desenvolvimento, distribuição, produção e vendas pela internet,
tornando as transações mais rápidas e econômicas. Por exemplo, nos Estados Unidos, o
volume de vendas on-line começou a crescer a partir de 1995, com o surgimento da
empresa Amazon, e diversas outras empresas.
Já no Brasil este processo começou cerca de cinco anos depois, com diversas lojas
iniciando suas atividades on-line (FELIPINI, 2011). Desde então, as vendas de e-commerce
não param de crescer no Brasil e no mundo, ainda mais após o surgimento de lojas de
compra coletiva.
Os sites de compras coletivas são uma nova categoria de e-commerce com algumas
particularidades tais como: apresentar ofertas de anunciantes com grandes descontos,
possibilitando alcançar consumidores que não seriam atingidos em condições normais,
trazendo o cliente para conhecer o seu produto em promoção e, eventualmente adquirir
outros produtos.
Visando explorar essa nova modalidade de negócio o objetivo deste trabalho é
desenvolver um sistema segmentado de compra coletiva que tem como diferencial o uso de
ferramentas open souce além de focar uma base de usuários com ofertas específicas aos
seus interesses, discutindo os fundamentos da prática e as metodologias de
desenvolvimento inerentes a essa classe de aplicação web.
13
2 DESENVOLVIMENTO
2.1 FUNDAMENTAÇÃO TEÓRICA
2.1.1 Histórico da Web
De acordo com SILVA (2008), a Web, palavra de origem inglesa que significa teia, é
usada para marcar a rede mundial de computadores, no qual o seu funcionamento é
parecido com uma gigantesca teia de aranha, conectando computadores de todo o mundo.
A história da Web se confunde com a de seu idealizador e desenvolvedor, o físico
britânico Tim Berners-Lee (FIGURA 1). O físico Tim iniciou suas pesquisas durante os anos
1980 quando trabalhava no CERN, com sede em Genebra, visando descobrir uma maneira
que permitisse cientistas de todo o mundo compartilhar seus textos e pesquisas de forma
eletrônica. Assim, como primeira contribuição, define o conceito de hyperlinks (SILVA,
2008).
Fonte: (SILVA, 2008)
FIGURA 1 – Tim Berners Lee, o inventor da Web.
Já em 1990, Tim criou o protótipo do primeiro navegador para rodar em
computadores da NeXT, uma empresa fundada por Steve Jobs em 1985. A FIGURA 2
14
mostra o computador usado por Tim na época, enquanto que a FIGURA 3 mostra partes da
interface do navegador de Tim.
Fonte: SILVA (2008)
FIGURA 2 – Computador NeXT.
Fonte: SILVA (2008)
FIGURA 3 – Parte da interface do primeiro navegador criado por Tim Berners Lee.
15
2.1.2 Comércio eletrônico
E-commerce, comércio eletrônico, comércio virtual ou loja virtual é a forma de
compra e venda por meio da Web. Deste modo, podem-se comprar os mais variados
produtos e serviços através das lojas virtuais, escolher, pesquisar colocar todas as
descrições como modelo, cor, tamanho, formas de pagamento. Ao final do processo, o
cliente recebe, dentro de um prazo determinado, o produto ou serviço em casa (LUPI, 2010).
As lojas virtuais surgiram conforme a Web foi evoluindo, se difundindo e se
popularizando, o que é possível observar na GRAFICO 1 que mostra uma evolução no
aumento em bilhões de compras feitas via Web entre o ano de 2006 a 2010, devido as
tantas facilidades e variedades (ARAYA, 2008).
Fonte: ARAYA (2008)
GRAFICO 1 – Volume de negócios na Web.
Num primeiro momento, o objetivo maior era diminuir o número de pessoas
envolvidas em uma venda, além de auxiliar na globalização da economia através da
diminuição de limites geográficos, parcerias e negócios. Entretanto, logo o modelo de
atendimento ao cliente também foi evoluindo, pois a internet esta o tempo todo disponível
para a troca de informações, por um valor baixo.
No início, algumas empresas implementaram os chamados call-centers, que nada
mais é do que uma infra-estrutura de um centro de atendimento ao cliente. Logo surgiram os
sistemas de informação, os bancos de dados, profissionais de atendimento telefônico e a
interação entre voz e dados, que representa o topo de evolução do atendimento virtual.
Assim, os recursos de telefonia juntamente com sistemas de banco de dados mais uma
16
filosofia de televendas contribuíram para o início do comércio eletrônico que se juntou com
os recursos da internet, browsers, servidores Web e provedores de acesso.
Em virtude disto os clientes podem fazer suas compras a qualquer hora, sem
precisar enfrentar problemas de ordem alheia à sua vontade, como mau-atendimento,
trânsito, entre outros (LUPI, 2010).
Para PEIXOTO (2001), comércio eletrônico tem conceitos diversos formulados sob
diferentes prismas. Segundo o autor:
• Conceito técnico – comércio eletrônico é uma combinação de
tecnologias, aplicações e procedimentos negociais que permitem a compra e
venda on-line de bens e serviços entre governos, sociedades, corporações
privadas e o público. Antes dos fenômenos da internet;
• Conceito econômico – comércio eletrônico é a realização de
toda a cadeia de valor dos processos de negócios, realização esta efetuada
no ambiente digital;
• Conceito administrativo (privado) – comércio eletrônico é um
termo genérico que descreve toda e qualquer transação comercial que se
utiliza de um meio eletrônico para ser realizada. Com o uso de tecnologia se
obtém a otimização do relacionamento da cadeia de suprimentos até o ponto
de venda, bem como a melhora da comunicação entre a empresa e o cliente
final;
• Conceito jurídico – comércio eletrônico é a atividade
comercial explorada através de contrato de compra
e venda com a particularidade de ser este contrato celebrado em ambiente
virtual, tendo por objeto a transmissão de bens físicos ou virtuais e também
serviços de qualquer natureza.
De acordo com BOGO (2000), para entender melhor o funcionamento do comércio
eletrônico torna-se necessário entender um pouco sobre o funcionamento do mecanismo de
atendimento e vendas por telefone, que foi a primeira tentativa de venda virtual que surgiu
no inicio da década de 1980. Segundo o mesmo autor, os seguintes conceitos são inerentes
ao comércio eletrônico:
• Desmaterialização – Trata-se da substituição do contato físico
e do movimento por informações através do telefone, catálogos ou até
mesmo um contato virtual;
• Desintermediação – Exclusão de intermediários na cadeia de
venda do produto;
• Grupo de afinidades – São serviços e produtos que possuem
alguma semelhança quando se trata de consumo e divulgação e que
17
oferecem ao consumidor serviços apenas visuais, no qual as características
são inquestionáveis em termos de garantias, qualidade e preços.
Ainda conforme (BOGO, 2000) o mundo virtual, com filosofias de consumo próprias
ainda não claramente estabelecidas e compreendidas, envolve basicamente a facilidade de
manipulação de um browser juntamente com ás necessidades do cliente e a oferta de
produtos e serviços e serviços até a efetivação da compra, segundo os seguintes critérios:
• Buy – Trata-se da facilidade do consumidor de preencher um
pedido de compra onde não existe a necessidade de um contato pessoal.
Essas informações são suportadas por múltiplas formas de pagamento e
deve ser livre de erros e ágil no processamento do pedido de compras;
• Learn – São informações focadas e direcionadas nas
necessidades dos usuários do browser;
• Shop – São informações que se baseiam nas preferências do
consumidor e na sequência de ações no browser, que auxiliam o consumidor
a tomar decisões;
• Support – Trata-se de um atendimento 24 horas por 7 dias
além de toda comunicação referente a pergunta/resposta escrita, além de
contar com uma organização de processos e profissionais que identificam um
problema e encaminham a solução com rapidez.
Além das características próprias de sistemas e-commerce, existem alguns critérios
que são comuns com os sistemas tradicionais de comércio segundo (BOGO,2000), que são:
• Atendimento ao Cliente – É necessário estabelecer um canal
de comunicação preciso, transparente e veloz, pois é muito importante essa
interação no processo de venda, seja virtual ou não, para que os
consumidores continuem sendo clientes;
• Estoque – A maneira de gerenciar deve ser similar a de um
estoque normal, com informações precisas de custo, giro e tempo de
reposição. É muito importante separar fisicamente o estoque dos produtos
vendidos pela Web para ganhar eficiência nas vendas;
• Logística – É importante estar preparado para entregar
produtos com rapidez e individualmente. Levando em consideração que os
custos de transporte não devem ser muito elevados;
• Merchandising – Todos os comerciantes sabem que um
produto bem apresentado sai mais rápido das prateleiras. Na Web isso quer
dizer preços claros, informações completas dos produtos expostos, imagens
18
de qualidade. Deve-se levar em consideração a localização dos produtos.
Enquanto os clientes entram nas lojas atraídas pelos produtos expostos na
vitrine. Na Web, esses produtos ficam na página inicial;
• Monitoramento – Manter sistemas de monitoramento
informatizados e precisos;
• Promoção – Anúncios em jornais, televisão ou revistas estão
sendo substituídos por banners animados, promoções hot sell (promoções
relâmpagos) ou E-mails;
• Pagamento – É necessário oferecer formas de pagamento
diferenciadas na Web, como: boleto, depósito, cheque entre outros;
• Pós-venda – O serviço pós-venda precisa ficar disponível para
os clientes na Web, incluindo normas para devolução de produtos, troca,
perguntas e respostas mais frequentes e informativos periódicos por E-mails
sobre lançamentos, novidades, etc.;
• Segurança – É muito importante que recursos de segurança
sejam utilizados, pois a segurança é um dos pontos mais importantes do
comércio eletrônico, o cliente ainda tem medo de comprar com cartão pela
internet. Portanto processos de encriptação de dados, adoção de SSL devem
ser adotados e comunicados com clareza para o consumidor;
• Vendas – Para obter êxito nas vendas, é muito importante uma
equipe de vendedores motivados e bem preparados. Na Web, isso pode ser
feito com muito mais firmeza e com um custo relativamente menor. Os
serviços e produtos oferecidos precisam apresentar informações detalhadas,
além de apresentar seus diferenciais em relação aos concorrentes, além de
análises de consumidores ou jornalistas referente a qualidade e outras
informações importantes que podem ajudar o cliente a decidir a compra com
mais rapidez.
19
2.1.3 Comércio eletrônico voltado para compra coletiva
De acordo com GAVIOLI (2011) a compra coletiva é uma categoria de loja virtual que
tem como principal objetivo vender produtos e serviços com grandes descontos para certa
quantidade de pessoas.
Segundo FELIPINI (2011) a verdadeira raiz da compra coletiva é chinesa, cuja
população, há muito tempo, tem como costume a associação com outros compradores para
que assim possam conseguir melhores negociações. A infra-estrutura da internet que foi
utilizada como meio para unir e chamar as pessoas para comprar produtos com maiores
descontos foi o grande diferencial do sistema de compra coletiva.
Ainda de acordo com FELIPINI (2011), a definição de compras coletivas pode
adquirir diferentes pontos de vista a partir do ângulo que desejarmos visualizar. Para o
usuário da Web, o sistema de compra coletiva é uma forma de comprar produtos ou
serviços com descontos generosos. Já para o comerciante, é visto como uma ferramenta de
marketing, uma forma eficaz de adquirir clientes em massa. Finalmente, para os
empreendedores, compra coletiva representa um novo seguimento negócio a ser explorado.
Assim, se bem aplicado representa uma excelente oportunidade de negócio para todos os
envolvidos.
Uma das primeiras empresas a aderir a compra coletiva foi o site chinês
TeamBuy.com.cn, que iniciou suas atividades em 2006, dois anos antes que a empresa
GroupOn nos Estados Unidos.
De fato, o modelo era bem simples mas já usava compradores na negociação e a
internet como intermédio ou seja o modelo de compra coletiva já estava presente no modelo
chinês. Mas foi nos Estados Unidos que o modelo de sites de compra coletiva se
desenvolveu e passou a ser utilizado em todo o mundo.
Nos Estados Unidos o primeiro site de compras coletivas foi o GroupOn, modelo
criado por Andrew Mason em novembro 2008. Alguns dados a respeito da empresa são
apresentados nas TABELAS 1 e 2.
20
QUADRO 1 – Dados Globais da empresa GrounpOn
Sede Chicago USA
Atuação Maiores cidades dos Estados Unidos e 29
países
Fundação Novembro 2008
Valor estimado 2011* US$ 5 a 7 bilhões
Capital fechado Fundos privados
Faturamento estimado 2010 US$ 2 bilhões
Lucro estimado 5 milhões
Clientes cadastrados 70 milhões de cadastrados no mundo
Transações realizadas Mais de 50 milhões de cupons vendidos em
todo o mundo.
Valor médio dos descontos 57%
Fonte: FELIPINI (2011);
*Valor estimado por analistas de mercado.
QUADRO 2 – Dados da empresa GroupOn no Brasil
Entrada no Brasil Junho de 2010
Sede São Paulo
Principal executivo Florian Otto _CEO
Cidades ativas 41
Quantidade de clientes cadastrados Quase 10 milhões
Fonte: Felipini (2011)
Já no mercado brasileiro, o sistema de compra coletiva Peixe Urbano foi pioneiro. O
criador foi o jornalista Júlio Vasconcelos e o desenvolvedor de software Alex Tabor, ambos
com experiência na área de internet e tecnologia da informação (FELIPINI, 2011). Alguns
dados a respeito da empresa são apresentados na TABELA 3.
21
QUADRO 3 – Dados da empresa Peixe Urbano
Sede Rio de Janeiro
Fundação Março 2010
Fundadores Julio Vasconcelos, Alex Tabor
Cidades ativas 56
Quantidade de clientes cadastrados Cerca de 10 milhões
Fonte: FELIPINI (2011)
2.1.3.1 O ciclo da compra coletiva
Para que o sistema funcione são necessários um comerciante, compradores
interessados no produto e um site de compra coletiva que vai fazer a intermediação entre
ambos. Segundo (FELIPINI, 2011) existe um ciclo na compra coletiva mostrado na (FIGURA
4) segue descrição:
Fonte: FELIPINI (2011)
FIGURA 4 – Etapas do ciclo de compra coletiva.
22
(I) Comerciante contrata site de compra coletiva: O processo geralmente se inicia com a
decisão do comerciante realizar uma promoção.
Para o fechamento do acordo entre o comerciante e o site, algumas variáveis
importantes devem ser discutidas como, por exemplo; o produto ofertado, o desconto
oferecido, o prazo de encerramento da oferta e a duração da oferta. O percentual da venda
repassado ao site de compra coletiva também depende do volume de venda dos cupons,
sendo parte totalmente interessada no sucesso dessas vendas e deverá utilizar sua
experiência na montagem de uma campanha de sucesso.
Nos dias atuais alguns setores de negócios como restaurantes, prestadoras de
serviços de beleza e estética, concentram a maior parte das ofertas, porém a tendência será
ampliar cada vez mais o seu alcance incluindo novos produtos.
(II) Site de compra coletiva divulga a oferta: O site de compras coletivas tem o papel de
intermediar entre o comerciante e o cliente. Ele é um tipo de corretor que recebe uma
comissão de até 50% do valor das vendas, deste modo seu interesse é que as vendas
sejam concretizadas e que o comprador fique satisfeito com o produto. Para isso serão
montadas páginas de divulgação no site, além de peças publicitárias para chamar a atenção
dos compradores na internet. A ferramenta mais importante utilizada neste tipo de negócio é
o E-mail marketing.
Os sites de compra coletiva possuem um imenso cadastro de clientes interessados e
diariamente é enviado pelo menos um E-mail com novas ofertas.
Além de E-mail marketing, campanhas são realizadas na internet em inúmeros
portais com o objetivo de atrair novos clientes. O número de usuários cadastrados por
alguns dos maiores sites do Brasil já atingiu um volume relativamente grande, como, por
exemplo; Groupon: 10 milhões; Peixe urbano: 8 milhões; ClickOn: 6 milhões; Oferta única: 2
milhões. Porém é desconhecida a quantidade exata de usuários, até mesmo porque grande
parte das pessoas se cadastra em mais de um site.
(III) Comprador adquire a oferta: É nesta etapa que o comprador aparece. O comprador
pode ter recebido o E-mail do site de compra coletiva, se o mesmo já tiver se cadastrado ou
pode ter se interessado por algum anúncio de oferta. De qualquer maneira o comprador
deverá estar cadastrado no site para que possa efetuar uma compra. O cadastro é muito
simples de ser feito, após o cadastro e a confirmação do cadastro através da resposta a um
E-mail, o usuário passa a receber ofertas enviadas por E-mail diariamente. O processo de
compra também é bem simples. Após a leitura das condições da oferta, basta clicar no
botão comprar e pagar o cupom com cartão de crédito ou transferência bancária. Essa
23
operação é realizada em um ambiente seguro das operadoras de cartão ou bancos. É
necessária uma quantidade mínima de compradores para que a oferta seja validada.
(IV) Site gerencia pagamentos e entrega de cupons: O pagamento é feito no próprio site,
a liberação do cupom, fica disponível para o usuário na página de gerenciamento. Logo
após o período de oferta, o site de compra coletiva repassa as informações ao comerciante,
já descontando o valor da comissão.
Uma questão que gera algumas dúvidas é referente aos tributos sobre as transações
ocorridas. Há duas transações no sistema de compra coletiva no qual a primeira é uma
prestação de serviço do site de compra coletiva para o comerciante. Então, deve ser emitida
uma nota fiscal de serviço pelo site de compra coletiva no valor acordado. A segunda
transação ocorre entre o comprador e o comerciante no momento de adquirir o produto ou
utilizar o serviço. Assim o comerciante deve emitir a nota fiscal constatando o valor do
produto e o valor final com o desconto.
A nota fiscal pode ser de venda ao comprador, no caso de um restaurante, por
exemplo, ou de prestação de serviços. Conseqüentemente o comerciante é o emissor da
nota fiscal e responsável pelo pagamento dos tributos devidos. Algumas dúvidas podem
surgir com relação a responsabilidade fiscal pelo fato do comprador pagar o cupom para o
site de compra coletiva, mas ele é apenas um intermediário, pois quem esta vendendo um
produto é o comerciante. Uma situação parecida ocorre com os integradores de meios de
pagamento, como é o caso do PagSeguro. Eles também prestam um serviço ao
comerciante que inclui o recebimento do valor e o repasse do pagamento, mas, assim como
os sites de compra coletiva, não são responsáveis pelo tributo, por serem apenas
intermediários prestadores de serviços.
(V) Comprador recebe o produto adquirido: Com o cupom em mãos, o comprador pode ir
até o local de entrega do produto e receber ou utilizar o serviço. O prazo de validade pode
variar de acordo com a promoção e o produto, mas geralmente giram em torno de cinco
meses após a aquisição.
Logo após o recebimento do cupom, o comprador pode retirar o produto dentro de
um prazo de validade pré-estabelecido. A oferta indicará o prazo inicial e final para a
utilização do cupom de acordo com a conveniência do comerciante e também do site de
compra coletiva.
Os comerciantes evitam encaixar as promoções em períodos ou dias de movimento,
para não criar problemas que afetem a qualidade no atendimento.
24
2.1.3.2 Sites de compra coletiva segmentado
De acordo com VALLE (2011) o empreendedor digital enfrenta atualmente um
cenário favorável e desafiador. O acompanhamento de ofertas em sites de compra coletiva
já se transformou em um hábito em grande parte dos internautas, o que inclusive já causou
a primeira conseqüência dos sites de compra coletiva, os sites agregadores de ofertas como
o Save.Me. A tendência é que esse comportamento venha a ser seguido pelos novos
usuários que chegam ao mercado, principalmente os que pertencem às classes C e D, os
novos e importantes participantes do mercado digital que já respondem por mais de 50%
das compras online. O desafio portanto é desenvolver uma estratégia que não só atraia
estes novos usuários, mas que também os fidelize transformando-os em visitantes assíduos
dos sites de ofertas.
O caminho natural dos sites de compra coletiva daqui para frente é a segmentação e
já estamos vendo isso acontecer como mostra a FIGURA 5 e FIGURA 6. Recentemente
foram lançados sites de compra coletiva altamente segmentados, como os que tem como
destaque pet shops, mercado rural, hoteleiro e até de cursos online. As opções são as mais
variadas possíveis e o que cria o diferencial é o foco em uma base de usuários altamente
segmentada e ofertas focadas nos interesses dessa base, o que é a tendência que se
desenha no cenário atual.
Fonte: <http://www.valejunto.com.br/compra-coletiva/ofertas.php>
FIGURA 5 – Modelo de um site de compra coletiva com segmentação.
25
Fonte: <http://radardedescontos.com.br>
FIGURA 6 – Outro modelo de um site de compra coletiva com segmentação.
2.1.3.3 Tipos de sistemas de compras coletivas
De acordo FAUST (2011) os principais tipos de sistemas de compras coletivas são:
Scripts de compra coletiva: Muitos desses tipos de sites foram traduzidos para o
português e adaptados para necessidades brasileiras, e encontram-se à venda pela rede.
Há inclusive, versões gratuitas, de código aberto que prometem rodar as promoções ofertas
diárias. Porém essa opção é indicada apenas para empreendedores com conhecimentos
tecnológico avançado, é preciso fazer customizações que se bem feito pode salvar muito
tempo e dinheiro.
Plataformas prontas: Essa é uma opção que vem cada vez mais sendo utilizada. No Brasil,
ClickOn e Peixe Urbano fizeram associações com grandes companhias de mídia, rodando
sistemas em um tipo de parceria. Mas essas são negociações de grande porte, que
envolvem grandes marcas dos dois lados. Já entre sites menores, está se tornando cada
vez mais comum a associação para o compartilhamento de plataformas.
Sistema próprio: Mais indicado para quem tem conhecimentos em programação,
experiência com companhias de internet ou fácil acesso a desenvolvedores, além de saber
exatamente o que quer. Porém as dificuldades de se desenvolver um sistema são inúmeras,
por isso indicada apenas para especialistas pois os riscos são vários. Desenvolver um
26
sistema desde o início, pode acabar sendo uma alternativa até mais cara do que usar um
sistema pronto. Porém se bem desenvolvido, os benefícios são exclusivos além de uma
solução única do mercado.
2.1.4 Frameworks Web
Quando uma empresa procura implementar um sistema de comércio eletrônico de
forma a agilizar seus negócios e se tornar mais competitiva, ela possui uma série de
soluções técnicas e comerciais para escolher, incluindo soluções empacotadas ou seja
soluções baseadas em um framework BOOCH(2004).
Uma solução baseada em framework tem como paradigma a capacidade de se
desenvolver e implantar novos componentes independentes, dividindo uma solução
completa em partes menores que incorporam, além da codificação, a análise e o projeto de
uma funcionalidade da solução. O framework poderia ser evoluído continuadamente com a
criação de novos componentes responsáveis por novas funcionalidades individuais de cada
componente utilizado.
Os componentes são facilmente reutilizáveis, pois constituem blocos independentes,
com interfaces bem definidas. Assim os benefícios de usar um framework de qualidade
usando código aberto são claros em termos de:
• Redução de custos;
• Redução de time-to-market;
Motivos:
• Maximização de re-uso (análise, design, código, testes);
• Desenvolvedores se concentram em adicionar valor em vez de reinventar o
que já existe;
• Menos manutenção;
• Melhor consistência e compatibilidade entre aplicações;
• Alavancagem do conhecimento de especialistas;
• Framework oferece uma forma de empacotar o conhecimento de especialistas
sobre domínios de problemas;
• Assim, não se perde o conhecimento com a saída de especialistas e o
conhecimento pode ser usado/estudado sem a presença do especialista.
27
2.1.4.1 Zend Framework
O Zend Framework é um framework para aplicações Web de código aberto,
orientado a objetos, que utiliza PHP 5. Foi lançado em 2005 sobre a licença New BSD
Licence, aprovada pela OSI. O Zend Framework, muitas vezes chamado de ZF, foi criado
para ser uma plataforma leve e flexível, que segue as melhores práticas de programação, já
tendo sido adotado por várias grandes corporações incluindo a IBM, Adobe e Oracle
(MCCOMBS e BANH, 2009).
2.1.4.2 Plataforma osCommerce
Conforme o site oficial osCommerce (2011), este é um framework voltado para o
comércio eletrônico lançada em março de 2000, que permite funcionalidades de loja on-line
para ser configurada rapidamente com facilidade.
E está disponível gratuitamente pois é baseada na filosofia open source, é
desenvolvido em PHP e MySQL.
O osCommerce conta com uma comunidade grande e ativa, no qual os membros
discutem questões referentes ao desenvolvimento do mesmo, a (FIGURA 7) exibe um
modelo de loja com a plataforma.
Fonte: <http://demo.oscommerce.com>
FIGURA 7 – Demonstração osCommerce Online.
28
2.1.4.3 Plataforma Magento
Segundo MCCOMBS e BANH (2009) o Magento é uma plataforma de comércio
eletrônico open source lançado oficialmente em março de 2008 por Varien (FIGURA 8).
O Magento é baseado no Zend Framework o que possibilitou à Varien desenvolver o
Magento em um intervalo de tempo relativamente curto, além de permitir a separação em
Model-View-Controler (MVC), podendo ser personalizado tendo conhecimentos de HTML,
CSS, XML, MySQL, PHP para customizações mais avançadas.
Fonte: <http://www.magentocommerce.com/demo>
FIGURA 8 – Demonstração Magento Online.
Uma das grandes vantagens do Magento é que ele permite que sejam projetados
múltiplos websites que podem compartilhar da mesma interface, não sendo preciso se
conectar a múltiplos locais para administrar vários websites, ou seja o Magento tem
capacidade de administrar todos em um único backend.
O mesmo ainda oferece suporte a mais de 60 idiomas, múltiplas moedas e taxas de
impostos. Isso oferece habilidade de expandir seu negócio facilmente mundialmente
(MCCOMBS e BANH, 2009).
O CMS possui em sua estrutura de arquivos em três seções principais: núcleo
(core), funcionalidade e design. Isso permite fácil atualização de imagens e estilos CSS,
sem afetar a funcionalidade do site. A funcionalidade da loja também pode ser customizada
29
sem afetar o core do Magento. Como resultado, é possível modificar o programa sem que as
atualizações futuras afetem a atual. Oferece também várias funções para emissão de
relatórios, que permitem fácil visualização dos relatórios de vendas, produtos mais vendidos
e informações dos consumidores. Além de ter um grande apoio da comunidade, conta com
um fórum publico e monitoramento de bugs, também tem seu próprio repositório publico de
extensões chamado Magento Connect.
Uma vez que o Magento está licenciado sob licença de tipo OSL, a Magento
Community Edition encontra-se disponível sem qualquer custo adicional.
Assim permite que os desenvolvedores e proprietários de websites de E-commerce
possam diminuir seus custos com softwares.
2.1.5 Padrões de Projeto
Os padrões de projeto também conhecido como Design Patterns propõe soluções
para problemas relacionados ao desenvolvimento de software orientados a objetos.
GAMA (1995) relata que a idéia de padrões foi apresentada por Christopher
Alexander em 1977 no contexto de Arquitetura (de prédios e cidades):
“Cada padrão descreve um problema que ocorre repetidamente de novo e de novo em
nosso ambiente, e então descreve a parte central da solução para aquele problema de uma
forma que você pode usar esta solução um milhão de vezes, sem nunca implementa-la duas
vezes da mesma forma.”
PIMENTEL (2010), diz que os padrões de projetos podem ser classificados em três
tipos diferentes:
Padrões de criação: Está relacionado ao processo de criação de objetos a partir da
instanciação de classes.
Padrões estruturais: Os padrões estruturais se preocupam com a forma como as
classes e objetos são compostos para formar estruturas maiores.
Padrões comportamentais: Preocupam-se com algoritmos e a atribuição de
responsabilidade entre objetos ou seja é a maneira na quais objetos interagem.
30
2.1.5.1 Arquitetura MVC
De acordo com GAMA (2000) o MVC tem como principal objetivo: separar dados
(Model) da interface do usuário (View) e o fluxo da aplicação (Controller) conforme mostra a
FIGURA 9.
Consiste em três elementos, conforme descrito abaixo:
Modelo ou Model: Representa os objetos de dados. É o que está sendo manipulado
e apresentado ao usuário.
Visão ou View: Apresentação do modelo na tela. É o objeto que apresenta o estado
dos objetos de dados.
Controlador ou Controller: Define a forma com que a interface com o usuário reage
às entradas de um usuário, ou seja, manipula o objeto.
A ideia é permitir que uma mensagem da lógica de negócios possa ser acessada e
visualizada através de várias interfaces. Na arquitetura MVC, á lógica de negócios, ou seja,
o Model não sabe quantas nem quais as interfaces com o usuário esta exibindo seu estado,
a view não se importa de onde esta recebendo os dados, mas ela tem que garantir que sua
aparência reflita o estado do modelo, ou seja, sempre que os estados do modelo mudam, o
modelo notifica as view para que as mesmas atualizem-se (BAPTISTELLA, 2010).
Suas principais características são:
Separação entre os códigos, View e Controller que gerencia as relações entre
o Model e a View.
Separa a lógica de negócios da apresentação.
Possui re-usabilidade, é possível criar bibliotecas e adicionar interfaces
facilmente.
É possível desenvolvê-lo em paralelo, ou seja, pode começar o projeto por
qualquer camada.
Divide as responsabilidades, ou seja, programadores na programação e Web
designers na construção visual do software.
Reduz o esforço na manutenção do software, pois as alterações são
efetuadas separadamente não afetando as outras camadas do sistema.
31
Fonte: GAMMA (2000)
FIGURA 9 – Arquitetura MVC em aplicações Web.
Ainda de acordo com GAMMA (2000), os padrões de projetos auxiliam para um
melhor entendimento d a arquitetura MVC, no qual é possível perceber que por traz do MVC
pode conter um conjunto de padrões em uma mesma estrutura trabalhando juntos como por
exemplo padrão comportamental e padrão estrutural.
2.1.6 Linguagem de programação e ferramentas
2.1.6.1 PHP
A linguagem utilizada no projeto é o PHP, que é uma linguagem de script, muito
utilizada para o desenvolvimento de aplicações Web e pode ser embutida no HTML.
De acordo com o site oficial do PHP, as maiores vantagens para a escolha do PHP
como linguagem de programação são: Eficiente suporte matemático, sistema
multiplataforma, suporte a um grande número de banco de dados, código aberto além da
simplicidade que oferece em contraposição aos recursos avançados de que dispõe a
32
linguagem. Cada porção de código PHP é iniciada pela instrução de processamento <?php
e finalizada pela instrução ?>.
O código é executado do lado do servidor, gerando HTML que então é enviado para
o cliente, onde o cliente pode receber os resultados da execução do script, mas não pode
ver o código fonte.
A linguagem possui diversas funcionalidades como: coletar dados de formulários,
gerarem páginas com conteúdo dinâmico ou enviar e receber cookies entre muitas outras
funcionalidades.
2.1.6.2 JavaScript
De acordo com SILVA (2010) JavaScript é uma linguagem desenvolvida para rodar
do lado do cliente ou seja a interpretação e o funcionamento da linguagem dependem de
funcionalidades do navegador do usuário que tem um interpretador JavaScript hospedado
no navegador, então para que a linguagem possa ser executada é preciso um navegador..
Tanto a Microsoft quanto a Netscape desenvolveram interpretadores JavaScript para
serem hospedados no servidor, tornando possível rodar JavaScript no lado do servidor. A
empresa Mozilla lançou duas versões do interpretador: Spider Monkey escrita em C e Rhino
escrita em Java.
Com o JavaScript é possível escrever marcação HTML e inserir a marcação dentro
de um documento já existente, como: Inserir data/hora, inserir mensagem de boas vindas,
gerar HTML de uma página, controlar o comportamento do navegador como: mostrar
mensagens ao usuário, criar janelas pop-up, alterar as dimensões do navegador, fechar e
abrir janelas, interferir na barra de status, retirar menus, interagir com formulários, interagir
com outras linguagens dinâmicas, além da linguagem suportar programação orientada a
objetos.
33
2.1.6.3 AJAX
AJAX refere-se a um conjunto de tecnologias que tem como objetivo o carregamento
de conteúdos de uma página Web com o uso de JavaScript e XML, HTML, PHP, ASP ou
qualquer linguagem de marcação ou programação capaz de ser recuperada de um servidor
(SILVA, 2010).
O AJAX agiliza as tarefas de requisição ao servidor, ou seja, com ele é possível
renderizar uma página, utilizando recursos de scripts rodando pelo lado cliente, buscando e
carregando dados em background sem a necessidade de reload da página. Esta técnica só
funciona graças a linguagem JavaScript no qual é totalmente dependente (ROSA, 2009).
Em uma aplicação Web comum o navegador precisa buscar as informações no
servidor e retornar para o cliente, no AJAX acontece de outra maneira. Quando ocorre o
carregamento da página, toda a lógica de processamento é passada para o cliente. Então
quando o usuário faz uma requisição, quem busca e traz essas informações é o JavaScript
de forma assíncrona que impede que aconteça o reload na tela. O script fica responsável
pelo tratamento dos dados e formato de exibição.
Inicialmente o processo é mais lento que normalmente devido ao fato de que muitas
informações estão sendo pré-carregadas. Logo, o site se torna mais rápido pois somente os
dados são carregados (ROSA, 2009).
2.1.6.4 XML
XML é uma linguagem de marcação de dados extensível no qual provê um formato
para descrever dados estruturados que facilita declarações mais precisas do conteúdo.
É uma linguagem utilizada para descrever outras linguagens no qual permite que o
usuário defina a própria marcação. XML é escrito em SGML, uma metalinguagem padrão
para marcação de texto (NESI,2009).
34
2.2.5 Banco de Dados
De acordo com SILBERCHATZ (2006) um SGDB, trata-se de uma coleção de dados
inter-relacionados e um conjunto de programas para acessar esses dados. A coleção de
dados normalmente é conhecida como banco de dados no qual pode conter informações
importantes de uma empresa.
O objetivo principal de um SGDB é fornecer uma maneira de recuperar informações
de um banco de dados eficientemente.
O sistema de banco de dados precisa garantir a segurança das informações
armazenadas, além do mais o gerenciamento de dados envolve definir estrutura para que
informações possam fornecer mecanismos para manipulação de informação.
Algumas aplicações do banco de dados:
-Banco: Para transações bancárias, informações de clientes, empréstimos, contas.
-Transações de cartões de crédito: Para compra com cartão de crédito.
-Vendas: Para informações de cliente produto e compra.
O banco de dados utilizado no projeto é o MySQL que é um SGDB Open Source, que
utiliza a linguagem SQL como interface (site oficial do MySQL).
Algumas de suas características são:
- Facilidade de uso
-Portabilidade
- É um software livre
- Compatibilidade com linguagens de programação como: (PHP, ASP,Java, Delphi,
C/C++, Ruby, Phython)
-Não exige muitos recursos de hardware
-Excelente desempenho e estabilidade
-Suporta Triggers
Além de ser executado em mais de 20 plataformas como: Linux, Windows, Solaris,
Mac OS, etc.
35
2.1.7 Software código aberto
Em 1983, Richard Matthew Stallman lançou o Projeto GNU, para criar um sistema
operacional gratuito, do tipo Unix. Esse projeto levou a criação de softwares livres como o
gcc, o GNU C Compiler, entre outros softwares livres instrumentais que originaram o Linux
(MCCOMBS e BANH, 2010).
O software open source deve oferecer acesso ao código-fonte como também ser
distribuídos como software livre. O que dá ao usuário o direito de modificar, redistribuir, e
utilizar o software, seja em formato modificado ou não CAMPOS (2006).
36
2.2 METODOLOGIA DE DESENVOLVIMENTO
2.2.1 Ferramentas utilizadas
• Linguagem de Programação PHP
• Framework Web Magento na versão 1.4.1
• Banco de Dados MySQL
2.2.2 Diagramas de caso de uso
Os diagramas apresentados a seguir representam os caso de uso do sistema. Os
três atores são o cliente, o administrador e o sistema.
A FIGURA 10 representa o cliente que possui os processos "Cadastrar cliente",
"Efetuar compra", "Obter cupom", "Autenticar cliente" e "Listar histórico de compras".
FIGURA 10 – Diagrama de caso de uso do ator cliente.
37
Os processos do administrador mostrado na FIGURA 11 são: "Cadastrar oferta" e
"Cadastrar fornecedor".
FIGURA 11 – Diagrama de caso de uso do ator administrador.
Já o sistema possui os processos: "Processar pagamento", "Disponibilizar oferta",
"Desativar oferta", "Notificar resultado da oferta", "Notificar oferta ao cliente" representado na
FIGURA 12.
FIGURA 12 – Diagrama de caso de uso do ator sistema.
38
2.2.3 Protótipos do site
Na FIGURA 13 é mostrado o protótipo da página principal com as principais
funcionalidades de um site de compra coletiva.
FIGURA 13 – Protótipo da oferta do dia (página principal)
Já em ofertas anteriores é possível visualizar a segmentação, onde o cliente poderá
verificar as ofertas por categoria como mostra a FIGURA 14.
39
FIGURA 14 – Protótipo das ofertas anteriores.
2.2.4 Instalações e configurações do Magento
Para instalação do Magento é preciso um servidor Web rodando ou servidor local,
que tenha suporte a PHP além de um servidor de banco de dados, foram utilizados para
instalação um servidor Web na plataforma Linux, servidor Apache, PHP e banco de dados
MySQL.
Primeiramente foi criado um subdomínio (FIGURA 15) que pode ser acessado
através do endereço http://www.loja.fcmdesign.com.br, logo em seguida um novo
banco de dados com o nome de loja_virtual foi criado através do cPanel como mostra a
FIGURA 16.
40
FIGURA 15 – Criando subdomínio: http://www.loja.fcmdesign.com.br/
FIGURA 16 – Criando banco de dados através do cPanel.
Logo em seguida foi criado um usuário com o nome de fabiola que irá acessar a
base de dados (FIGURA 17) e foi dado todos os acessos a este usuário (FIGURA 18).
41
FIGURA 17 – Criando usuário fabiola ao banco de dados.
FIGURA 18 – Todas as permissões foram dadas á usuária fabiola.
Neste momento é possível acessar diretamente o servidor, através do endereço
http://www.loja.fcmdesign.com.br e ser direcionado ao programa de instalação
(FIGURA 19).
42
FIGURA 19 – Instalação do Magento.
Depois de aceita a licença, é preciso informar o servidor de banco de dados,
login, senha, ou seja, aquelas informações que foram criadas anteriormente através do
cPanel, será necessário informar o E-mail e senha do administrador em seguida
(FIGURA 20).
Feito isso está pronto, será mostrado o login e senha do administrador que já
poderá acessar a parte administrativa do site através do endereço
http://loja.fcmdesign.com.br/admin e a página principal através do subdomínio
criado anteriormente.
FIGURA 20 – Conexão com o banco de dados.
43
2.2.5 Interface do Magento
De acordo com MCCOMBS e BANH (2009) o Magento é composto por duas
interfaces diferentes. Existe uma interface pública aberta a todos que visitam o website, e
uma interface de administração que pode ser visualizada apenas por aqueles que possuem
acesso.
A interface pública do Magento permite o usuário manipular a forma pela qual a loja é
projetada e também alterar como é feita a promoção dos produtos. Com o Magento é
possível editar layout, esquema de cores, fotos e conteúdo para que se encaixem á cada
situação em particular a FIGURA 21 mostra a frontend padrão do Magento MCCOMBS e
BANH (2009).
FIGURA 21 – Frontend default do site.
Já a interface de administração é responsável por controlar tudo que é visualizado
na interface pública. Nela, é possível gerenciar e examinar pedidos, atualizar informações
de clientes e adicionar novos produtos à loja MCCOMBS e BANH (2009).
44
É possível se conectar à interface administrativa do site acessando o endereço:
http://www.loja.fcmdesign.com.br/admin.
Uma vez feito o login (FIGURA 22), o administrador será redirecionado para o painel
administrativo (FIGURA 23).
FIGURA 22 – Painel de login ( interface de administração).
FIGURA 23 – Backend do site (área administrativa).
2.2.6 Estrutura de arquivos do Magento
De acordo com MCCOMBS e BANH (2010) a arquitetura de templates do Magento
foi estruturada com o objetivo de permitir a atualização de múltiplas páginas ao mesmo
tempo, o mesmo separa a camada de conteúdo da camada de apresentação.
Um tema pode ser dividido nas três áreas:
45
Templates em PHTML – O PHTML é herdado do Framework Zend. Semelhante ao
HTML, os arquivos PHTML são responsáveis pelo core dos temas do Magento, oferecendo
uma estrutura básica da loja.
Layouts em XML – Os layouts em XML podem ser utilizados para especificar quais
blocos devem ser exibidos em um grupo de páginas. Nos quais esses blocos podem ser:
textos, imagens, um carrinho de um cliente, etc.
A skin – Esta sessão skin refere-se a uma pasta que contém os arquivos CSS,
imagens e arquivos JavaScript. Basicamente, todos os arquivos não relacionados a
estrutura são colocados nessa pasta.
Fazendo uma analogia: É possível pensar nos temas do Magento como um jogo de
futebol americano no qual os layouts em XML são o livro de jogadas e definem o que o
arquivo PHTML deve carregar. Os arquivos PHTML são os jogadores, cada um seguindo a
própria rota. Skin representa as cores dos uniformes dos jogadores.
Os templates em PHTML e os layouts em XML estão contidos no diretório app,
enquanto os arquivos e pastas da skin estão todos contidos no diretório da skin, a FIGURA
24 mostra os arquivos visualizados através de um FTP.
FIGURA 24 – Destacando os diretórios app e skin, que abrigam todos os principais componentes de
um tema do Magento.
46
No diretório app para navegar até a página do tema-padrão é possível encontrar as
pastas layout e template (FIGURA 25) no qual estão contidos na pasta template todos os
templates ems PHTML (FIGURA 26), enquanto os arquivos de layout XML, estão na pasta
layout conforme mostra a FIGURA 27.
FIGURA 25 – No diretório app.
FIGURA 26 – No diretório dos layouts contidos na pasta app.
47
FIGURA 27– No diretório dos templates em PHTML, contido na pasta app.
A FIGURA 28 mostra os arquivos dento do diretório skin. Onde todos os arquivos
CSS,HTML, JavaScript estão contidos.
FIGURA 28 – No diretório skin. Esta pasta contém os arquivos CSS, imagens e arquivos JavaScript.
48
2.2.7 Customizações no site de compra coletiva
Depois de instalado o Magento, configurado seu idioma, moeda, dentre outras
configurações iniciais, o próximo passo foi configurar e customizar o Magento para que ele
seja transformado em um modelo de site de compra coletiva.
2.2.7.1 Cadastro de cidades para as ofertas
Primeiramente é preciso ter as cidades onde serão disponibilizadas as ofertas. O
projeto utilizará a cidade de Itatiba e Morungaba.
As duas cidades serão administradas em um único backend, pois o Magento possui
um gerenciamento de múltiplas lojas e as ofertas serão separadas por cidade e categoria.
De acordo com SAM (2010) essa funcionalidade já está implementada e é composta
por website , loja e visão e cada uma dessas citadas tem uma função:
Website: O website funciona com um shopping pois dentro dele torna-se possível ter várias
lojas que no projeto serão as cidades de Itatiba e Morungaba. No projeto o webstite será
chamado de “Website compra coletiva” como mostra FIGURA 29.
FIGURA 29 – Projeto website compra coletiva.
Loja: É nesse ponto que as lojas são criadas (FIGURA 30 e FIGURA 31)
(Itatiba/Morungaba), elas funcionam como um ponto de venda pois cada cidade é um ponto
de venda que pode vender produtos distintos. No projeto cada cidade irá funcionar como um
49
grande lojista onde poderá criar um ponto de venda para cursos, eletrônicos, roupas,
estética, etc.
FIGURA 30 – Cadastrando a loja da cidade de Itatiba.
FIGURA 31 – Lojas de Itatiba e Morungaba mostrada no backend.
Visão: A visão funciona como a vitrine da loja (a parte visual) , somente uma visão por vez
pode ser apresentada, porém uma loja pode ter diversas visões (FIGURA 32).
FIGURA 32 – Visão das cidades de Itatiba e Morungaba.
50
2.2.7.2 Criação de categorias e subcategorias
Os produtos ou promoções são separados por cidade e cada produto esta vinculado
a uma categoria. Sendo assim foi preciso criar uma categoria principal para cada loja criada
(FIGURA 33) e na seqüência criar uma subcategoria que se refere ao tipo de produto
disponível no site (FIGURA 34). Logo é possível a visualização da segmentação na frontend
(FIGURA 35).
FIGURA 33 – Cadastrando categoria para a loja de Itatiba.
52
2.2.7.3 Inserindo ofertas no site
De acordo com FAUST (2011) a oferta deve ser muito bem trabalhada pois se o
cliente abre a oferta e vê uma imagem tentadora, um preço irresistível, com um texto e
descrição bem informativo no qual dá detalhes de como o cliente irá se divertir se participar
daquela promoção. No canto da tela um relógio marca o tempo em contagem regressiva. O
cliente vai achar que é preciso comprar e logo!
É muito importante uma oferta bem apresentada, pois esse tipo de negócio trata-se
de compras por impulso SAM (2011).
Conforme MCCOMBS e BANH (2010) no Magento é possível observar que existem
seis tipos de produtos que podem ser cadastrados. Segue descrição:
1-) Produto Simples: Como o próprio nome já diz é um produto simples porém com
muitos recursos.
2-) Produto Configurável: Permitem aos consumidores escolherem atributos
referentes a compra como: cor, tamanho.
Ex: sapatos, roupas.
3-) Produto Agrupado: Permite que seja vendido um grupo de produto simples que
tenha sido agrupado.
Ex: Uma camisa e uma gravata que combina com talheres (colheres, facas, garfos).
4-) Produto Virtual: Produtos virtuais podem ser adquiridos mais tipicamente não
são produtos físicos.
Ex: Um cupom (que será utilizado no site de compra coletiva), garantias, suporte
técnico, etc.
5-) Pacote de Produtos: É um produto que é a soma de outros produtos.
Ex: Livros em série, computadores e seus acessórios como: gabinetes, CPU,
memórias RAM, monitores.
6-) Produto Digital: Sua entrega pode ser feita através de download após a compra.
Ex: arquivos PDF, softwares, cupons, fotos, imagens, música.
Além do tipo de produto a ser vendido é necessário informar também o grupo de
atributos deste produto comercializado. O Magento traz por padrão o grupo padrão que é
um conjunto de atributos genéricos para um produto.
Porém ele oferece a opção de criar novos grupos de atributos, assim é possível criar
grupos especializados para determinados produtos como exemplo: Um CD que possui
faixas de músicas, ou um livro que possui informações como: autor, número de páginas, etc.
53
É possível personalizar um grupo de atributos para vender um cupom promocional.
Assim para começar serão criados todos os atributos que serão necessários e que
ainda não existem cadastro no Magento, como por exemplo: a quantidade mínima para
cadastrar ofertas, entre outras peculiaridades que a oferta venha oferecer.
A FIGURA 36 mostra o atributo quantidade mínima para ativar a oferta que será
utilizada mais adiante.
FIGURA 36 – Criando atributo quantidade mínima para ativar a oferta.
Depois de criado o atributo qtd_min_ativar_oferta terá que ser criado o atributo
cupom (FIGURA 37)
FIGURA 37 – Criando Cupom.
54
Logo em seguida foi criado um produto mostrado na FIGURA 38, na seqüência as
informações dos produtos (FIGURA 39) e preço do produto (FIGURA 40).
FIGURA 38 – Criando produto.
FIGURA 39 – Informações de produtos.
55
FIGURA 40 – Inserindo preço no produto.
2.2.7.4 Visualizando promoção na página principal
A oferta do dia deverá ficar na página principal da loja, para isso foi editada á página
home, que por padrão é a página a ser exibida inicialmente na frontend.
Foi utilizado um recurso do Magento chamado Widget (FIGURA 41).
FIGURA 41 – Configurando novos produtos para pagina principal.
56
2.2.7.5 Calculando tempo restante da oferta
A fim de exibir um temporizador que mostra em tempo real quanto tempo falta para a
oferta terminar, foi implementado um recurso do tipo timer.
Esta fase do projeto envolve a customização de recursos que não estão prontos no
Magento. Portanto foram criadas as próprias funcionalidades personalizadas para que assim
possam se adaptar ao sistema as necessidades.
Para isso foi inserido um código JavaScript que funciona como um contador
regressivo e atualizará a página constantemente, exibindo o cronômetro com o tempo
restante como mostra a FIGURA 42.
Em primeiro lugar a preocupação não é com a parte gráfica do relógio e sim com a
funcionalidade e eficiência do sistema.
Segue código JavaScript do cronômetro e regressivo inserido no arquivo
new_list.phtml.
QUADRO 4 – Código Relógio Regressivo em JavaScript.
<!-- CODIGO ADICIONADO DENTRO DA DIV f-fix -->
<script type="text/javascript">
function cal_time( secs, num1, num2 ) {
var s = ((num1==3600) ? ((Math.floor(secs/num1))).toString() :
((Math.floor(secs/num1)%num2)).toString());
if ( s.length < 2 ) s = "0" + s;
return ""+ s +"";
}
<?php $data_limite = Mage::getModel('catalog/product')-
>getResource()->formatDate( $_product->getnews_to_date(),false ).'
23:59:59'; ?>
var dt_fim = "<?php echo gmdate("m/d/y h:i:s A", strtotime(
$data_limite )); ?>";
var dt_ini = "<?php echo gmdate("m/d/y h:i:s A", strtotime(
Mage_Core_Model_Locale::date(null, null ,"en_US",true))); ?>";
function Contador(secs) {
if (secs < 0) {
document.getElementById("cntdwn").innerHTML = "<span
57
class='hour'>00</span>:<span class='min'>00</span>:<span
class='sec'>00</span>";
//vc pode esconder botao de compra aqui usando um display none!
return;
}
DisplayStr = DisplayFormat.replace(/%%D%%/g,
cal_time(secs,86400,100000));
DisplayStr = DisplayStr.replace(/%%H%%/g, cal_time(secs,3600,96));
DisplayStr = DisplayStr.replace(/%%M%%/g, cal_time(secs,60,60));
DisplayStr = DisplayStr.replace(/%%S%%/g, cal_time(secs,1,60));
document.getElementById("cntdwn").innerHTML = DisplayStr;
if ( RelogioOn ) setTimeout("Contador(" + (secs+CountStepper) +
")", SetTimeOutPeriodo);
}
if ( typeof(DisplayFormat) == "undefined" ) DisplayFormat = "<span
class='hour'>%%H%%</span>:<span class='min'>%%M%%</span>:<span
class='sec'>%%S%%</span>";
if ( typeof(RelogioOn) == "undefined" ) RelogioOn = true;
if ( typeof(CountStepper) != "number" ) CountStepper = -1;
CountStepper = Math.ceil(CountStepper);
if (CountStepper == 0 ) RelogioOn = false;
var SetTimeOutPeriodo = (Math.abs(CountStepper)-1)*1000 + 990;
document.write("<span id='cntdwn'></span>"); //pode ser colocado
direto no codigo tb!
var dthen = new Date(dt_fim); var dnow = new Date(dt_ini);
var ddiff = (CountStepper>0) ? new Date(dnow-dthen) : new
Date(dthen-dnow);
var gsecs = Math.floor(ddiff.valueOf()/1000);
Contador(gsecs);
</script>
<!-- FIM DO CODIGO ADICIONADO -->
58
FIGURA 42 – Relógio Regressivo.
2.2.7.6 Exibir preço normal e desconto da oferta
No site serão exibidos dois preços, o normal e o promocional. O calculo dinâmico de
percentual de desconto aplicado ao produto foi adaptado, pois não esta implementada no
Magento. Foi incluída a linha de código em PHP dentro do arquivo new_list.phtml.
QUADRO 5 – Código desconto.
<!-- CODIGO ADICIONADO ABAIXO DA LINHA getPriceHtml --> <p style="clear: both;">Desconto de <?php echo (100-ceil(($_product->getspecial_price() / $_product->getprice()) *
O que o código acima fez foi receber os preços (normal e promocional) e depois
aplicar um cálculo matemático simples para chegar ao percentual de desconto aplicado no
produto, como mostra a FIGURA 43.
59
FIGURA 43 – Exibindo Desconto.
2.2.7.7 Quantidade de ofertas vendidas
Com o fim de concluir as customizações da tela de promoção em destaque, foi
implementado um código que exibe a quantidade de ofertas vendidas e informa quantas
ainda faltam vender para que a oferta entre em vigor.
Foram utilizados alguns daqueles atributos do tipo cupom que foi criado
anteriormente.
Primeiramente foi criado o código de como exibir o número de vendas mínimas
exigidas para que a oferta entre em vigor. Anteriormente foi criado um atributo chamado
qtd_min_ativar_oferta que foi utilizado nesta etapa do projeto.
Dentro do arquivo news_list.phtml foi inserido o código a seguir que é responsável
por chamar o atributo produto:
QUADRO 6 – Código quantidade de ofertas vendidas.
<!-- CODIGO ADICIONADO ABAIXO DO foreach --> <?php $_product->load( $_product->getId() ); ?> ... <!-- CODIGO ADICIONADO ABAIXO DO desconto --> <?php $qtd_ativar = $_product->getResource()->getAttribute('qtd_min_ativar_oferta')->getFrontend()->getValue(
$_product ); ?> <p style="clear: both;">Mínimo de <?php echo $qtd_ativar; ?> para ativar a Oferta!</p>
60
Depois de chamar um atributo do produto, é possível fazer o mesmo para exibir o
mapa de localização da empresa ao lado de sua descrição. Foi criado um campo para o
Google maps com o nome de “url_google_maps”. Então o código ficou da seguinte maneira:
QUADRO 7 – Código exibe mapa de localização da empresa.
<!-- CODIGO ADICIONADO ABAIXO DO script de timer --> <!-- mais informacoes sobre google maps em:
http://code.google.com/intl/pt-
BR/apis/maps/documentation/staticmaps/ --> <img src="http://maps.google.com/maps/api/staticmap?center=<?php
echo $_product->getResource()->getAttribute('url_google_maps')-
>getFrontend()->getValue( $_product );
?>&zoom=14&size=400x400&markers=color:red|label:A|<?php echo
$_product->getResource()->getAttribute('url_google_maps')-
>getFrontend()->getValue( $_product ); ?>&sensor=false" alt="mapa localizacao google">
Logo foi preciso criar um método que exibe quantos itens já foram vendidos ou
solicitados esse foi um pouco mais trabalhoso, pois envolve as regras de negócios
particulares da empresa como exemplo:
Existe uma diferença entre comprar e pagar no Magento. Quando um cliente compra
o produto/cupom automaticamente é gerado um pedido que fica sob status de pendente até
que o pagamento seja confirmado ou recusado.
Então até esse ponto já é possível observar que já existe uma decisão estratégica
que irá contar e exibir na tela o número de pedidos realizados (somando pendentes e
faturado) ou apenas somar os que foram pagos/faturados.
Nesse caso foi escolhida a opção de exibir apenas os pedidos confirmados com
pagamento. Então será enfrentado um problema. Já que os operadores de cartão de crédito
podem levar até quarenta e oito horas para aprovar um pagamento e depósito bancário
também só é compensado no dia seguinte. E se for usado um sistema anti-fraude o tempo
de resposta pode ser ainda mais lento.
Ou seja, é possível ter pedidos que tenham pagamentos confirmados em até uma
semana depois de realizado o pedido.
Então se imaginar a situação faltando uma venda para ativar a oferta, o tempo se
esgotando e o site com mais de dez pedidos em aberto aguardando confirmação de
pagamento.
61
Uma outra estratégia seria informar sempre um número alto de cupons no estoque
(FIGURA 44), algo como 10.000 (dez mil). Assim, tudo que teria que fazer é subtrair dez mil
pela quantidade de itens atual em estoque do produto para saber quantos foram vendidos.
Isso resolve dois problemas citados acima. Não é preciso controlar datas de pedidos,
e não importa se foi comprados para amigos ou não, o que importa é somente a quantidade
que resta em estoque. O único problema é que sempre um pedido é feito (pendente) é dado
baixa no estoque. Então será contado os pedidos pendentes e pagos.
FIGURA 44 – 10.000 Cupons.
Porém quando um pedido pendente é cancelado, a quantidade deste pedido volta ao
estoque. Então no final das contas, se for cancelado todos os pedidos pendentes e manter
apenas os pedidos pagos, será obtido um valor real de cupons vendidos. Um bom sistema
de pagamento, bem integrado, de resposta rápida, pode fazer toda a diferença SAM(2011).
Para tentar manter a simplicidade foi optado pela opção de controlar apenas o
estoque com base nos dez mil itens. Porém é possível criar outras soluções.
Abaixo é mostrado o código que foi utilizado para controlar a quantidade vendida
através do numero em estoque.
QUADRO 8 – Código exibe mínimo para ativar oferta.
<!-- CODIGO ADICIONADO ABAIXO DO minimo p/ ativar --> <?php $qtd_vendida = (10000 - Mage::getModel('cataloginventory/stock_item')-
>loadByProduct($_product)->getQty()); ?> <p style="clear: both;">Foram Vendidos <?php echo $qtd_vendida; ?>
Cupons</p>
62
Depois que se obtém o número de ofertas vendidas, é possível verificar se o seu
valor ultrapassa o número de ofertas mínimas para entrar em vigor através do código listado
abaixo:
QUADRO 9 – Código exibe número de ofertas mínima para ativar ofertas.
<!-- CODIGO ADICIONADO ABAIXO DO foram vendidos -->
<p style="clear: both;">Oferta <?php if ($qtd_vendida>=$qtd_ativar)
echo 'ativa'; else echo 'em stand by'; ?></p>
Isso irá informar aos visitantes se a oferta já está valendo ou não como mostra a
FIGURA 45.
FIGURA 45 – Quantidade de ofertas vendidas.
63
2.2.7.8 Conexão com redes sociais e microblogs
Atualmente as mídias sociais estão crescendo rapidamente, e tudo indica que
continuarão crescendo cada vez mais. E um site de compras coletivas casa muito bem com
redes sociais SAM (2011).
Como o Magento não oferece muitos recursos nativos de compartilhamento de
mídias sociais será preciso customizar.
Com o Magento é possível que a página do produto em oferta seja enviada para um
amigo, a página também pode ser divulgada em uma lista de RSS (recurso já
implementado).
Redes sociais como orkut, facebook, linkedin, livemocha ou microblogs como o
twitter. é possível criar e customizar na aplicação.
De acordo com SAM (2011) uma pesquisa realizada pela escola Magento no setor
de compra coletiva foi possível verificar que muitos sites do setor não utilizam essas
poderosas ferramentas para divulgação. Outros disponibilizam apenas suas páginas oficiais
(facebook, orkut, twiter) para quem quiser segui-los. E os que usam para divulgar a oferta,
ainda o fazem de um jeito muito particular, ou seja, não existem padrões a serem seguidos.
Em meio a tantas possibilidades será implementado no site um exemplo da rede
social “facebook” e outro do microblog “twiter”. Mas a partir deles é possível expandir a idéia
para outros meios de divulgação social.
Então foi aberta a página de oferta em destaque, o arquivo new_list.phtml e inserido
o seguinte código para o twitter:
QUADRO 10 – Código para envio de oferta destaque por twitter.
<!-- CODIGO ADICIONADO ACIMA DO nome do produto --> <p style="clear: both;"><a
href="http://twitter.com/home?status=<?php echo $this-
>stripTags($_product->getName(), null, true)
?>.:http://modelo.fcmdesign.com.br/" target="_blank">Twittar esta
Oferta!</a></p>
64
Nesse caso foi usado o nome da própria oferta. Mas poderia ser criado um atributo
novo para o produto/cupom chamado msg_twitter, e personalizar essa mensagem no
backend sempre que for criado uma nova oferta.
O mesmo poderia ser feito para o facebook ou qualquer mídia social.
E quanto a divulgação pelo facebook, poderia ser utilizado um recurso do próprio
facebook chamado de “Curtir/Like”. Ou escrever no murar para compartilhar com os amigos
do usuário, como o código abaixo:
QUADRO 11 – Código para compartilhar oferta pelo facebook.
<!-- CODIGO ADICIONADO ABAIXO DO twittar --> <p style="clear: both;"><a
href="http://www.facebook.com/sharer.php?u=http://loja.fcmdesign.com
/&t=<?php echo $this->stripTags($_product->getName(), null, true)
?>." target="_blank">Compartilhe no Facebook!</a></p>
Para que o usuário possa enviar E-mails aos amigos referente a oferta, foi utilizado
um recurso nativo do Magento bastando inserir o código abaixo na página.
QUADRO 12 – Código para enviar E-mails aos amigos do produto destaque.
<!-- CODIGO ADICIONADO ABAIXO DO compartilhar facebook --> <p><a href="<?php echo $this->helper('catalog/product')-
>getEmailToFriendUrl($_product) ?>"><?php echo $this->__('Email to a
Friend') ?></a></p>
O resultado é mostrado na FIGURA 46 e ao clicar no link o usuário será direcionado
para o facebook conforme FIGURA 47.
65
FIGURA 46 – Avisar um Amigo.
FIGURA 47 – Após clicar em “Compartilhe no Facebook”.
Inegavelmente que além de conectar essas mídias de divulgação nas ofertas,
também é interessante ter um link para a página oficial do twiter e /ou facebook. Um link
simples como o mostrado abaixo já resolve o problema:
66
QUADRO 13 – Código exibe mensagem “Siga-nos no Twitter”.
<a href="http://twitter.com/FCMDesign">Siga-nos no Twitter</a>
2.2.7.9 Configurações para realização de uma venda
Logo após uma série de customizações e configurações torna-se possível trabalhar
na tela de checkout do sistema, no qual entram em discussão a forma de pagamento,
cadastro do cliente, entre outros detalhes a serem tratados.
Em primeiro lugar, quando o usuário clicar no botão comprar ele não será
direcionado para uma tela de carrinho de compras mais pode ser direcionado para uma tela
de checkout.
Com a finalidade de facilitar o máximo do processo, já que a essência desse modelo
de vendas é baseada na compras por impulso. Então o que for possível fazer para agilizar e
simplificar deve ser feito.
Essa alteração pode ser feita no arquivo new_list.phtml é onde esta sendo feita toda
a customização. Atualmente o que o botão de compras faz, é chamar uma URL, que
adiciona o produto ao carrinho de compras e depois redireciona a página. O que foi feito foi
alterar a ação desse botão. Será adicionado o produto ao carrinho por AJAX assim que o
cliente entrar na página (para agilizar o processo), e quando ele clicar no botão comprar
será chamado a URL de checkout (como um link).
QUADRO 14 – Código em AJAX chama URL checkout para agilizar o processo ao clicar em
comprar.
<!-- CODIGO ADICIONADO ABAIXO DO ->isSaleable() --> <button type="button" title="<?php echo $this->__('Add to Cart') ?>" onclick="setLocation('<?php echo $this->getUrl('checkout') ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button> <script type="text/javascript"> //<![CDATA[ new Ajax.Request( "<?php echo $this->getAddToCartUrl($_product)
?>", { method: 'post', onComplete: function(transport) {} }); //]]> </script>
67
A tela de checkout tem quatro etapas: Identificação, informação de cobrança, forma
de pagamento e confirmar pedido. No projeto serão mantidas todas as etapas, porém com
algumas customizações.
A parte de identificação é de extrema importância, é preciso tomar cuidado nas
configurações de backend para evitar que visitantes efetuem compras, logo foi desativada a
opção que permite que visitantes façam pedidos e sim para exibir termos e condições
(FIGURA 48).
FIGURA 48 – Configuração para desativar pedido de visitante e exibir termos e condições.
Para deixar a tela cheia, sem aquela coluna lateral que exibe os passos dos
processos, foi preciso editar o checkout.xml como mostrado abaixo.
QUADRO 15 – Código alterado de 2 colunas para 1 coluna lateral.
<!-- alterado template da reference root de 2columns para 1column em
checkout_onepage --> <action
method="setTemplate"><template>page/1column.phtml</template></action
>
O passo 2 foi chamado de beneficiário, ou seja a pessoa a quem se destina o
cupom.
68
O passo 3 foi referente a opções de pagamento e o passo 4 é referente a exibição de
uma caixa com termos de uso do site.
A página de informações de cobrança foi renomeada para beneficiário, nela
encontra-se muitas informações pessoais e de endereço porém não será preciso tanta
informação. O problema são os campos obrigatórios do cadastro de novo usuário. Pois a
validação dos campos são feitas client-side e server side, ou seja duas vezes (por questões
de segurança).
Então nesse ponto é possível ter duas opções básicas. Desligar as validações
básicas feitas no JavaScript ou PHP ou ocultar os input’s e deixar um value preenchido por
padrão para todos os cadastros. A segunda opção é a mais fácil e rápida de implementar,
porém menos elegante. Por isso foi usado a primeira opção.
O arquivo billing.phtml foi aberto e apagados os campos que não são necessários no
cadastro. Os campos julgados necessários foi tirado a opção de validação e removido o
valor required-entry do atributo class do input.
No código alguns campos que foram considerados desnecessários foram retirados
como: “Last name”, profissão, além de vários campos referente ao endereço, fax, etc.
No backend ainda é possível adicionar os campos CPF e data de nascimento como
mostra a FIGURA 49.
FIGURA 49 – Campos adicionais para clientes.
Nesse momento o sistema não fará mais a validação de client-side em JavaScript,
mais ao chegar no server-side, a validação em PHP entra em ação e interrompe o processo
com um alerta de erro. Então o usuário será direcionado para o arquivo Customer.php e
69
Abstract.php onde está localizado uma função validate () que faz a validação dos campos do
formulário novamente.
Dentro da função é encontrado diversas linhas com Zend_Validate e o nome dos
campos que estão sendo validados. Bastando apagar ou comentar as validações que
desejar retirar.
Neste caso foi apenas o campo Sobrenome, pois os campos Fax e Profissão não
eram obrigatórios.
QUADRO 16 – Campo sobrenome pode ser apagado ou comentado.
if (!Zend_Validate::is( trim($this->getLastname()) , 'NotEmpty')) { $errors[] = $customerHelper->__('The last name cannot be empty.'); }
Ainda o arquivo Abstract.php fica localizado a validação dos campos de endereço.
QUADRO 17 – Validação dos campos de endereço.
if (!Zend_Validate::is($this->getStreet(1), 'NotEmpty')) { $errors[] = $helper->__('Please enter the street.');}
if (!Zend_Validate::is($this->getCity(), 'NotEmpty')) { $errors[] = $helper->__('Please enter the city.'); }
$_havingOptionalZip = Mage::helper('directory')->getCountriesWithOptionalZip(); if (!in_array($this->getCountryId(), $_havingOptionalZip) && !Zend_Validate::is($this->getPostcode(), 'NotEmpty')) { $errors[] = $helper->__('Please enter the zip/postal code.'); }
if (!Zend_Validate::is($this->getCountryId(), 'NotEmpty')) { $errors[] = $helper->__('Please enter the country.'); }
if ($this->getCountryModel()->getRegionCollection()->getSize() && !Zend_Validate::is($this->getRegionId(), 'NotEmpty')) { $errors[] = $helper->__('Please enter the state/province.'); }
70
De acordo com SAM (2011), não é aconselhável alterar os arquivos core do sistema,
pois uma atualização de versão do Magento pode sobrepor seus arquivos. É mais viável
criar um arquivo na pasta local para fazer tais alterações.
2.2.7.10 Configurações de Pagamento (PagSeguro)
No projeto do site foi escolhida a opção de PagSeguro ou pagamento digital que
garantem segurança, evitam fraudes, possuem opções de pagamento e parcelamento.
O primeiro passo foi criar uma conta vendedor (FIGURA 50) no PagSeguro e em
seguida foram feitas as configurações necessárias para uma conta vendedor, a FIGURA 51
mostra como é uma conta vendedor.
FIGURA 50 – Criando conta vendedor.
71
FIGURA 51 – Modelo de uma conta vendedor.
Uma página de retorno é solicitada na configuração (FIGURA 52) além do número do
Token que é gerado dentro da página do PagSeguro (FIGURA 53).
FIGURA 52 – Ativando URL de retorno.
72
FIGURA 53 – Token de segurança gerado.
Logo foi baixado um plugin correspondente e compatível com a versão do Magento e
configurado o módulo com as informações de conta no Magento (FIGURA 54).
FIGURA 54 – Configurando PagSeguro no Magento
E por ultimo o “aceite de termos de condições”, onde foi colocada uma caixa texto
solicitando que o cliente marque, informando que entendeu e que aceita todas as condições
os termos de condições do uso do site e da promoção em vigor.
Para isso foi criado um termo direto no backend do site e colocado todas as
informações necessárias e logo o termo já está disponível do checkout da loja (FIGURA 55).
73
FIGURA 55 – Criando Termo de Condição.
Assim que o usuário aceitar as condições, o botão “inicializar pedido” que foi
renomeado para “efetuar pagamento“ vai estar disponível e o processo de venda estará
finalmente terminado.
Depois de efetuado o pagamento esses módulos costuma redirecionar o controle
para a loja. Geralmente para uma página de sucesso.
2.2.7.11 Configurações do E-mail marketing
De acordo com FAUST (2011) o envio regular de ofertas por E-mail é um dos
maiores triunfos do modelo de compra coletiva.
No projeto foi utilizado para enviar E-mail marketing uma ferramenta já disponível no
Magento, no qual foi necessário criar um modelo de E-mail, e em seguida bastando
selecionar a lista de cliente que pode estar organizada por cidade, categoria, etc.
A FIGURA 56 mostra um E-mail marketing sendo enviado.
74
FIGURA 56 – Fila de envio de E-mail marketing.
2.2.7.12 Configurações gerais pós venda
É correto afirmar que um projeto como esse não costuma ter um fim, pois sempre
terá alguma coisa para ser feita ou melhorada.
Então será preciso abordar alguns detalhes que compõem a estrutura de um e-
commerce desse porte.
Eventualmente depois da venda concluída pelo usuário, será preciso enviar E-mails
de transação assim como também será preciso customizar as páginas de conteúdo além de
desativar algumas funções nativas do Magento.
São exemplos de transações: Fechar um pedido, cadastrar um novo usuário,
confirmar um pagamento. Essas ações geram envio de E-mail, então podem ser
consideradas “E-mails de transação”. Esse modelo de E-mail pode ser formatado a partir de
um modelo padrão existente no backend como mostra a FIGURA 57.
FIGURA 57 – E-mail Transação Personalizado.
75
Páginas do tipo “perguntas e respostas, ”quem somos”, “política de segurança”, etc,
podem ser criadas e gerenciadas no backend (FIGURA 58).
FIGURA 58 – Links no rodapé do site.
Algumas URL’s do Magento são exibidas em inglês, como “checkout”, “cart”,
“acount”, etc. Essas URL’s podem ser alteradas para o nome de preferência como mostra a
FIGURA 59.
FIGURA 59 – Alterando URL Padrão.
76
Como o site tem mais de uma loja uma para representar cada cidade como Itatiba e
Morungaba é interessante separar os clientes por grupos de cidades. No backend é possível
criar um grupo para cada cidade e em seguida é possível editar a guia de opções ao criar
uma nova conta e selecionar o grupo padrão de cadastro para cada loja como mostrado na
FIGURA 60.
FIGURA 60 – Alterando Grupo de Clientes.
Quando o usuário visualiza as ofertas anteriores no frontend, é carregada uma lista
de produtos. Esse arquivo list.phtml precisa ser editado para tirar o botão “comprar” e a
opção de link para detalhes do produto também.
Para retirar eventuais colunas (esquerda/direita) nas telas de categorias, foi editado o
layout como mostra a FIGURA 61.
77
FIGURA 61 – Alterando layout de categorias.
Outra configuração interessante nessa situação foi desligar o módulo de busca para
economizar recursos do sistema e evitar possíveis problemas como por exemplo o Google
indexar a página de busca. Então o módulo CatalogSearch foi desligado (FIGURA 62).
FIGURA 62 – Desligando Módulos do Sistema.
78
Para gerar uma lista de clientes que compraram a oferta, para ser entregue ao
estabelecimento, é possível usar os relatórios de vendas do Magento (FIGURA 63).
FIGURA 63 – Relatório de Vendas no Período.
2.2.7.13 Backup do banco de dados
É de extrema importância a realização de backup dos dados conforme mostrado na
FIGURA 64. No Magento o backup pode ser feito facilmente, no qual o backup é gerado no
sistema administrador no Magento que fica armazenado no servidor no formato (gz-
compactado), e pode fazer o download a qualquer momento e descompactar o arquivo.sql
(SAM, 2009).
80
2.3 RESULTADOS
O resultado do projeto pode ser observado na FIGURA 65 no qual mostra a página
principal do website referente a oferta do dia e também na FIGURA 66 referente a ofertas
anteriores.
FIGURA 65 – Página inicial do projeto
82
2.4 CONCLUSÃO
Com a finalização deste estudo, foi possível concluir que a Web focada no comércio
virtual vem facilitando muito a vida das pessoas oferecendo mais comodidade e praticidade,
já que é possível fazer quase tudo pela internet.
A proposta do projeto foi disponibilizar essa facilidade as pessoas com uma nova
categoria de comércio eletrônico que é a compra coletiva, disponibilizando o site
www.loja.fcmdesign.com.br para testes onde é possível conhecer melhor o
funcionamento de um sistema de compra coletiva.
A utilização do framework em código aberto no projeto trouxe muitos resultados
positivos onde foi possível adaptar sem problemas o framework para uma solução
customizada funcional. A administração ficou muito prática devido a múltiplos websites
serem administrados em uma única interface.
Como projetos futuros o objetivo é disponibilizar o site de compra coletiva na Web
com ofertas válidas de anunciantes das cidades utilizadas no projeto.
83
REFERÊNCIAS BIBLIOGRÁFICAS
ARAYA, Maurício; CASTRO, Alessandra. Comércio eletrônico comemora lucros.
Disponível em http://mauricioaraya.wordpress.com/2008/06/07/comercio-eletronico-em-alta/
Acesso em: 07 dez. 2011.
BAPTISTELLA, Adriano. Abordando a arquitetura MVC. Disponível em
<http://artigos.netsaber.com.br/resumo_artigo_16922/artigo_sobre_
abordando_a_arquitetura_mvc,_e_design_patterns:_observer,_composite,_strategy.>
Acesso em: 20 jul. 2011.
BOGO, C. Kellen. A história da internet: Como tudo começou. Disponível em:
<http://www.kplus.com.br/materia.asp?co=118rv=Vivencia > Acesso em: 14 out. 2011.
BOOCH, Dr Dobb's Journal. Vantagens e desvantagens dos frameworks. Disponível em:
<http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/porque.htm>
Acesso em: 14 jul 2011.
CAMPOS, Augusto. O que é software livre. Disponível em <http://br-linux.org/linux/faq-
softwarelivre>. Acesso em: 20 jul 2011.
FAUST Cledson.E-book. Guia Bolsa de ofertas: Como criar e gerenciar um site de
compras coletivas de sucesso. São Paulo: Bolsa de Ofertas: 2011. 66 p.
FELIPINI, Dailton. Compras Coletiva: Um guia para o comprador, o comerciante e o
empreendedor. Rio de Janeiro, SP: Ed. Brasport: 2011. 160 p.
GAMMA, Erich et al. Padrões de Projeto: Soluções reutilizáveis de software Orientado a
Objetos. Porto Alegre: Ed. Bookman, 2000. 364 p.
GAVIOLI, G. Compra coletiva. Disponível em: <http://ecommercenews.com.br/glossario/o-
que-e-compra-coletiva>. Acesso em 26 out 2011.
LASTRES, Helena; ALBAGLI, Sarita. Informação e globalização na era do
conhecimento. Rio de Janeiro: Ed. Campos 1999. 163 p.
84
LUPI, Iria. Histórico do comércio eletrônico. Disponível em:
<http://www.oficinadanet.com.br/artigo/1718/historico_do_comercio_eletronico> Acesso em:
27 maio 2011.
MCCOMBS Adam, BANH Robert. Magento: Guia definitivo. São Paulo: Ed. Novatec:
2010. 320 p.
NESI, M. Marcelino. Universidade Federal do Rio de Janeiro: Noções Básicas de SGML.
Disponível em: < http://www.gta.ufrj.br/grad/00_2/xml/sgml.htm>. Acesso em: 28 out 2011.
PEIXOTO, Rodney de Castro. O comércio eletrônico e os contratos. Rio de Janeiro: Ed.
Forense, 2001.165 p.
PIMENTEL, A. R. Modelos, Especificações, Modelos de Projeto. Disponível em:
<http://www.inf.ufpr.br/andrey/ci221/SOFTua11.pdf> Acesso em: 02 nov 2011.
ROSA, Everton. O que é o AJAX e como ele funciona. Disponível em:
< http://codigofonte.uol.com.br/artigo/javascript-dhtml/o-que-e-o-ajax-e-como-ele-funciona>.
Acesso em: 28 out. 2011.
SILVA, Mauricio Samy. Construindo sites com CSS e (X)HTML: Sites controlados por
folhas de estilo em cascata. São Paulo: Ed. Novatec, 2008. 431 p.
SILVA Mauricio Samy. JavaScript: Guia do programador. : São Paulo: Ed. Novatec, 2010.
604 p.
Site oficial do PHP. Disponível em: < http://www.php.net/manual/en/introduction.php>.
Acesso em 26 out 2011.
SAM, Mario. Compra Coletiva Configurações.Disponível em:
< http://escolamagento.com/compra-coletiva-1/>. Acesso em: 20 set. 2011.
SAM, Mario. Criando Backup do Banco de Dados. Disponível em:
< http://escolamagento.com/backup-banco/>. Acesso em: 09 nov. 2011.
SITE oficial do MySQL: Why MySQL. Disponível em: < http://www.mysql.com/why-msql/>
Acesso em: 31 out. 2011.
85
SILBERSCHATZ, Abraham, KORTH, Henry F., SUDARSHAN S. Sistema de bancos de
dados. 3. Ed. São Paulo: Ed. Makron, 2006. 781 p.
SITE oficial osCommerce: About osCommerce. Disponível em:
<http://www.oscommerce.com/about/about> Acesso em: 14 out. 2011.
SITE oficial do Magento: Company. Disponível em:
< http://www.magentocommerce.com/company/> Acesso em: 02 nov. 2011.
VALLE, Alberto. Tendências do Sites de Compras Coletivas. Disponível em:
<http://www.blogdoecommerce.com.br/tendencias-do-sites-de-compras-coletivas/>
Acesso em:15 jun. 2011.