Escolar Documentos
Profissional Documentos
Cultura Documentos
LIVRE OFERTA:
PLATAFORMA MARKETPLACE QUE VIABILIZA TRANSAÇÕES
COMERCIAIS UTILIZANDO TECNOLOGIAS WEB-MOBILE.
Jataí
2018
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
DE GOIÁS - CÂMPUS JATAÍ
DEPARTAMENTO DE ÁREAS ACADÊMICAS
CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE
SISTEMAS
RELATÓRIO TÉCNICO
LIVRE OFERTA:
PLATAFORMA MARKETPLACE QUE VIABILIZA TRANSAÇÕES
COMERCIAIS UTILIZANDO TECNOLOGIAS WEB-MOBILE.
Jataí
2018
AGRADECIMENTOS
Agradeço aos meus pais e antepassados, pois sem eles não seria possível minha existência.
Agradeço a todos os professores, pois sem eles jamais teria adquirido o conhecimento atual.
RESUMO
Atualmente o Brasil vive uma das piores recessões de sua história, implicando em uma
substancial crise no setor comercial. Diante do cenário de instabilidade econômica, cada vez
mais microempreendedores buscam alternativas para aumentar sua renda ou mesmo ter uma
nova opção de fonte de renda. Percebe-se que uma das possibilidades de minimizar esses
problemas é recorrer ao comércio eletrônico em especial aos marketplaces, utilizando essa
ferramenta para negociar produtos e/ou serviços, em busca de um público maior e claro,
maior renda. Mesmo os marketplaces sendo ideal para iniciar no comercio eletrônico, os
mesmos possuem uma série de limitações. Por meio de uma pesquisa qualitativa realizada no
sudoeste do estado de Goiás, constatou-se que, de fato, as pessoas e empresas querem vender
pela internet na região analisada, porém muitos ainda não sabem como atuar neste meio
virtual. Além disso, os que sabem, questionam o alto valor de manter um negócio online. Isto
posto, desenvolveu-se a plataforma Livre Oferta, que possibilitará minimizar os problemas
verificados na pesquisa, contando com estruturas voltada a web e smartphones, e, portanto,
permitindo assim, que qualquer pessoa ou empresa possa vender seus produtos ou serviços
dentro da plataforma e receber os seus pagamentos pela internet de forma rápida, prática e
com um custo viável às pessoas e pequenas empresas. Utilizando apenas um smartphone ou
um computador pessoal, é possível acessar a plataforma, criando assim diversas vantagens ao
vendedor, como a possibilidade de vender produtos parcelados e receber o valor integral.
Tomamos como diferencial desta proposta, a possibilidade de cada vendedor contar com sua
própria loja virtual, gerada automaticamente pela plataforma Livre Oferta. Esse diferencial
pode maximizar a visibilidade da loja/marca e produtos/serviços inseridos na plataforma.
Espera-se que esta plataforma permita que pessoas e empresas possam se atualizar cada vez
mais e, com isso, comecem a ter maior participação no mundo virtual.
Palavras-chave: Marketplace, Plataforma, Comércio, Vendas.
LISTA DE TABELAS
1. INTRODUÇÃO .................................................................................................................. 1
2. DESENVOLVIMENTO .................................................................................................... 4
REFERÊNCIAS ..................................................................................................................... 41
1. INTRODUÇÃO
Desde que foi liberada para uso comercial, a internet tem sido utilizada como meio
para compra e venda de produtos. Tal proeza teve os seus primeiros passos no início da
década de 70, mas foi preciso esperar até o ano de 1994 para se verificar a primeira transação
com pagamento feito através da internet em todo mundo, no qual o produto a ser
comercializado foi uma pizza que teve como protagonista a empresa Pizza Hut
(COUCLELIS, 2004).
Essa novidade do comércio eletrônico chega ao Brasil em meados de 1995 com a loja
virtual Magazine Luiza, porém, começa a ganhar força a partir do ano de 2001, apresentando
uma nova proposta de revolucionar o comércio varejista com um conceito totalmente novo e
inovador (TEIXEIRA, 2015). Tal proposta funcionou de maneira surpreendente, apenas no
ano de 2001 conseguiu movimentar a quantia de meio bilhão de reais em transações
realizadas exclusivamente pela internet através de vendas de produtos. Já no ano seguinte a
movimentação virtual conseguiu ser o dobro do valor (EBIT, 2013). Este modelo segue em
ampla ascensão até os dias atuais (SILVA,2016).
A partir do ano de 2012 o comércio eletrônico brasileiro começa a ganhar um novo
capítulo com a popularização dos chamados marketplaces (ECOMMERCE, 2013). O
marketplace surgiu com a proposta de ter um menor custo de operação e desempenhar
funções similares às lojas virtuais (NEXLAYER, 2017). Tentando assim, replicar na internet
um modelo de sucesso do mundo real, com seu funcionamento similar a shoppings centers ou
feiras municipais, com o intuito principal de reunir diversos vendedores, atrair maior número
de público e baratear custos.
Hodiernamente existem marketplaces que são destaques nacional e internacionalmente
como: Mercado Livre, Submarino, Aliexpress, Ebay, Olx, entre outros. Porém, o conceito de
‘Marketplace’ existe há bastante tempo, sendo citado pela primeira vez referenciando um
conjunto de comércio em 1958, através do livro ‘The academic Marketplace’, além disso, tal
modelo empregado no meio digital está presente no Brasil desde o ano 2006 (BORGES,
2017). Contrapondo a grande ascensão do comércio virtual, no início do século 21 a
população brasileira começou a retomar o espírito empreendedor, sendo considerado o 13º
país que mais empreende no mundo (GEM, 2009), impulsionando assim um grande número
de abertura de negócios físicos. Porém, a partir de 2014 o Brasil teve a pior recessão de sua
2
história, culminando na perda de 11% do PIB (produto interno bruto) per capita, atingindo
diretamente pequenas empresas e ocasionando milhões de desempregados (IBGE, 2016).
Com o cenário econômico desolador, muitas empresas e novos empreendedores,
observaram na internet oportunidade de gerar renda (IVO,2016), um destes motivos é o fato
de que no ambiente virtual não existe barreiras, contribuindo para que determinado produto
possa ser acessível por pessoas na própria cidade ou até todo o país – não existem barreiras
geográficas, gerando um público superior as habituais lojas físicas e um custo de operação
extremamente inferior (PASA, 2016). No entanto, com o orçamento muitas vezes limitado,
manter uma loja virtual é algo inacessível para pessoas com baixa renda e pequenas empresas
afetadas diretamente pela crise ou que possuem poucos recursos (FUOCO, 2016). Sendo
assim, a opção mais viável para muitos empreendedores foram investir nos chamados
marketplaces, principalmente pelo seu custo benefício vantajoso (NEXLAYER, 2017).
Com participação ativa dos meios digitais durante a recessão econômica, o Brasil
saltou no ranking do empreendedorismo global, saindo da 13º colocação para a 1º posição
mundial (GEM, 2015).
Para enfatizar a real necessidade de comercializar produtos no meio virtual, foram
realizadas uma pesquisa através de formulários físicos e eletrônicos na região sudoeste do
estado de Goiás e Capital, no qual o objetivo desta pesquisa é constatar a real necessidade ou
dificuldade que a empresa tem ao integrar-se no comércio eletrônico. Por meio desta pesquisa,
evidenciou se que, pequenas empresas em sua grande maioria pretendem migrar para internet,
mas muitas não têm condições financeiras ou não conhece os caminhos necessários para
efetivar essa migração.
Os Marketplaces atuais são ideais para iniciar no comércio eletrônico
(SEBRAE,2016), porém ainda existem diversas limitações, como: altas taxas sobre produtos
ao qual em muitos casos se torna superior a dezesseis por cento, pouca visibilidade do
vendedor no meio digital, sem opções de marketing além da plataforma ao qual está
comercializando o produto, concorrência desleal, oferta de apenas a uma opção de transporte
que acabam limitando o envio de grandes produtos (geladeira, fogão, dentre outros) e também
não permite o contato diretamente com o cliente. Outra desvantagem frequente é o
favorecimento a grandes marcas, no qual tira qualquer chance de um pequeno vendedor
competir de igual para igual dentro da plataforma (ERPFLEX,2017).
Diante dessas dificuldades encontradas nos principais marketplaces disponíveis, aliado
a recessão econômica e a vontade de pequenas empresas e pessoas físicas migrarem para
internet, buscou-se por meio deste projeto preencher as lacunas existentes, através do
3
2. DESENVOLVIMENTO
dentre os três trabalhos correlatos o único que possui o sistema financeiro próprio é o
Mercado Livre, cujo o seu sistema financeiro denomina-se ‘Mercado Pago’.
No que se refere às vendas, os três marketplaces são bastante distintos nessa parte,
sendo que o Mercado Livre e Olx permite que qualquer pessoa física ou jurídica vendam na
sua plataforma sem maiores dificuldades, já o Submarino aceita apenas pessoa jurídica para
vender dentro de sua plataforma e para se tornar um vendedor é necessário se submeter a um
longo processo de análise e uma série de burocracias. Outro ponto essencial no que se refere
às vendas e o tempo que o produto leva para ser visível após a publicação do mesmo,
plataforma Mercado Livre após o vendedor publicar um determinado produto, leva cerca de
uma semana para ser visível, já na Olx o produto ou serviço é exibido no mesmo instante e o
Submarino tem tempo indeterminado, dependendo da uma análise da plataforma sobre o
produto.
Após o levantamento de como funciona o trâmite de compra e venda, foram
analisadas as taxas cobradas por cada marketplace. Mercado Livre e Submarino cobram taxas
sobre cada produto que é comercializado na plataforma, o Mercado Livre cobra de 10% a
16% acrescido dos encargos sobre o produto, essa variação de porcentagem deve-se ao fato
que o vendedor tem a possibilidade de repassar os juros ao cliente, já o submarino cobra uma
taxa de 12% a 27% sobre produto mais encargos, essa variação se deve ao nicho de mercado
que o produto está inserido, já a Olx não cobra taxa sobre produto ou serviço vendido, tendo
outros meios de arrecadação.
Após a verificação das taxas aplicadas por cada plataforma, foram analisados o design
e compatibilidade de cada marketplace tendo como objetivo verificar a experiência do usuário
ao utilizar tal serviço, para este estudo utilizou das técnicas de User Interface (UI) e User
Experience (UX) design. Das três marcas analisadas, todos apresentam boa compatibilidade,
com versões para web e dispositivos móveis, porém, apenas o Olx não tem sua plataforma em
versão web responsiva, o que pode dificultar o seu acesso por smartphones ou em
computadores e tablets, no entanto, isso não impediu de ter uma boa experiência de usuário já
que a plataforma foi construída de tal maneira que permite até pessoas leigas no assunto
possam comprar e vender sem ou com pouca dificuldade.
Já na última etapa da análise buscou-se saber como funciona o sistema de
ranqueamento do vendedor (o produto pesquisado aparecer na primeira página), no qual os
três marketplaces utilizam técnicas semelhantes. No Mercado Livre, a regra imposta é: os
primeiros a aparecer nas pesquisas são lojas oficiais, seguidos pelos vendedores que
investiram recursos no marketing interno da plataforma e por último os vendedores com
9
Fonte: Olx.
Após toda esta análise elaborou-se uma tabela comparativa entre os marketplaces
analisados (Tabela 1), tal tabela serviu de parâmetros na construção da plataforma.
encargos
internet, porquê?”. Desta pergunta cerca de 40% dos entrevistados responderam que já vendeu
pela internet e os outros 60% nunca venderam. Os motivos dos comerciantes não possuírem o
seu comércio na internet foram variados, mas dos 40% que já venderam na internet, nenhum
comércio continua ativamente atuando neste meio, apontando os principais motivos de não
manter o negócio online: Alto custo para se manter no mundo virtual, baixa visibilidade e
retorno, altas taxas sobre o produto, além de não receber o treinamento adequado para
manusear a plataforma/loja virtual e suporte inadequado/inexistente.
Entre os 40% que já venderam na internet, 10% continua ativamente divulgando seus
produtos através das mídias sociais, como forma de “mostruário” sem envolver transação
financeira. Para os que nunca venderem pela internet (60% dos entrevistados) os motivos
foram bastante específicos: Não conhecer os meios necessários para montar o negócio online,
creem que tem um alto custo de se manter esse negócio, além de indagar que não conseguirem
enviar mercadorias consideradas grandes e pesadas via Correios, o qual inviabiliza o negócio
online.
Além disso, outro assunto bastante debatido e destacado entre os comerciantes, foi o
valor ideal para se manter o negócio online (Figura 5). Os comerciantes levaram em
consideração para se determinar o valor ideal de um comércio na internet os gastos com sua
loja física, incluindo aluguel, água luz e impostos e os gastos com funcionários e mais a
projeção de ganhos no mundo virtual. Para chegar no valor geral dos comércios analisados,
utilizou-se a matemática estatística conhecida como ‘mediana’, e a partir da mediana o valor
encontrado chegou na faixa de valor de R$ 500,00 ao mês.
12
Figura 5: Valor mensal para se manter o negócio no mundo virtual, sugerido por cada comércio.
Ao final, como está é uma pesquisa qualitativa é necessário tratar todos os dados. Para
o tratamento total dos dados fez-se necessário utilizar o método fenomenográfico, desta
maneira os dados foram tratados de forma não estatística. Conforme indica Vergara (2009,
13
p.57), codificamos os dados para depois estruturá-los analisá-los a fim de extrair os máximos
de requisitos funcionais a ser incorporado na plataforma desenvolvida.
Com os dados dos produtos em mãos, foi realizada uma simulação de envio para as
cidades de Rio Verde e Goiânia, tendo como ponto de partida a cidade de Jataí. Essa
simulação teve o intuito de comparar o preço entre as transportadoras (Tabela 3) e
consequentemente a melhor escolha para os comércios que utilizarem a plataforma Livre
Oferta.
14
Produto: Geladeira/Refrigerador.
Preço por cidades: Rio Verde, Goiânia.
implementação e testes. Durante os ciclos iterativos propriamente ditos que acontece a análise
detalhada do sistema, a modelagem de domínio e o projeto do sistema usando os padrões de
projeto.
Na fase de transição, o sistema, depois de pronto, será implantado substituindo o
sistema atual, seja ele manual ou computadorizado.
Na fase de concepção criamos a visão geral do sistema que consiste em levantar todas
as informações possíveis sobre o negócio, tendo como base a análise de trabalhos correlatos e
pesquisa de campo. A visão geral do sistema é um documento em formato livre (Tabela 4),
que busca trazer o máximo de informação possível de forma sucinta acerca do sistema a ser
desenvolvido.
A Plataforma Livre Oferta baseou-se o seu desenvolvimento seguindo as boas práticas
da metodologia IRUP, assim como estabelecido na metodologia o primeiro passo dado na
construção da plataforma foi a criação da visão geral do sistema. Essa visão é construída em
formato de documento livre (Tabela 4) e tem o objetivo de levantar os principais pontos que a
plataforma Livre Oferta irá abordar, como: “O que o sistema vai fazer? Como fazer? Quem é
o Público Alvo?”.
Nesta etapa levantou-se apenas informações básicas, porém essenciais. Adiante a
visão geral do sistema será expandida conforme a metodologia, para extrair o máximo de
informação que ajudará agregar a plataforma de maneira mais específica.
ao vendedor na internet, já que automaticamente sua loja será indexada aos buscadores
(Google, Bing, Yahoo...), além disso a Loja Virtual já virá pré-configurada..
Após a fase de concepção do sistema no qual se teve uma ideia geral do sistema,
conforme a metodologia IRUP, entramos na fase de Modelagem de Negócio, sendo que para a
primeira modelagem utilizou-se do diagrama de atividade.
Os diagramas de atividades foram empregados para representar processos em nível
organizacional, ou seja, de forma muito mais ampla do que a mera visão de requisitos da
plataforma. A figura 8, representa o fluxo de compras que ocorrerá na plataforma Livre
Oferta, no qual haverá interação entre clientes, plataforma (sistema) e gateway de pagamento.
No qual o cliente seleciona um ou mais produtos e efetua a compra, o sistema informa o valor
total, o cliente seleciona o meio de pagamento e confirma, após estes passos o gateway de
pagamento verifica a validade dos dados financeiro informado pelo cliente, se tudo estiver
correto, sinaliza ao sistema que o pagamento foi aprovado, por fim a compra é finalizada.
Requisitos Funcionais
Requisitos Suplementares
1. Operar via interface web.
2. Operar em sistema operacional Android em sua versão maior ou igual 4.0
Descrição:
O usuário que pretende comprar ou vender, irá se dirigir até a tela de cadastro, no qual irá
preencher os dados solicitados e clicar em cadastrar...
Informação de Entrada:
O Usuário terá que informar seu nome, email, senha e se quer vender ou...
Informação de Saída:
• Dados Cadastrais.
Restrições Lógicas:
Não há.
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
Modeling Language (UML). A UML é uma linguagem que define uma série de artefatos que
ajudou na na tarefa de modelar e documentar os sistemas orientados a objetos.
No caso de uso de alto nível retrata o diagrama UML que representa um dos vários
cenários possíveis na plataforma Livre Oferta ao qual busca retratar o que o sistema faz sobre
o ponto de vista do cliente que deseja adquirir algum produto. Este diagrama remete ao
cenário de carrinho de compras, onde o cliente que é o ator pode adicionar produto ao
carrinho, remover e lista, bem como finalizar o seu pedido de compra desde que esteja logado.
O Caso de uso de alto nível consegue dar uma melhor visão do que a plataforma irá realizar
em cada etapa de seu processo, sempre priorizando a visão do usuário.
Após a elaboração de todos os casos de usos referente a plataforma e documentos de
requisitos, criou-se os chamados caso de uso expandidos. O Caso de uso expandido tem o
objetivo de detalhar o caso de uso de alto nível ao máximo possível (Tabela 7), detalhando e
simulando quais serão as informações de entrada e saída naquele ciclo do sistema e também
presumir quais serão as possíveis variações nas ações dos usuários além de prever quais serão
as exceções que aquele ciclo irá conter.
Na tabela acima podemos ver um típico caso de uso expandido que foi desenvolvido
para plataforma Livre Oferta. Todos os casos de uso expandido seguiram o mesmo padrão,
tendo a informação de entrada informada pelo cliente e representada pela sigla [IN],
recebendo uma resposta do sistema dado a esta ação, representado pela sigla [OUT]. Como
parte fundamental para compreender os passos do cliente, também é retratado na tabela as
variantes, que representam uma variação em um determinado passo que é considerado o mais
comum.
Com a finalização dos casos de usos, deu-se início construção dos diagramas de
sequência do sistema. Um diagrama de sequência descreve a maneira como os grupos de
objetos colaboram em algum comportamento ao longo do tempo. Ele registra o
comportamento de um único caso de uso e exibe os objetos e as mensagens passadas entre
esses objetos no caso de uso. Em síntese: o Diagrama de Sequência é uma das ferramentas
UML usadas para representar interações entre objetos de um cenário, realizadas através de
operações ou métodos (procedimentos ou funções). Este diagrama é construído a partir do
Diagrama de Casos de Usos.
23
Após a modelagem conceitual finalizada, a plataforma Livre Oferta teve toda sua
documentação finalizada, dando condições para iniciar a codificação de forma totalmente
segura e com possíveis falhas de projeto prevenidas. Adentrando ao desenvolvimento e
seguindo toda documentação, o primeiro passo a ser dado foi a construção do banco de dados
com o auxílio do sistema gerenciador de banco de dados (SGBD) Mysql (APENDICE B).
principais sistemas de pagamento online do Brasil (Tabela 8), que são eles: Pagseguro,
Paypal, Mercado Pago e Moip.
Após a comparação entre os sistemas de pagãmente, optou-se por adotar a plataforma Moip,
pelo fato de já ter um suporte aos marketplaces, além de ter o menor tempo de liberação de
pagamento e uma baixa taxa sobre o valor parcelado.
A primeira ligação entre a plataforma desenvolvida e o sistema de pagamento ocorre
ao realizar o cadastro na Livre Oferta, o vendedor automaticamente terá sua conta financeira
(Carteira Virtual) gerado junto ao Moip, que posteriormente deverá informar seus dados
bancários e efetuar o saque de seus ganhos em até 14 dias correntes.
Para aumentar a segurança das transações a API Moip trabalha com o conceito de
criptografia ponta-a-ponta. Isto é, os dados sensíveis de cartão de crédito são criptografados
nas aplicações clientes (browser, apps) e somente são descriptografados nos servidores do
Moip. Além disso, a Moip utiliza a arquitetura RestFull para se comunicar com a plataforma
Livre Oferta, criando uma linha direta e segura, tanto na criação da conta do cliente quando na
realização de vendas. .
Uma das vantagens deste sistema de pagamento é que têm a soluções ao que se refere
Marketplace, incluindo um rigoroso serviço anti-fraude, dando total suporte ao vendedor para
poder retirar os seus lucros, além de atuar como mediador caso o cliente queira ressarcir o
dinheiro.
O produto desenvolvido atuará como uma plataforma semi-embarcada em relação ao
sistema Moip de pagamentos (Tabela 9), isso significa que algumas funções serão utilizadas
dentro da plataforma como gerar o painel financeiro do vendedor, permitir o reembolso,
dentro outros, já outras funções a princípio não serão integradas a Livre Oferta, como salvar
dados financeiros e permitir o saque de seus ganhos dentro da plataforma, dentre outros.
Fonte: Moip.
27
3. PRODUTO DESENVOLVIDO
Nesta secção apresentaremos as partes principais do produto desenvolvido, bem como trechos
de códigos que se tornaram essencial em nossa aplicação. .
Assim que o usuário acessar nossa aplicação a primeira coisa que conseguirá
visualizar será a tela inicial da plataforma, tanto na versão destinada a web quando para
dispositivos Android (Figura 14). A tela inicial traz consigo a exibição de alguns produtos em
destaque, produtos separados em categorias, bem como frases visíveis para quem estiver
navegando possa comprar ou vender os seus produtos dentro plataforma. A pagina inicial
empregou técnicas eficientes de UI e UX design muito utilizada por outros marketplaces,
essas técnicas foram adotadas após a análise de trabalhos correlatos, uma das técnicas é a
estruturação do layout de forma intuitiva, permitindo ter acesso rápido a pesquisa e as
políticas da plataforma, além da diversificação de produtos no qual é muito difundido no
comercio eletrônico, cujo o objetivo é fazer o consumidor pensar em comprar produtos além
do que ele estava imaginando a princípio quando acessou o sistema.
Após a pagina inicial, caso o usuário queira comprar ou vender na plataforma terá que
obrigatoriamente criar sua conta em nosso sistema. No processo de criação de uma nova
conta, o usuário poderá optar por comprar na plataforma ou vender dentro da plataforma os
seus produtos, para tal processo ocorrer, basta selecionar uma das duas opções (Figura 15). Se
o usuário optar por ser vendedor também terá sua carteira financeira criada junto ao sistema
financeiro Moip, ao qual permitirá receber os lucros de suas vendas realizadas através da
plataforma.
importante, pois na codificação temos que especificar quem terá a carteira financeira gerada
junto a plataforma Moip.
Fonte: Moip
Após efetuar o cadastro, os usuários poderão fazer o login em suas contas utilizando o
seu e-mail e senha. O Vendedor e o consumidor terão contas com o visual semelhante, mas
com funcionalidades totalmente distintas.
Na conta do vendedor (Figura 18), poderá cadastrar os seus produtos, visualizar o
estoque, colocar o código de rastreio nas vendas realizadas, responder pergunta dos clientes,
visualizar avaliações recebidas, realizar campanha digital e por fim ter acesso ao seu painel
financeiro.
Por outro lado, o cliente consumidor terá uma conta mais simples do que o vendedor,
empregando bem menos funcionalidades (Figura 19). O cliente consumidor poderá
acompanhar suas compras realizadas, visualizar as perguntas realizadas, atualizar o seu
endereço bem como seus dados, avaliar o vendedor e por fim terá acesso a cartilha de direito
ao consumidor disponibilizado pela entidade máxima no comercio eletrônico brasileiro a
eCommerce Brasil.
Ainda na página de produto, é possível o cliente sanar suas dúvidas referente ao produto
bastando apenas preencher um campo e enviar sua pergunta (Figura 21).
Após acessar o produto, para o cliente efetuar uma compra o processo é bastante
simples, bastando apenas informar o cep e clicar no botão comprar. Após clicar no botão a
33
plataforma verifica se o usuário está logrando em sua conta, caso não esteja o sistema irá
pedir que o mesmo faça o login ou crie uma conta. Após isso, o sistema irá apresentar ao
cliente 4 breves passos para que ele consiga fazer sua compra com total segurança. O primeiro
passo é visualizar o seu carrinho de compras, o segundo passo é verificar o endereço de
entrega, o terceiro passo é escolher o método de pagamento e realizar o pagamento e o quarto
passo é receber o aviso de que a compra foi realizada com sucesso ou não.
O primeiro passo é visualizar o carrinho de compra, através desta etapa o
usuário pode adicionar maiores quantidade de produtos ou remover produtos, bem como tem
acesso a lista de todos os produtos que estão sendo comprado, além de saber o valor exato do
frete (Figura 22).
Após o cliente visualizar os produtos em seu carrinho de compra, basta ele clicar em
próximo passo, para ir para tela de confirmar o endereço de entrega do produto (Figura 23)
34
Adentrando a parte estrutural do pagamento ao que se refere código fonte, temos algo
bem sucinto e objetivo (Figura 25).
No código fonte acima temos a chamada para criação do pedido de compra, ao qual
consiste em pegar o id do cliente, adicionar os produtos que estavam no carrinho de compra e
36
atrelar tudo isso a um vendedor. Quando tudo isso ocorrer, o sistema recebe um ID do pedido
via requisição JSON, ao qual adiciona esse ID do pedido juntamente aos dados financeiros
fornecidos pelo cliente (Figura 26).
No código fonte acima (Figura 26) é onde ocorre de fato o pagamento para o
vendedor. A variável $customer recebe o Id do pedido de compra criado. Neste código uma
das questões mais importantes é o ‘setCreditCard’, essa operação consegue pegar os dados do
cartão inserido, além de pegar o valor do pedido e posteriormente a função ‘execute’ acaba
finalizando a compra.
Com a venda realizada, o sistema avisa o vendedor que possui uma nova venda e
necessita de enviar o código de rastreio. Quando o vendedor envia o produto ao cliente, o
sistema notifica a mesma via plataforma e e-Mail.
4. TECNOLOGIAS UTILIZADAS
Para construção desta plataforma foram utilizadas as tecnologias voltadas a área web e
desenvolvimento Android. No construção web, as tecnologias empregadas na fase de back-
38
end foram: Linguagem de programação PHP, banco de dados Mysql, Arquitetura Resfull e
MVC. Já na etapa de front-end utilizou se as tecnologias Html5, Css3, Jquery. Além do uso
de Frameworks Laravel e Bootstrap.
Adotou-se IDE de desenvolvimento PHPStorm para a construção de todo os códigos
do projeto. Para dispositivos móveis utilizou a linguagem de programação Java e a Ide de
desenvolvimento Android Studio que serão detalhados abaixo.
Na parte estrutural do projeto, adotou-se o Laravel, um framework PHP livre e de
código aberto, especialmente criado para o desenvolvimento de sistemas web e que segue o
padrão MVC (model, view, controller). Algumas características proeminentes do Laravel são:
sua sintaxe simples e concisa, um sistema modular com gerenciador de dependências
dedicado, várias formas de acesso a banco de dados relacionais e vários utilitários
indispensáveis no auxílio ao desenvolvimento e manutenção de sistemas.
Atualmente Laravel tem uma enorme comunidade, que faz com que ele sofra
melhorias constantes, e possui excelente sistema de segurança, já que sua arquitetura é toda
baseada no MVC e graças a isso todos dados transitados dentro da plataforma Livre Oferta
são automaticamente criptografados, impedindo assim acesso externo aos dados trocados.
Na questão do desenvolvimento do projeto em sí, empregou-se uma das mais
populares linguagem de programação atualmente, o PHP em sua versão 7.0. Optou-se por
adotar essa linguagem pelo fato de ser orientado a objetos, sintaxe simples além de ser
interpretada com isso, torna-se multiplataformas. Por meio do PHP todas funções da Livre
Oferta foram desenvolvidas, como por exemplo, cadastro do vendedor, cliente, enviar
notificações, dentro dezenas de outras funções.
Para armazenar todos os dados gerados pela plataforma, decidiu-se pelo sistema de
gerenciamento de banco de dados (SGBD) Mysql em sua versão 5.7. O Mysql utiliza a
linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language).
Alguns dos fatores determinantes na escolha deste SGBD foram: Atualmente é o mais
utilizado no mundo, possui portabilidade (suporta praticamente qualquer plataforma atual),
excelente desempenho e estabilidade, pouco exigente quanto a recursos de novos hardware,
facilidade no manuseio, além de ser um Software Livre com base na GP.
No intuito da plataforma Livre Oferta ter maior segurança e organização, adotou a
arquitetura de software Model-view-controller (MVC), em português modelo-visão-
controlador, que é um padrão de arquitetura de software que separa a representação da
informação da interação do usuário com ele. O modelo (model) consiste nos dados da
aplicação, regras de negócios, lógica e funções. Uma visão (view) pode ser qualquer saída de
39
representação dos dados, como uma tabela de produtos. É possível ter várias visões do mesmo
dado, como um gráfico de barras para gerenciamento e uma visão tabular para contadores. O
controlador (controller) faz a mediação da entrada, convertendo-a em comandos para o
modelo ou visão. As ideias centrais por trás do MVC são a reusabilidade de código e
separação de conceitos.
Para maior segurança na troca de dados financeiros foram utilizado a arquitetura
RestFull. A Representational State Transfer (REST), em português Transferência de Estado
Representacional, é uma abstração da arquitetura da World Wide Web, mais precisamente, é
um estilo arquitetural. REST ignora os detalhes da implementação de componente e a sintaxe
de protocolo com o objetivo de focar nos papéis dos componentes, nas restrições sobre sua
interação com outros componentes e na sua interpretação de elementos de dados significantes.
Na etapa do desenvolvimento visual do projeto conhecida como front-end, adotou-se
a linguagem de marcação HTML5 e CSS3. O HTML 5 é uma linguagem de estruturação e
apresentação de conteúdos para world wide web (www) e também é a quinta versão do
HTML, no qual trouxe melhorias significativas que foram amplamente utilizadas neste
projeto, como a semântica e acessibilidade aos usuários.
Já o CSS3 tem a finalidade de complementar o HTML de maneira geral , onde se
define estilos para páginas web com efeitos de transição, imagem, e outros, que dão um estilo
novo às páginas Web 2.0 em todos os aspectos de design do layout. A principal função do
CSS3 é abolir as imagens de plano de fundo, bordas arredondadas, apresentar transições e
efeitos para criar animações de vários tipos. Isso se deve aos novos browsers que estão
chegando, com suporte à essa linguagem, como o Google Chrome, Opera, Internet Explorer 9,
Safari e Mozilla Firefox. Assim, o CSS3 ajuda a deixar o design mais harmonioso da
plataforma Livre Oferta.
Para desenvolver principalmente os slides e algumas funções para transporte de dados,
utilizou-se a biblioteca javascript conhecida como Jquery. O Jquery interage de forma direta
com o HTML, principalmente em suas versões 4 e 5. Além disso, o Jquery é uma biblioteca
de código aberto que apresenta uma proposta de redução e reutilização de código
principalmente em relação ao Javascript nativo, trabalha com AJAX e tem total
compatibilidade com o css3.
Na parte estrutural do layout da plataforma adotou-se a framework Bootstrap, que
consiste de uma série de estilos LESS que implementam os vários componentes do kit de
ferramentas além de ser totalmente modular.
40
Por fim, todos estes conjuntos de tecnologias permitiu que a plataforma Livre Oferta
pudesse ser desenvolvida.
.
5. CONSIDERAÇÕES FINAIS
O objetivo deste trabalho foi desenvolver uma plataforma marketplace cujo permita
que terceiros comercialize os seus produtos e receba o valor integral, ao qual este objetivo foi
atingido com sucesso.
Além disso, a plataforma buscou amenizar os problemas apontados no início desta
pesquisa, dentre esses problemas foram permitir a comercialização de produtos novos/usados
com pouca restrição de carga para todo Brasil, além de que qualquer pessoa possa ter sua
conta criada na plataforma e apta para efetuar compra ou venda sem nenhuma burocracia.
Por fim, esta pesquisa alcançou os objetivos propostos.
6. TRABALHOS FUTUROS
Facebook Ads, porém a plataforma não consegue acompanhar de forma efetiva o marketing
gerado.
REFERÊNCIAS
ALBERTIN, Luiz Alberto. Comércio Eletrônico. 5. Ed.- São Paulo: Atlas, 2004
E-BIT. Lucro Ecommerce ano de 2001. Ecommerce, São Paulo, v. 1, n. 1, p.1-25, 14 out.
2009.
ERPFLEX. Entenda Como Funciona Um Marketplace. São Paulo, 2017. Disponível em:
<https://www.erpflex.com.br/blog/marketplace>. Acesso em: 25 out. 2017.
GERHARDT, Tatiana Engel; SILVEIRA, Denise Tolfo. Métodos de Pesquisa. Porto Alegre:
Ufrgs, 2009.
GIL, Antonio Carlos. Como elaborar projetos de pesquisa. 4. ed. São Paulo: Atlas, 2008.
GUIMARÃES, Sidnei. Pesquisa qualitativa versus Pesquisa quantitativa. São Paulo: Ead,
2017.
42
IVO, Diego. A crise do varejo tradicional, a ascensão do comércio eletrônico. São Paulo:
Conversion, 2016. Disponível em: <https://www.conversion.com.br/blog/a-crise-do-varejo-
tradicional-a-ascensao-do-comercio-eletronico/>. Acesso em: 09 nov. 2017.
JUNG, Carlos Fernando. Tipos de pesquisa. In: ______. Elaboração de artigos científicos.
2003. Disponível em: <www.jung.pro.br>. Acesso em: 01 ago. 2017.
SAPAGE DA CANHOTA JUNIOR, Antonio Jorge et al. Engenharia Reversa. 1. ed. Rio de
Janeiro: Universidade Federal Fluminense, 2005. 7 p.
SEBRAE MINAS GERAIS (Minas Gerais). Marketplaces atuais são ideais para iniciar no
comércio eletrônico. Belo Horizonte: Sebrae, 2016. Disponível em:
<https://sebrae.ms/empreendedorismo/marketplace-vendas-na-internet/>. Acesso em: 19 out.
2016.
SHUJA, Ahmad K.; KREBS, Jochen. IBM Rational Unified Process Reference and
Certification Guide: Solution Designer. New York: Ibm Press, 2008.
METODOLOGIA IRUP
IBM Rational Unified Process (IRUP)
(Processo Racional Unificado)
LIVRE OFERTA:
Plataforma marketplace que viabiliza transações comerciais utilizando
tecnologias web-mobile.
A Livre Oferta será uma plataforma marketplace que possibilitará qualquer pessoa ou
empresa comercializar os seus produtos / serviços a todo Brasil. A proposta da plataforma é
ser construída de tal maneira que permita até mesmo os leigos em tecnologia consiga vender
ou comprar produtos sem nenhuma dificuldade. Inicialmente a plataforma foi projetada em
sua versão web e para dispositivo android. Algumas funcionalidades da plataforma irá se
diferenciar de outras plataformas semelhantes, como: O primeiro diferencial da plataforma
corresponde na hora do cadastro de usuário. Se o novo usuário optar por ser um vendedor,
este usuário além de poder vender dentro da plataforma Livre Oferta, também terá sua loja
virtual criada automaticamente e com domínio próprio, podendo até optar por dominios
personalizados (.com, .com.br...). O Intuito da criação da loja virtual é dar maior visibilidade
ao vendedor na internet, já que automaticamente sua loja será indexada aos buscadores
(Google, Bing, Yahoo...), além disso a Loja Virtual já virá pré-configurada, bastando o
vendedor selecionar um dos mais de 20 templates de lojas virtuais disponíveis e informar
dados básicos de seu empreendimento, após estes passos a loja do vendedor estará online.
Com isto pode-se personalizar a loja como bem entender já que muitas partes são editáveis.
Todos produtos postados na plataforma já estará associado a loja virtual do vendedor. Além
da plataforma permitir o envio de mercadorias via correios, a plataforma possibilitará que os
vendedores enviem seus produtos via transportadora. O Objetivo disto é sanar um grave
problema que se tem em alguns marketplaces, como enviar produtos grandes (Geladeira,
Móveis, etc..), no qual os correios não realiza esta atividade.Além de comercializar na
plataforma, a Livre Oferta oferecerá as ferramentas necessárias para que os vendedores
consiga atingir seu público alvo, através do Marketing Digital. Dentro da plataforma o
vendedor poderá criar sua campanha digital de maneira bem simples, apenas selecionando
a(s) cidade(s) ou estado(s) e informando o valor total a ser gasto, com base nisso a plataforma
irá apresentar ao vendedor a quantidade de público que pode ser alcançado, em quais redes
sociais irá ocorrer o marketing, além da duração da campanha e quantidade de postagens
semanais. De maneira simples e com um baixo custo o vendedor alcançará seu público com
um trabalho profissional. Interação direta entre cliente e vendedor. A plataforma irá permitir a
47
comunicação direta entre cliente e vendedor sem nenhuma restrição, além de permitir criar
anúncios especiais para o cliente em conversa.
Diagrama de Atividades
Para melhor compreensão do funcionamento da plataforma, será criado modelos das
atividades de negócio. Os diagramas de atividades podem ser usados para representar
processos em nível organizacional, uma forma muito mais ampla do que a mera visão de
requisitos de um sistema informatizado.
1 Cadastro de Usuário
Diagrama Cadastro de Usuário: Representa fluxo que cada novo usuário irá percorrer ao se
cadastrar na plataforma.
48
2 Fluxo de Compra
3 Perguntas e Respostas
Ao entrar na página inicial da plataforma, se o usuário não possuir uma conta basta
clicar em cadastrar-se, caso tenha uma conta basta clicar em entrar em minha conta.
Ao clicar em cadastrar-se, será redirecionado para página de cadastro, no qual terá que
preencher um formulário contendo os seguintes atributos: Nome, Email, Senha, e selecionar a
opção ‘Desejo: Comprar/Vender’, o usuário selecionará a opção ‘Comprar’. Após preencher
todos os dados, será clicado/tocado no botão ‘Cadastrar’.
Após realizar o cadastro na plataforma, o usuário será redirecionado para página
inicial, com o status ‘Logado no Sistema’. Com este status o usuário poderá optar por realizar
uma compra ou acessar o painel de controle.
Se o usuário optar por acessar o painel de controle, ao entrar no painel, encontrará as
seguintes opções: Meus Dados, Minhas Compras, Perguntas Realizadas, Endereço de Entrega,
Favoritos, Alterar Senha e Direito do Consumidor.
• Meus Dados: Nesta parte irá conter os dados do usuário a ser completado após seu
cadastro. Terá um formulário contendo nome,telefone,idade,sexo,cpf/cnpj,endereço
(Rua,Bairro,Cep,Número). Observações: Se o consumidor na hora de efetuar uma
compra não estiver com os dados principais como endereço/cpf preenchido, será
emitido um alerta.
• Minhas Compras: Nesta parte mostrará todas as compras realizadas pelo usuário,
exibindo o produto (imagem, nome, valor), dados do vendedor (Nome,E-
mail,Telefone), e a forma de compra (a vista, ou parcelado, se parcelado exibir em
quantas vezes), além do status de entrega do produto, ‘Em Trânsito/ Entregue’
• Perguntas Realizadas: Nesta parte irá exibir todas perguntas que o usuário efetuou ao
vendedor junto com suas respostas. Nessa etapa as perguntas serão dividas em duas
categorias: Respondidas e Não Respondidas.
• Endereço de Entrega: Este endereço será o mesmo endereço que será cadastrado na
categoria ‘Meus Dados’, porém será exibido no painel de controle de forma separada
para melhor entendimento dos usuários, principalmente os leigos.
51
• Favoritos: Nesta parte terá uma lista de produtos que o usuário marcou como favorito,
contendo nome do produto, valor, imagem e nome do vendedor..
• Alterar Senha: Nesta parte terá um formulário onde o usuário informará sua nova
senha.
• Direito do Consumidor: Neste parte será exibido um texto com os direitos do
consumidor com base na legislação brasileira do e-commerce.
Se o usuário optar por efetuar uma compra, na página inicial da plataforma o
consumidor já terá diversas opções de produtos, seja pelo slideshow, produtos em destaque e
por meio das categorias, caso ainda não encontre o produto desejado, o usuário poderá optar
por fazer uma pesquisa na plataforma através de sua barra de pesquisa.
Após o produto desejado for encontrado, o usuário irá clicar em cima da imagem ou
nome do produto, após essa ação o usuário será redirecionado a página do produto solicitado,
nesta página terá todas informações sobre o produto (Nome, Descrição,Valor e Imagens) e
avaliação a respeito da qualidade do vendedor. Na página do produto o usuário poderá realiza
as seguintes ações:
• Calcular Frete: Com base no CEP informado e quantidade do produto, será
informado ao usuário o valor do frete é o tempo médio de entrega.
• Enviar Mensagem ao Vendedor: O usuário poderá preencher um campo e enviar
sua dúvida sobre o produto para o vendedor.
• Efetuar Compra do Produto: O usuário terá que clicar no botão comprar e será
redirecionado para página de efetuar pagamento. Nesta página irá escolher a forma de
pagamento e confirmar o endereço de entrega, produto e frete, após tudo revisado o
usuário irá clicar no botão finalizar
Após a compra o usuário receberá o código de rastreio de seu produto. Assim que o
produto chegar até o local de destino, o usuário avaliará o vendedor com base na mercadoria
que lhe foi entregue.
Do usuário (Vendedor):
Ao entrar na página inicial da plataforma, se o usuário não possuir uma conta basta
clicar em cadastrar-se, caso tenha uma conta basta clicar em entrar em minha conta.
Ao clicar em cadastrar-se, será redirecionado para página de cadastro, no qual terá que
preencher um formulário contendo os seguintes atributos: Nome, Email, Senha, e selecionar a
opção ‘Desejo: Comprar/Vender’, o usuário selecionará a opção ‘Vender’. Após preencher
todos os dados, será clicado/tocado no botão ‘Cadastrar’.
52
Requisitos do Sistema
A etapa de levantamento de requisitos corresponde a buscar todas as informações possíveis
sobre as unções que o sistema deve executar e as restrições sobre as quais o sistema deve
operar. O produto dessa etapa será o documento de requisitos, principal componente do
anteprojeto de software.
Requisitos Funcionais
Requisitos Suplementares
1. Operar via interface web.
2. Operar em sistema operacional Android em sua versão maior ou igual 4.0
Requisitos Expandidos
Descrição:
O usuário que pretende comprar ou vender, irá se dirigir até a tela de cadastro, no qual irá
preencher os dados solicitados e clicar em cadastrar. Após essa ação o usuário já estará
devidamente cadastrado cabendo a ele apenas a completar os seus dados adicionais. Ou se o
usuário preferir basta logar com sua conta do Google ou Facebook.
Informação de Entrada:
O Usuário terá que informar seu nome, email, senha e se quer vender ou comprar. Após isso
terá que informar os dados adicionais, como telefone, sexo, idade, endereço e cpf/cnpj (para
receber ou emitir notas fiscais).
Informação de Saída:
• Dados Cadastrais.
Restrições Lógicas:
Não Há.
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
55
Descrição:
O Vendedor irá cadastrar os produtos a ser comercializados. Após o cadastro do mesmo já
estará disponível para venda.
Informação de Entrada:
O Vendedor terá que informar o nome do produto, descrição, categoria, valor, peso
aproximado, além de cadastrar as imagens referente ao produto.
Informação de Saída:
• Dados do Produto.
Restrições Lógicas:
Deve-se ser ter um conta de usuário
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
Descrição:
Ao realizar o cadastro o vendedor poderá montar sua loja virtual com domínio próprio. O
Objetivo desta loja é dar maior visibilidade ao negócio no mundo virtual.
Informação de Entrada:
O Vendedor terá que informar o nome da sua loja, uma breve descrição, além de sua
categoria/template e imagens como logomarca e banner.
Informação de Saída:
• Dados do E-commerce.
Restrições Lógicas:
Deve-se ser ter um conta de vendedor
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
56
Descrição:
Para maior comodidade e agilidade, a plataforma irá permitir o cadastro de novas
transportadoras, o cadastro será feito a partir da solicitação de algum vendedor. Tal requisito
permite que a plataforma não fique apenas com o sistema dos correios.
Informação de Entrada:
O Vendedor terá que informar apenas o nome e dados da transportadora, posteriormente se
aprovado, todos os dados referente a mesma será adicionada ao sistema, bem como tabela de
valores e código de rastreio.
Informação de Saída:
• Dados da Transportadora
Restrições Lógicas:
Deve-se ser ter um conta de vendedor
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
Descrição:
Para maior diversidade da plataforma o vendedor poderá colocar os seus produtos em
destaques como ‘promoção’ para atrair um número maior de clientes.
Informação de Entrada:
Para elaborar a promoção o vendedor deverá selecionar o produto e informar o novo valor ou
não.
Informação de Saída:
• Dados da Promoção
Restrições Lógicas:
Deve-se ser ter um conta de vendedor
Restrições Tecnológicas:
2. Deve-se ter conexão com internet de no mínimo 175 kbps.
Descrição:
O usuário irá selecionar o produto que deseja comprar, escolher a quantidade, conferir o valor
e realizar o pagamento do mesmo.
Informação de Entrada:
O Usuário seleciona quantidade, cor (se houver), tamanho (se houver), endereço e
posteriormente informar os meios de pagamentos.
Informação de Saída:
• Dados da compra
Restrições Lógicas:
Deve-se ser ter um conta de usuário.
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
Descrição:
O Cliente irá sanar suas dúvidas a respeito de algum determinado produto com o vendedor do
mesmo.
Informação de Entrada:
O usuário enviará uma mensagem.
Informação de Saída:
• Mensagem Enviada
Restrições Lógicas:
Deve-se ser ter um conta de usuário.
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
Descrição:
Após efetuar a compra e receber o produto, o cliente avalia o vendedor com nota 1 a 5
Informação de Entrada:
O Cliente seleciona o produto e informa a nota
58
Informação de Saída:
• Nota enviada
Restrições Lógicas:
Deve-se ter um conta de usuário.
Deve-se ter confirmado o recebimento do produto
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
Descrição:
Nesta parte o cliente selecionará o produto e adicionar ao seu carrinho de compra.
Informação de Entrada:
Selecionar produto e quantidade.
Informação de Saída:
• Lista de Produtos (Nome)
• Quantidade
• Valores
Restrições Lógicas:
Deve-se ter um conta de usuário.
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
Descrição:
O Cliente seleciona o produto e armazena o mesmo em seus favoritos.
Informação de Entrada:
Seleciona o produto a ser salvo.
Informação de Saída:
• Lista de Produtos (Nome)
• Quantidade
• Valores
Restrições Lógicas:
59
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
Descrição:
O Vendedor irá criar uma campanha digital para divulgar nas cidades ou estado escolhida
pelo mesmo.
Informação de Entrada:
O Vendedor irá informar o nome da campanha, cidades de atuação, público alvo e valor a ser
gasto.
Informação de Saída:
• Público a ser alcançado.
• Tempo de Publicidade
• Redes Sociais a ser utilizadas
Restrições Lógicas:
Deve-se ter um conta de vendedor.
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
Descrição:
O Vendedor poderá ter acesso ao relatório de suas vendas.
Informação de Entrada:
Não há
Informação de Saída:
• Nome dos produtos vendidos
• Valor
• Quantidade
• Dados do Cliente
• Data de Compra
• Data de Envio
• Código de Rastreio
Restrições Lógicas:
60
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
Descrição:
O Vendedor terá acesso ao estoque de seus produtos.
Informação de Entrada:
Não há.
Informação de Saída:
• Lista de Produtos (nome).
• Quantidade em Estoque.
• Valor.
Restrições Lógicas:
Deve-se ter um conta de vendedor.
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
Descrição:
O Vendedor terá acesso a todas perguntas recebidas.
Informação de Entrada:
Não há.
Informação de Saída:
• Lista de Perguntas.
• Nome do Cliente
Restrições Lógicas:
Deve-se ter uma conta de cliente.
Deve-se ter um conta de vendedor.
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
61
Descrição:
O Vendedor/Usuário terá acesso a todas avaliações Realizada/Recebidas.
Informação de Entrada:
Não há.
Informação de Saída:
• Lista de Perguntas.
• Nome do Cliente
Restrições Lógicas:
Deve-se ter uma conta de cliente.
Deve-se ter uma conta de vendedor.
Restrições Tecnológicas:
1. Deve-se ter conexão com internet de no mínimo 175 kbps.
Descrição:
O Cliente visualiza suas últimas compras realizadas.
Informação de Entrada:
Não há.
Informação de Saída:
• Lista de Perguntas.
• Nome do Cliente
Restrições Lógicas:
Deve-se ter uma conta de cliente.
Deve-se ter uma conta de vendedor.
Restrições Tecnológicas:
2. Deve-se ter conexão com internet de no mínimo 175 kbps.
62
6-
Diagrama Caso de Uso : Venda
66
Realizada
Siglas:
Modelagem Conceitual
O modelo conceitual deve descrever a informação que o sistema vai gerenciar. Trata-se de um
artefato do domínio do problema e não do domínio da solução. Portanto, o modelo conceitual
não deve ser confundido com a arquitetura do software (representada no DCP, ou diagrama de
classes de projeto) porque esta, embora inicialmente derivada do modelo conceitual, pertence
ao domínio da solução e, portanto, serve a um objetivo diferente.O modelo conceitual também
não deve ser confundido com o modelo de dados , pois o modelo de dados enfatiza a
representação e a organização dos dados armazenados, enquanto o modelo conceitual visa a
representar a compreensão da informação e não a sua representação física. Assim, um modelo
de dados relacional é apenas uma possível representação física de um modelo conceitual mais
essencial.
76
Códificação:
-- ----------------------------------------------------- -- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS -- Table `mydb`.`categorias`
`mydb`.`usuarios` ( -- -----------------------------------------------------
`id` INT NOT NULL AUTO_INCREMENT, CREATE TABLE IF NOT EXISTS
`nome` VARCHAR(45) NULL, `mydb`.`categorias` (
`email` VARCHAR(45) NULL, `id` INT NOT NULL,
`senha` VARCHAR(45) NULL, `nome` VARCHAR(100) NULL,
`cpf` VARCHAR(11) NULL, PRIMARY KEY (`id`))
`cnpj` VARCHAR(25) NULL, ENGINE = InnoDB;
`tipoConta` VARCHAR(45) NULL,
`dtCadastro` VARCHAR(45) NULL, -- -----------------------------------------------------
PRIMARY KEY (`id`)) -- Table `mydb`.`produtos`
ENGINE = InnoDB; -- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS
-- ----------------------------------------------------- `mydb`.`produtos` (
-- Table `mydb`.`enderecos` `id` INT NOT NULL,
-- ----------------------------------------------------- `id_vendedores` INT NOT NULL,
CREATE TABLE IF NOT EXISTS `id_categorias` INT NULL,
`mydb`.`enderecos` ( `nome` VARCHAR(45) NULL,
`id` INT NOT NULL, `valor` FLOAT NULL,
`id_usuarios` INT NOT NULL, `status` VARCHAR(45) NULL,
`rua` VARCHAR(45) NULL, `quantidade` INT NULL,
`bairro` VARCHAR(45) NULL, `peso` DOUBLE NULL,
`numero` INT(11) NULL, `descricao` VARCHAR(6000) NULL,
`cep` VARCHAR(45) NULL, `dtCadastro` VARCHAR(45) NULL,
`cidade` VARCHAR(45) NULL, PRIMARY KEY (`id`),
`estado` VARCHAR(45) NULL, INDEX `id_categorias_fk_idx` (`id_categorias`
`complementos` VARCHAR(500) NULL, ASC),
PRIMARY KEY (`id`), CONSTRAINT `id_categorias_fk`
INDEX `id_usuarios_fk_idx` (`id_usuarios` FOREIGN KEY (`id_categorias`)
ASC), REFERENCES `mydb`.`categorias` (`id`)
CONSTRAINT `id_usuarios_fk` ON DELETE NO ACTION
FOREIGN KEY (`id_usuarios`) ON UPDATE NO ACTION)
REFERENCES `mydb`.`usuarios` (`id`) ENGINE = InnoDB;
ON DELETE CASCADE
ON UPDATE CASCADE) -- -----------------------------------------------------
ENGINE = InnoDB; -- Table `mydb`.`imagens`
-- ----------------------------------------------------- -- -----------------------------------------------------
-- Table `mydb`.`telefones` CREATE TABLE IF NOT EXISTS
-- ----------------------------------------------------- `mydb`.`imagens` (
CREATE TABLE IF NOT EXISTS `id` INT NOT NULL,
`mydb`.`telefones` ( `id_produtos` INT NOT NULL,
`id` INT NOT NULL, `nome` VARCHAR(300) NULL,
`id_usuarios` INT NOT NULL, PRIMARY KEY (`id`),
`ddd` VARCHAR(3) NULL, INDEX `id_produtos_fk_idx` (`id_produtos`
`numero` VARCHAR(12) NULL, ASC),
PRIMARY KEY (`id`), CONSTRAINT `id_produtos_fk`
INDEX `id_usuarios_fk_idx` (`id_usuarios` FOREIGN KEY (`id_produtos`)
ASC), REFERENCES `mydb`.`produtos` (`id`)
CONSTRAINT `id_usuarios_fk` ON DELETE NO ACTION
FOREIGN KEY (`id_usuarios`) ON UPDATE NO ACTION)
REFERENCES `mydb`.`usuarios` (`id`) ENGINE = InnoDB;
78
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB; -- -----------------------------------------------------
-- Table `mydb`.`meus_carrinhos`
-- ----------------------------------------------------- -- -----------------------------------------------------
-- Table `mydb`.`compras_vendas_realizadas` CREATE TABLE IF NOT EXISTS
-- ----------------------------------------------------- `mydb`.`meus_carrinhos` (
CREATE TABLE IF NOT EXISTS `id` INT NOT NULL,
`mydb`.`compras_vendas_realizadas` ( `id_consumidores` INT NOT NULL,
`id` INT NOT NULL, `id_produtos` INT NOT NULL,
`id_carrinho` INT NOT NULL, `quantidade` INT NULL,
`codigo_rastreio` VARCHAR(45) NULL, `valor` FLOAT NULL,
`status` VARCHAR(45) NULL, PRIMARY KEY (`id`),
`dtCadastro` VARCHAR(45) NULL, INDEX `id_produtos_fk_idx` (`id_produtos`
PRIMARY KEY (`id`, `id_carrinho`), ASC),
INDEX `idCarrinho_idx` (`id_carrinho` ASC), INDEX `IdConsumidores_idx`
CONSTRAINT `idCarrinho` (`id_consumidores` ASC),
FOREIGN KEY (`id_carrinho`) CONSTRAINT `id_produtos_fk`
REFERENCES `mydb`.`meus_carrinhos` FOREIGN KEY (`id_produtos`)
(`id`) REFERENCES `mydb`.`produtos` (`id`)
ON DELETE NO ACTION ON DELETE NO ACTION
ON UPDATE NO ACTION) ON UPDATE NO ACTION,
ENGINE = InnoDB; CONSTRAINT `IdConsumidores`
FOREIGN KEY (`id_consumidores`)
REFERENCES `mydb`.`usuarios` (`id`)
-- ----------------------------------------------------- ON DELETE NO ACTION
-- Table `mydb`.`perguntas_realizadas` ON UPDATE NO ACTION)
-- ----------------------------------------------------- ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS
`mydb`.`perguntas_realizadas` ( -- -----------------------------------------------------
`id` INT NOT NULL, -- Table `mydb`.`avaliacoes`
`id_vendedores` INT NOT NULL, -- -----------------------------------------------------
`id_consumidores` INT NULL, CREATE TABLE IF NOT EXISTS
`idProduto` INT NOT NULL, `mydb`.`avaliacoes` (
`descricao` VARCHAR(300) NULL, `id` INT NOT NULL,
`dtCadastro` VARCHAR(45) NULL, `id_consumidores` INT NOT NULL,
PRIMARY KEY (`id`, `idProduto`), `id_vendedores` INT NOT NULL,
INDEX `idVendedor_idx` (`id_vendedores` `id_produtos` INT NOT NULL,
ASC), `nota` INT NULL,
INDEX `idProduito` (`idProduto` ASC), `comentario` VARCHAR(500) NULL,
CONSTRAINT `idVendedor` PRIMARY KEY (`id`),
FOREIGN KEY (`id_vendedores`) INDEX `id_produtos_fk_idx` (`id_produtos`
REFERENCES `mydb`.`usuarios` (`id`) ASC),
ON DELETE NO ACTION CONSTRAINT `id_produtos_fk0`
ON UPDATE NO ACTION, FOREIGN KEY (`id_produtos`)
CONSTRAINT `idProduto` REFERENCES `mydb`.`produtos` (`id`)
FOREIGN KEY (`idProduto`) ON DELETE NO ACTION
REFERENCES `mydb`.`produtos` (`id`) ON UPDATE NO ACTION)
ON DELETE NO ACTION ENGINE = InnoDB;
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-----------------------------------------------------
-- Table `mydb`.`marketing_digital`
-- ----------------------------------------------------- -- -----------------------------------------------------
-- Table `mydb`.`lojas_virtuais` CREATE TABLE IF NOT EXISTS
79
-- ----------------------------------------------------- `mydb`.`marketing_digital` (
CREATE TABLE IF NOT EXISTS `id` INT NOT NULL,
`mydb`.`lojas_virtuais` ( `id_lojas_virtuais` INT NOT NULL,
`id` INT NOT NULL, `localidade` VARCHAR(45) NULL,
`id_vendedores` INT NOT NULL, `valor` FLOAT NULL,
`nome` VARCHAR(45) NOT NULL, PRIMARY KEY (`id`),
`descricao` VARCHAR(500) NULL, INDEX `id_lojas_virtuais_fk_idx`
`template` INT NOT NULL, (`id_lojas_virtuais` ASC),
`dominio` VARCHAR(45) NULL, CONSTRAINT `id_lojas_virtuais_fk`
PRIMARY KEY (`id`, `nome`), FOREIGN KEY (`id_lojas_virtuais`)
INDEX `idVendedor_idx` (`id_vendedores` REFERENCES `mydb`.`lojas_virtuais` (`id`)
ASC), ON DELETE NO ACTION
CONSTRAINT `idVendedor` ON UPDATE NO ACTION)
FOREIGN KEY (`id_vendedores`) ENGINE = InnoDB;
REFERENCES `mydb`.`usuarios` (`id`)
ON DELETE NO ACTION -- -----------------------------------------------------
ON UPDATE NO ACTION) -- Table `mydb`.`slides`
ENGINE = InnoDB; -- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS
`mydb`.`slides` (
-- ----------------------------------------------------- `id` INT NOT NULL,
-- Table `mydb`.`categorias_loja_virtual` `id_lojas_virtuais` INT NOT NULL,
-- ----------------------------------------------------- `nome` VARCHAR(300) NULL,
CREATE TABLE IF NOT EXISTS PRIMARY KEY (`id`),
`mydb`.`categorias_loja_virtual` ( INDEX `id_lojas_virtuais_fk_idx`
`id` INT NOT NULL, (`id_lojas_virtuais` ASC),
`id_lojas_virtuais` INT NOT NULL, CONSTRAINT `id_lojas_virtuais_fk`
`nome` VARCHAR(45) NULL, FOREIGN KEY (`id_lojas_virtuais`)
PRIMARY KEY (`id`), REFERENCES `mydb`.`lojas_virtuais` (`id`)
INDEX `id_lojas_virtuais_fk_idx` ON DELETE NO ACTION
(`id_lojas_virtuais` ASC), ON UPDATE NO ACTION)
CONSTRAINT `id_lojas_virtuais_fk` ENGINE = InnoDB;
FOREIGN KEY (`id_lojas_virtuais`)
REFERENCES `mydb`.`lojas_virtuais` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
80
Para início deve-se instalar o SDK da aplicação atráves do comando: composer require
moip/moip-sdk-php
A SDK PHP permite que você integre sua aplicação PHP às soluções de pagamento Moip da
maneira mais simples possível. Nesta wiki você encontrará exemplos e dicas de como usar os
recursos já disponíveis na versão atual da SDK.
As novas APIs do Moip foram implementadas com base na arquitetura RESTful. Para nomear
os recursos usamos nomes (Pedidos, Pagamentos, Clientes e outros) e suportamos diversas
chamadas HTTP verbs para cada recurso. Desta forma, o mesmo recurso, por exemplo,
v2/customers/ pode ser usado tanto para criar um novo Cliente, através do método POST,
quanto para consultar uma lista de clientes com o método GET. Esta API usa JSON como
media-type padrão. Usamos em toda nossa API o padrão UTF-8. Com o conceito de
hypermedia HATEOAS você pode usar as estruturas de links entre os recursos para
automatizar sua aplicação tornando ainda mais ágil a sua integração com as soluções de
pagamento Moip.
require 'vendor/autoload.php';
use Moip\Moip;
use Moip\Auth\OAuth;
$access_token = '33031e2aad484051b89030487e59d133_v2';
$moip = new Moip(new OAuth($access_token), Moip::ENDPOINT_SANDBOX);
81
Quando um vendedor possui uma conta Moip Clássica isso significa que ele pode se logar na
Conta Moip e gerenciar suas vendas no ambiente e dashboard do Moip. Entretanto, um
marketplace pode embarcar toda a experiência apresentada na Conta Moip em seu ambiente,
incluindo transferências bancárias, consulta de saldo, saques, reembolsos, etc. de acordo com
as permissões OAuth.
<?php
$account = $moip->accounts()
->setName('Fulano')
->setLastName('De Tal')
->setEmail('fulano@email2.com')
->setIdentityDocument($identity_document, $issuer, $issue_date)
->setBirthDate('1988-12-30')
->setTaxDocument('16262131000')
->setType('MERCHANT')
->setPhone($area_code, $phone_number, $country_code)
->addAlternativePhone(11, 66448899, 55)
->addAddress($street, $number, $district, $city, $state, $zip, $complement, $country)
->setTransparentAccount(true)
->setCompanyName('Empresa Teste', 'Teste Empresa ME')
->setCompanyOpeningDate('2011-01-01')
->setCompanyPhone(11, 66558899, 55)
->setCompanyTaxDocument('69086878000198')
->setCompanyAddress('Rua de teste 2', 123, 'Bairro Teste', 'Sao Paulo', 'SP', '01234567', 'Apt. 23',
'BRA')
->setCompanyMainActivity('82.91-1/00', 'Atividades de cobranças e informações cadastrais')
->create();
<?php
$account_id = 'MPA-8307EF11B83E';
$account = $moip->accounts()->get($account_id);
print_r($account);
Retorno de Consulta:
{ "email": { " },
"address": "dobxerg0a8@labs.moip.com.br", "login":
"id": "MPA-8307EF11B83E", "confirmed": false "dobxerg0a8@labs.moip.com.br",
"channelId": "APP-7KHGFTMYHGLO", }, "externalId": "MPA-
"type": "MERCHANT", "_links": { 8307EF11B83E"
"transparentAccount": false, "self": { }
"createdAt": "2015-10-29T16:53:25.957Z", "href":
"person": { "https://sandbox.moip.com.br/v2/accounts/MPA-
8307EF11B83E"
}
Cliente é o usuário de um serviço ou o comprador de uma loja virtual. Esta API permite a
criação e a consulta de um determinado cliente.
82
<?php
try {
$customer = $moip->customers()->setOwnId(uniqid())
->setFullname('João Silva')
->setEmail('joao@email.com')
->setBirthDate('1990-10-22')
->setTaxDocument('22288866644')
->setPhone(11, 55552266)
->addAddress('SHIPPING',
'Avenida Faria Lima', 500,
'Itaim Bibi', 'São Paulo', 'SP',
'01234000', 10)
->create();
} catch (Exception $e) {
printf($e->__toString());
}
Consultar Cliente
<?php
try {
$customer_id = 'CUS-87HFA3QCEKO7';
$customer = $moip->customers()->get($customer_id);
print_r($customer);
} catch (Exception $e) {
printf($e->__toString());
Retorno de Consulta:
A variável $moip no exemplo é um objeto do tipo Moip que garante a autenticação básica,
como você pode conferir na seção Como Começar.
Note que a grande diferença é que cada pedido deve ter um recebedor primário.
try {
$order = $moip->orders()->setOwnId(uniqid())
->addItem("bicicleta 1",1, "sku1", 10000)
->addItem("bicicleta 2",1, "sku2", 11000)
->addItem("bicicleta 3",1, "sku3", 12000)
->addItem("bicicleta 4",1, "sku4", 13000)
->setShippingAmount(3000)
->setAddition(1000)
->setDiscount(5000)
->setCustomer($customer)
->addReceiver('MPA-VB5OGTVPCI52', 'PRIMARY', NULL);
$order2 = $moip->orders()->setOwnId(uniqid())
->addItem("bicicleta 1",1, "sku1", 10000)
->addItem("bicicleta 2",1, "sku2", 11000)
->addItem("bicicleta 3",1, "sku3", 12000)
->setShippingAmount(3000)
->setAddition(1000)
->setDiscount(5000)
->setCustomer($customer)
->addReceiver('MPA-IFYRB1HBL73Z', 'PRIMARY', NULL);
$multiorder = $this->moip->multiorders()
->setOwnId(uniqid())
->addOrder($order)
->addOrder($order2)
->create();
print_r($multiorder);
} catch (Exception $e) {
printf($e->__toString());
}
Consultando um pedido
try {
$order_id = '9999';
$order = $moip->orders()->get($order_id);
print_r($order);
} catch (Exception $e) {
printf($e->__toString()); }
84
Criando um multi-pagamento
Note que é preciso passar o cliente, no caso passamos através da variável $customer, no
exemplo ela é um objeto do tipo Customer, você pode conferir como cadastrar um novo
cliente ou obter um cliente já cadastrado nas seções Cadastro de clientes e Consultar um
cliente.
try {
$expiration_month = 12;
$expiration_year = 21;
$number_cc = '4073020000000002';
$cvc = '123';
$store_cc = true;
$payment = $multiorder->multipayments()
->setCreditCard($expiration_month, $expiration_year,$number_cc, $cvc, $customer,
$store_cc)
->setInstallmentCount(3)
->setStatementDescriptor('teste de pag')
->setDelayCapture(false)
->execute();
print_r($payment);
} catch (Exception $e) {
printf($e->__toString());
}
No pagamento com boleto são enviados apenas 3 parâmetros: URL do logo que você deseja
que apareça, representada abaixo com a variável: $logo_uri; Data de vencimento,
representada pela variável $expiration_date; Linhas de instrução do boleto, são apenas 3
linhas. Representadas pela variável.
URL do logo que você deseja que apareça, representada abaixo com a variável: $return_uri;
Data de vencimento, representada pela variável $expiration_date;
Número do banco representado pela variável $bank_number.
try {
$bank_number = '001';
$return_uri = 'https://moip.com.br';
$expiration_date = new DateTime();
$payment = $multiorder->multipayments()
->setOnlineBankDebit($bank_number, $expiration_date, $return_uri)
->execute();
print_r($payment);
} catch (Exception $e) {
printf($e->__toString());
}
A variável $payment representa o objeto de pagamento que desejam fazer reembolso, para
recuperar um pagamento já adicionado consulte a seção de Consultar um pagamento.
Cartão de Crédito
Reembolso Parcial
Para fazer reembolsos parciais para cartão de crédito use o método creditCardPartial no objeto
Payment do pagamento que você deseja reembolsar. É necessário passar o valor do reembolso
para o método, aqui representado pela variável $amount.
try {
$amount = 30000;
$refund = $payment->refunds()->creditCardPartial($amount);
print_r($refund);
} catch (Exception $e) {
printf($e->__toString());
}
Reembolso Total
Para fazer reembolsos do valor total de pedidos e pagamentos para cartão de crédito use o método
creditCardFull no objeto Payment do pagamento que você deseja reembolsar.
try {
$refund = $payment->refunds()->creditCardFull();
print_r($refund); } catch (Exception $e) { printf($e->__toString());}
86
Conta Bancária
Para fazer reembolsos para contas bancárias é necessário passar nos parâmetros todos os dados da
conta, como: agência, número do banco, número da conta etc. Além de também ser necessário passar o
objeto Customer do cliente dono da conta.
Reembolso Parcial
Para fazer reembolsos parciais para contas bancárias use o método bankAccountPartial no objeto
Payment do pagamento que você deseja reembolsar. É necessário passar o valor do reembolso para o
método, aqui representado pela variável $amount.
try {
$amount = 30000;
$type = 'SAVING';
$bank_number = '001';
$agency_number = 4444444;
$agency_check_number = 2;
$account_number = 1234;
$account_check_number = 4;
$refund = $payment->refunds()
->bankAccountPartial($amount, $type, $bank_number, $agency_number,
$agency_check_number, $account_number, $account_check_number, $customer);
print_r($refund);
} catch (Exception $e) {
printf($e->__toString());
}
Reembolso Total
Para fazer reembolsos do valor total de pedidos e pagamentos para contas bancárias use o método
bankAccountFull no objeto Payment do pagamento que você deseja reembolsar.
try {
$type = 'CHECKING';
$bank_number = '001';
$agency_number = 4444444;
$agency_check_number = 2;
$account_number = 1234;
$account_check_number = 4;
$refund = $payment->refunds()
->bankAccountFull($type, $bank_number, $agency_number, $agency_check_number,
$account_number, $account_check_number, $customer);
print_r($refund);
} catch (Exception $e) {
printf($e->__toString());
}
Consultando lançamentos
A variável $moip no exemplo é um objeto do tipo Moip que garante a autenticação básica,
como você pode conferir na seção Como Começar.
87
try {
$entry_id = 'ENT-2OUENUXXZ942';
$entry = $moip->entries()->get($entry_id);
print_r($entry);
} catch (Exception $e) {
printf($e->__toString());
}