IREI
daGuarda
Polytechnic of Guarda
RELATÓRIO DE PROJETO
Licenciatura em Engenharia Informática
Felisberto Tertuliano da Costa
julho
1
2015
INSTITUTO POLITÉCNICO DE GUARDA
Plataforma de Venda Online
Projeto Aplicado no curso de Engenharia Informática
Orientadora: Professora Beatriz Rebelo
Felisberto Tertuliano da Costa
Nº1010196
Ficha de Identificação
Aluno
Nome: Felisberto Tertuliano da Costa
Número: 1010196
Obtenção de Grau de Licenciatura: Engenharia Informática
Instituição
Estabelecimento de Ensino: Instituto Politécnico da Guarda
– Escola Superior de
Tecnologia e Gestão
Morada: AV. Dr. Francisco Sá Carneiro nº 50, 6300-559 Guarda
Telefone: +351271220100
Fax: +351271222690
E-mail:
ipg@ipg.pt
Projeto
Orientadora: Professora Beatriz Rebelo
Linhas de investigação: Área Científica de Engenharia de Software e Sistemas de
Informação
Agradecimentos
Gostaria de aproveitar este momento para fazer alguns agradecimentos as pessoas que contribuíram para que hoje eu chegasse até aqui, e pela qual não gostaria de esquecer.
Em primeiro agradeço a Deus e aos meus familiares, família de acolhimento na Guarda e aos colegas que durante estes anos, acompanharam e apoiaram-me nesta jornada.
Agradecer as Professoras Beatriz Rebelo e a Maria Clara Silveira pelo apoio prestado em todas as fases do projeto, mas acima de tudo, pelo desenho do modelo de Base de Dados, e não só, pela disponibilidade, entrega e a paciência que tiveram comigo neste projeto.
Um agradecimento aos professores da Unidade Curricular de Projeto de Informática, Professor Carlos Brigas e o José Carlos Martins Coelho Fonseca, pelas sugestões e críticas construtivas ao longo do desenvolvimento e a apresentação do projeto.
À Diretora da Escola Superior de Tecnologia e Gestão do Instituto Politécnico da Guarda pela sua disponibilidade, dedicação e preocupação.
De uma forma ou dá outra, a todos os professores que ao longo do curso, deram o seu melhor para transmitir-me o conhecimento que hoje estou a colocar em prática no mundo de trabalho. Agradeço ainda, a toda a direção do IPG e em particular a pessoa do Vice-Presidente Professor Pedro Cardão e as colaboradoras de limpeza em especial a Dona Paula Roubalo e a Dona Licínia Gonçalo, Francisco (secretária), Isabel Rabaça e a sua equipa da Cáritas Diocesana de Guarda por terem ajudando-me nos momentos mais difíceis, de desânimo e revolta interior e espiritual.
Aos colegas António Fernandes, João Antunes, Sandrine Machado, Belmiro Bernaldo pelo apoio e sugestões dadas durante o curso.
Por último, aos professores Noel de Jesus, António Martins, José Alberto Quitério Figueiredo, Luís Figueiredo e Paulo Nunes, pela força, paciência, diálogo e amizades construída durante esta jornada.
Resumo
Hoje em dia é cada vez mais importante o acesso e a partilha de informação a qualquer hora e em qualquer lugar, esteja-se onde se estiver. Em particular, no caso de Clientes que pretendam fazer as suas pesquisas e as suas compras sem terem que sair de casa. Como também para os empresários que pretendem divulgar os seus produtos de uma forma mais abrangente ao seu público habitual e ter uma capacidade de resposta de acordo com a solicitação.
A partir da proposta efetuada pela professora Beatriz Rebelo foi desenvolvida uma aplicação (Plataforma Online de Gestão de Stocks) com o intuito de simplificar, divulgar e controlar toda a informação produzida numa loja virtual de venda direta, bem como, facilitar o acesso a essa mesma informação. As suas principais características são a gestão de clientes, gestão de
Stocks, controlo de pagamentos, envio de encomendas. Palavras-chaves: WEB, Software, Bases de Dados, CMS.
Abstract
Nowaday, it is increasingly important access to and sharing of information anytime, anywhere, wherever we are. In particular, in the case of customers wishing to make their research and their shopping without having to leave home. But also for entrepreneurs who want to advertise their products in a more comprehensive way to his usual audience and have a response capability according to request.
From the proposal made by Professor Beatriz Rebelo an application has been developed (Online Platform Inventory Management) in order to simplify, disseminate and control all information produced from a virtual store direct selling, as well as facilitate access to the same information. Its main features are customer management, inventory management, payments control, shipping orders.
Índice
Agradecimentos ...ii Resumo ... iii Abstract ... iv Índice ... v Índice de Tabelas... x Índice de Figuras ... xi Abreviaturas ... xiv Capítulo I ... 15 Introdução ... 15 1 Estrutura do Documento ... 16 1.1. Descrições do Problema ... 17 1.2 Ferramentas e Equipamentos ... 17 1.3 Objetivos Previstos ... 17 1.4 Solução ... 17 Capítulo II ... 18 2 Estado da Arte ... 182.1 CMS Genérico (Joomla, Drupal, WordPress) ... 18
2.1.1 Joomla ... 18
2.1.2 Drupal ... 18
2.1.3 WordPress ... 18
2.2 CMS Específico ... 20
2.4 As aplicações existentes ... 26
2.4.1 SoftMagement Gestão de Stock ... 26
2.4.2 TradeGecko ... 27
2.4.3 Skyware Inventory ... 27
Capítulo III ... 28
3 Metodologia e Resultados Esperado ... 28
3.1 Metodologia ... 28
3.2 Descrição das Tarefas ... 28
3.3 Resultados Esperados ... 30
4 Tecnologia e Softwares Utilizados ... 31
4.1 Tecnologias Web ... 32 4.1.1 HTML ... 32 4.1.2 CSS ... 32 4.1.3 PHP ... 32 4.2 Software Utilizado ... 33 4.2.1 PhpMyAdmin ... 33 4.2.2 Microsoft Word ... 33 4.2.3 Astah Community ... 33 4.2.4 Visio ... 33 Capítulo IV ... 34
5 Análise dos Requisitos e Conceção da Aplicação ... 34
5.1 Caso de Uso ... 34
5.2 Descrição dos casos de Uso... 35
5.2.1 Efetuar Encomenda ... 35
5.2.2 Gerir Encomendas ... 36
5.2.3 Tratar Encomendas ... 38
5.2.5 Editar Dados ... 40
5.3 Diagrama de Casos de Uso ... 41
5.4 Diagrama de Estados ... 42
5.4.1 Autenticar Utilizador ... 42
5.5 Diagrama de Sequência ... 43
5.5.1 Efetuar Registo no Sistema ... 43
5.5.2 Efetuar Encomenda ... 44
5.5.3 Gerir Encomenda ... 45
5.5.4 Tratar Encomenda ... 46
5.5.5 Atribuir Pagamentos ... 47
5.6 Diagrama de Classe ... 48
5.6.1 Diagrama de Classe do Sistema Continuação ... 49
5.7 Dicionário de Dados ... 51
5.7.1 Estrutura da Tabela ps_country ... 51
5.7.2 Estrutura da Tabela ps_address ... 52
5.7.3 Estrutura da Tabela ps_customer ... 53
5.7.4 Estrutura da Tabela ps_product_supplier ... 54
5.7.5 Estrutura da Tabela ps_orders ... 55
5.7.6 Estrutura de Tabela ps_supplier ... 56
5.7.7 Estrutura da Tabela ps_category ... 57
5.7.8 Estrutura da Tabela ps_order_payment ... 57
5.7.9 Estrutura da Tabela ps_product ... 58
5.7.10 Estrutura da Tabela ps_order_detail... 59
5.8 Diagrama de Atividades ... 61
6 Implementação da Solução ... 64
6.1 Descrição ... 64
6.2 Implementar Responsive Web Design ... 65
6.3 Construção do Templates ... 66
6.4 Base de Dados ... 70
6.5 Modelo Entidade - Relacionamento ... 71
7 Aplicação e Testes ... 72 7.1 Painel de Controlo ... 72 7.2 Catálogo ... 73 7.3 Encomendas ... 74 7.4 Clientes ... 76 7.5 Regras do Carrinho ... 77 7.6 Módulos ... 77 7.7 Transportadoras ... 80 7.8 Localização ... 81 7.9 Preferências ... 82 7.10 Informação da Configuração ... 83 7.11 Administração ... 84 7.12 Estatísticas ... 85
7.13 Fazer uma encomenda ... 86
Capítulo VI ... 90
8 Conclusões e Trabalho Futuro ... 90
8.1 Conclusão ... 90
8.2 Trabalho Futuro ... 91
Capíulo VII ... 92
9 Bibliografia ... 92
10.1 Instalação do Servidor Local Usbwebserver ... 95
10.2 Instalação do Prestashop ... 96
10.3 Painel de Controlo Continuação ... 97
10.4 Pagamentos ... 99
10.4.1 Configuração de Métodos de Pagamento ... 99
10.5 Templates Continuação ... 99
10.5.1 Imagens ... 99
10.5.2 Banner ... 100
10.5.3 Cor ... 100
10.6 Módulos Instalados e Configurados no Trabalho ... 101
10.7 Localização ... 102
10.7.1 Idiomas ... 102
10.7.2 Distritos/Estados, Países e Região ... 102
10.7.3 Moedas, Taxas e Regras de Impostos ... 102
10.8 Preferências ... 103 10.8.1 Contactos da Loja ... 103 10.8.2 URL’s Amigáveis ... 104 10.8.3 Geolocalização ... 104 10.9 Encomendas Continuação ... 104 10.9.1 Estado de Encomendas ... 104
Índice de Tabelas
Tabela 1 Caso de Uso: Efetuar Encomenda ... 35
Tabela 2 Caso de Uso: Gerir Encomendas ... 37
Tabela 3 Caso de Uso: Tratar Encomendas ... 38
Tabela 4 Caso de Uso: Efetuar Pagamento ... 39
Tabela 5 Caso de Uso - Editar dados ... 40
Tabela 6 Dicionário de Dados: ps_country ... 51
Tabela 7 Dicionário de Dados: ps_address ... 53
Tabela 8 Dicionário de Dados: ps_customer ... 54
Tabela 9 Dicionário de Dados: ps_product_supplier ... 55
Tabela 10 Dicionário de Dados: ps_orders ... 56
Tabela 11 Dicionário de Dados: ps_supplie ... 56
Tabela 12 Dicionário de Dados: ps_category ... 57
Tabela 13 Dicionário de Dados: ps_order_payment ... 57
Tabela 14 Dicionário de Dados: ps_product ... 59
Índice de Figuras
Figura 2 Painel Wordpress. Fonte: [4] ... 20
Figura 1 Prestashop ... 21
Figura 3 Opencart. Fonte: [7] ... 23
Figura 4 Magento. Fonte: [10] ... 25
Figura 5 Lista de Tarefas ... 29
Figura 7 Diagrama Casos de Uso - Encomendas Efetuadas ... 41
Figura 8 Diagrama Estado - Autenticar Utilizador ... 42
Figura 9 Diagrama de Sequência - Efetuar Registo... 43
Figura 10 Diagrama de Sequência - Efetuar Encomenda... 44
Figura 11 Diagrama de Sequência - Gerir Encomenda... 46
Figura 12 Diagrama de Sequência – Tratar Encomenda ... 46
Figura 13 Diagrama de Sequência - Atribuir Pagamento ... 47
Figura 14 Diagrama de Classe do Sistema ... 48
Figura 15 Diagrama de Classe Continuação. Fonte: [20] ... 49
Figura 16 Diagrama de Classe Explícito. Fonte: [21]... 50
Figura 17 Diagrama Atividade - Geral ... 61
Figura 18 Diagrama de Atividades - Distribuir Encomendas ... 62
Figura 19 Diagrama de Instalação ... 63
Figura 20 Responsivo Web Design. Fonte: [23] ... 65
Figura 21 Templates Original ... 66
Figura 22 Templates - Página Principal ... 67
Figura 27 Base de Dados da Aplicação ... 70
Figura 28 Painel de Controlo ... 72
Figura 29 Catálogo ... 73
Figura 30 Encomendas 1 ... 74
Figura 31 Encomendas 2 ... 75
Figura 32 Encomendas 3 ... 75
Figura 33 Gerir Clientes 1 ... 76
Figura 34 Gerir Clientes 2 ... 76
Figura 35 Regras do Carrinho ... 77
Figura 36 Módulos ... 78
Figura 37 Módulos 2 ... 78
Figura 38 Catálogo de Módulos e Temas ... 79
Figura 39 Transportadoras ... 80
Figura 40 Localização ... 81
Figura 41 Preferências 1 ... 82
Figura 42 Preferências ... 82
Figura 43 Informação da Configuração ... 83
Figura 44 Administração ... 84
Figura 45 Estatísticas 1 ... 85
Figura 46 Estatísticas 2 ... 85
Figura 47 Fazer Encomenda ... 86
Figura 48 Endereços ... 87
Figura 49 Envio de Encomenda ... 87
Figura 50 Método de Pagamento ... 88
Figura 51 Pagamento Transferência Bancária ... 88
Figura 52 Confirmação de Encomenda... 89
Figura 54 Instalação Prestashop. Fonte: [24] ... 97
Figura 55 Painel de BackOffice ... 98
Figura 56 Painel de Controlo ... 98
Abreviaturas
APP- Aplicação Móvel
CE - Community Edition
CMS - Sistemas de Gestão de Conteúdo
CSS - Linguagem de Folha de Estilos ou Cascading Style Sheets
CTT - Correios, Telégrafos e Telefones
EE - Enterprise Edition
E-R - Modelo Entidade Relacionamento
ERP - Gestão de Recurso Corporativo ou Enterprise Resource Planning
GNU - Licença Publica Geral ou General Public License
HTML - Linguagem de Marcação de Hipertexto ou Hypertext Markup Language
IIS - Internet Information Services/Server
ISO - Organização Internacional para Padronização ou International Organization for Standardization
MYSQL - Sistema de Gestão de Bases de Dados
PDO - PHP Data Object
PE - Profissional Edition
PHP - PHP: Hypertext Preprocessor ou Personal Home Page
SEO - Otimização para Motores de Busca ou Search Engine Optimization
SQL - Linguagem de Consulta Estruturada ou Structured Query Language
UML - Linguagem de Modelagem Unificada ou Unifield Modeling Language
URL - Localizador Padrão de Recursos ouUniform Resource Locator
Capítulo I
Introdução
O documento em causa descreve o projeto realizado pelo Felisberto Tertuliano da Costa, para uma Empresa de Vendas diretas de artigos para casa, no âmbito da Unidade Curricular Projeto de Informática, que está englobada na Licenciatura em Engenharia Informática, da Escola Superior de Tecnologia e Gestão do Instituto Politécnico de Guarda.
Pretende-se com isso, desenvolver uma Plataforma de Venda Online de modo a ter funcionalidades com os registos de utilizadores (Clientes, Empregados/Funcionários, Gestores/Administradores) com confirmação através de um login e palavra-chave ou por correio eletrónico e um controlo total de encomendas (listagem/controlo de encomendas efetuadas, de pedidos, envios, pagamentos e outros).
Na atualidade, existem varias aplicações para fazerem gestão de Stock de bens ou serviços, da qual, os clientes poderão encontrar disponíveis nas páginas de internet sobretudo, para alojar documentos como sites empresariais, pessoais, blogs, fotografias, vídeos entre outros. Tudo para fazer-nos perceber que hoje em dia, por apenas um clique, estamos perto de tudo sem termos que sair de casa.
1 Estrutura do Documento
O presente documento está dividido em sete capítulos, apresentados do seguinte modo:
No primeiro capítulo é apresentada a introdução, a estrutura do documento, a descrição do problema, as ferramentas e equipamentos, os objetivos previstos, e a solução.
O segundo capítulo apresenta a descrição do estado da arte, os sistemas de gestão de conteúdos genéricos e específicos, a comparação das ferramentas e os exemplos de aplicações existentes.
No terceiro capítulo são descritas detalhadamente a metodologia e os resultados esperados, a tecnologia e o Software utilizado, bem como a descrição da tarefa.
O quarto capítulo é composto pela análise dos requisitos e conceção da aplicação, descrição de casos de uso, diagrama de casos de uso, diagrama de estados, diagrama de sequência, diagrama de classes, dicionário de dados, diagrama de atividades, diagrama de istalação.
No quinto capítulo, é exibida a implementação da solução e testes.
O sexto capítulo contém as conclusões finais do projeto realizado e do trabalho a realizar no futuro.
1.1. Descrições do Problema
O projeto concerne em desenvolver uma plataforma Online de gestão de
Stocks para uma empresa na área de comércio eletrónico, que estará preparada para
dispositivos móveis ou qualquer plataforma. Com esta plataforma é possível gerir (consultar, editar, inserir, apagar, encomendar, listar) informações relacionadas aos produtos disponíveis na loja e as encomendas efetuadas.
1.2 Ferramentas e Equipamentos
As ferramentas utilizadas no desenvolvimento desta aplicação são:
Prestashop, Usbwebserver, Phpmyadmin (Base de dados MYSQL), Photoshop, Astra Community, Visio, Paint.
1.3 Objetivos Previstos
Os objetivos que pretendemos atingir neste projeto são:
Manutenção e Controlo dos dados (produtos, clientes, empregados, encomendas);
Criar, editar, consultar, pesquisar, eliminar dados ou informações;
Registar clientes com confirmação/autenticação através de utilizador e palavra-chave;
Produzir listagens de produtos, de encomendas efetuadas, de pagamentos e de faturas.
1.4 Solução
Com o objetivo de informatizar e simplificar a gestão de Stocks, a solução passa por:
Registar utilizadores;
Gerir todas as informações necessárias às encomendas.
Capítulo II
2 Estado da Arte
2.1 CMS Genérico (Joomla, Drupal, WordPress)
2.1.1 Joomla
É um CMS (Content Management System) Open Source desenvolvido em PHP e pode ser executado no servidor Web Apache ou IIS e banco de dados MYSQL. Existem milhares de Templates a baixo preço e muito fácil para criar as lojas virtuais, os blogs, as revistas online, os jornais, os catálogos de produtos/serviços e diversos outros formatos de conteúdo [1]
2.1.2 Drupal
É um sistema Open Source, criado para Web e está incorporada CMS (Content
Management System) ou como muitos lhe chamam CMF (Content Management Framework) de gestão de conteúdos. Tem muitas funcionalidades como também API’s
que facilitam o desenvolvimento de módulos muito extensos.
Portanto, tem uma boa estrutura e muito usado para gestão de utilizadores, permissões, blogs, fóruns, comentários e outros [2].
2.1.3 WordPress
É uma grande plataforma (CMS) desenvolvida em PHP e MYSQL para criação de
sites e blogs e outros de forma gratuíta. Sua flexibilidade permite administrar o seu conteúdo mesmo sem nenhum conhecimento de HTML ou PHP. Com a plataforma podemos criar, revistas, jornais e outros. Nela também se encontra um conjunto de plugins, que é um conjunto de programas adicionais ao projeto como para pagamento, estatísticas, e outros.
É uma ferramenta com uma licença aberta e distribuída sob a GNU (General
Public License) sendo por isso gratuita [3]. Os requisitos de Instalação são:
PHP 5.3 (ou superior);
Base de Dados (preferencialmente MYSQL 5.0).
Porquê utilizar?
Porque possuem aplicações para Android, iPhone/iPod Touch, Pad, Windows Phone 7 e BlackBerry, tem painel de controlo muito simples e atraente, tem vários pulgins que permitem instalar de acordo as aplicações.
2.1.3.1 Vantagens
É totalmente livre; Criação de conteúdo otimizado para os motores de busca como o Google; Forte segurança dos dados;
Fácil Integração com as redes sociais; Baixo custo;
Multi-idiomas;
Documentação completa e disponibilizada; Frequentes atualizações e bugs;
Painel de Controlo intuitivo e bem arquitetado; Plugins fácies de instalar e configurar;
Facilidade na instalação e configuração;
2.1.3.2 Desvantagens
Difícil manipular a hierarquia das páginas;
Falta de organização para quem desenvolver Templates;
Não existe, organização no desenvolvimento de plugins, nem tão pouco, regras pela comunidade;
Figura 1 Painel Wordpress. Fonte: [4]
2.2 CMS Específico
Os CMS’s específicos que iremos abordar são: Prestashop, Opencart e Magento. De Todos eles será efetuada uma breve descrição.
O CMS é uma ferramenta que permite a um editor criar, classificar e publicar qualquer tipo de informação numa página Web.
2.2.1 Prestashop
É um sistema de e-commerce Open Source (código aberto), desenvolvido em PHP: Hypertext Preprocessor [PHP] e MYSQL para criação de sites e derivados.
Os requisitos de Instalação são:
Servidor Web (preferencialmente Apache 1.3, 2.x, Nginx ou Microsoft IIS). PHP 5.0 (ou superior).
Base de Dados (preferencialmente MYSQL 5.0 ou superior)
Porquê utilizar?
Porque hoje, é um CMS de código aberto e usado por milhares de lojas em todo o mundo, e com tendência a crescer e fácil de usar.
2.2.1.1 Vantagens
Grande quantidade Add-ons e extensões;
Possui integração nativa com intermediários de pagamento como Pagseguro e
Paypal;
Painel de controlo com ótimo visual, fácil manuseio e configuração para o utilizador;
Possibilidade fácil de migrar a Loja no outro sistema open source como o
Magento, Opencart, Zencart, (disponibilizam um profissional para ajudar a
empresa a efetuar a mudanças).
2.2.1.2 Desvantagens
Quantidade de bugs em atualizações (conflitos módulos e Add-ons após atualização da versão) [5].
A imagem da Figura 2 mostra um exemplo de ambiente Prestashop do projeto.
2.2.2 Opencart
É um CMS de comércio eletrónico desenvolvido em PHP e MYSQL, leve, simples e rápido. Tem um conjunto de temas que permite escolher Templates de diversas opções consoante o tema. Devido à sua simplicidade e flexibilidade teve boa aceitação no mercado e conquistou uma boa comunidade.
Os requisitos de Instalação são:
Servidor Web (preferencialmente Apache); PHP 5 (ou superior);
Biblioteca Curl do PHP habilitada (serve para comunicação entre dois sites); MYSQL.
Porquê Utilizar?
Porque tem um sistema de Templates que permite escolher entre diversas opções de temas visuais. Por outro lado, existe a possibilidade numa só interface de administração gerir várias lojas. Ainda pode:
Definir produtos que apareçam nas lojas específicas; Cada loja ter temas diferentes.
2.2.2.1 Vantagens
Fácil instalação e configuração inicial;
Extensões, plugins e Templates são os mais baratos entre as três (Prestashop,
Wordpress e Magento) soluções;
A comunidade tem crescido bastante; Possui menores custos com manutenção; Painel de controlo de fácil utilização;
2.2.2.2 Desvantagens
Possui menos recursos e funcionalidades entre os três (Prestashop, Wordpress e Magento);
Menor número de integrações com terceiros [6].
Nota: Por outro lado, suportam várias formas de envios e pagamentos (frete).
A imagem da Figura 3 mostra um exemplo de ambiente Opencart.
2.2.3 Magento
É uma plataforma de e-commerce Open Source, desenvolvida em PHP e MYSQL. Sendo completa e com grande quantidade de recursos (Marketing, Catálogo, Pagamentos e outros) para administração da loja. Iguais às outras referidas atrás, mas com algumas particularidades:
Possui uma versão gratuita, a Community Edition (CE) e duas pagas (Enterprise Edition (EE) e Professional Edition (PE) ) [8].
Pelo que acreditamos que por ter duas versões pagas, indicam que é o mais completo.
Os requisitos de instalação são:
PHP 5.2 (ou superior); Servidor Web (Apache); MYSQL 1.20 (ou superior4); PDO MYSQL;
Simplexml; Curl;
Servidor (XAMPP, Usbwebserver, FileZilla entre outros)
PDO MYSQL (driver que implementa a interface de PHP Data Objects) para
permitir o acesso a partir de PHP para MYSQL e Base de Dados.
Simplexml (fornece um conjunto de ferramentas muito simples e fáceis de usar
para converter XML para um objeto) [9].
Porquê Utilizar
Porque é uma ferramenta poderosa, possui milhares de módulos desenvolvidos e facilmente integrados, o que a torna, possivelmente, a ferramenta mais flexível no mercado. Sem dúvida umas das razões do sucesso da plataforma é a possibilidade interminável de customizações a um ERP.
O ERP- (Enterprise Resource Planning) é uma plataforma de Software, desenvolvida para integrar os diversos departamentos de uma empresa, possibilitando a automação e armazenamento de todas as informações dos negócios.
2.2.3.1 Vantagens
Muitas funcionalidades e recursos nativos;
Vários recursos para as outras plataformas open source; Tem uma comunidade crescente;
Grande quantidade de extensões, plugins e complementos; Mecanismos de busca (SEO) bem otimizado.
2.2.3.2 Desvantagens
Muito complexo;
Layout e Design complexos;
Custo de manutenção elevado.
A imagem da Figura 4 mostra um exemplo de ambiente Magento.
2.3 Comparando as Ferramentas
De seguida será efetuada uma breve comparação das quatro plataformas de comércio eletrónico mais conhecidas no mercado.
Todas estas ferramentas disponibilizam versões gratuitas que podem ser limitadas, excepto o Magento que utiliza uma versão gratuita a (Community Edition) e duas pagas (Enterprise Edition e Profissional Edition) e ainda, tem a possibilidade de gerir e manter vários sites, lojas e idiomas numa única instalação:
Algumas caraterísticas comuns são: E-Commerce open source; Códigos abertos;
Fácil de instalar.
Em nível de atualização para a versão paga, por norma, fornece mais recursos, a análises e estatísticas mais avançadas e um conjunto de opções de personalização.
2.4 As aplicações existentes
2.4.1 SoftMagement Gestão de Stock
SoftMagement (SM) são aplicações ligadas à gestão de controlo de Stocks, e ela
fornece um conjunto de soluções como controlo de informações ligadas aos produtos e Stocks, inventários entre outros. Por outro lado, oferecem algumas soluções no processo de gestão da organização, reduzindo custos, tempo a eles e aos seus clientes.
Aplicação apresente as seguintes funcionalidades:
Exportação do ficheiro para comunicação de inventários; Documento de regularização de Stocks;
Possibilidade de gerir os Stocks com diferentes definições e caraterísticas (número de série, lotes, cores, tamanhos entres outros) associadas às tabelas;
Permite consultar facilmente os movimentos de Stocks efetuados a cada produto;
Editar, remover, listar movimentos de Stocks anteriormente efetuados, listar o
Stock de um determinado momento [11].
2.4.2 TradeGecko
A TradeGecko é uma plataforma desenvolvida para responder algumas necessidades dos seus clientes no que diz respeito a um conjunto de serviços como controlo de inventário, canais de vendas, encomendas, contabilidade. Por outro lado, ainda oferecem aos seus clientes muitos recursos de controlo de Stock automaticamente, interface de utilizador intuitiva, uma equipa disponível para dar apoios aos seus clientes entre outros [12].
2.4.3 Skyware Inventory
O Skyware Inventory é um Software perfeito para pequenas e médias empresas à
procura de uma alternativa livre, fácil de usar Web muito caro, complexo, pesado, e aplicações de rastreamento e gestão de inventário.
Está disponivel um conjunto de APP’s para Android, iPhone, iPad, Tablet, serviços
Capítulo III
3 Metodologia e Resultados Esperado
3.1 Metodologia
A metodologia utilizado no desenvolvimento deste projeto é do método ágil, consiste em ter ocasionalmente, uma nova versão do projeto para apresentar à professora orientadora Beatriz Rebelo e ao professor do Projeto Carlos Brigas e no final documentar todo o trabalho em Word ou seja, analisa por etapas e cada vez que implementa testa e assim sucessivamente. As principais tarefas foram:
1. Identificar as funcionalidades que a aplicação deverá ter; 2. Identificar tipos de utilizadores e os privilégios de acesso; 3. Identificar requisitos funcionais e não funcionais da aplicação; 4. Implementar a solução da aplicação;
5. Realizar os testes de eficiência e fiabilidade; 6. Documentação final do projeto.
3.2 Descrição das Tarefas
As principais tarefas desempenhadas ao longo do projeto foram: Tarefa 1: Análise dos Requisitos da Aplicação Web; Tarefa 2: Estudo da Arte;
Tarefa 3: Estudo das Tecnologias a Utilizar; Tarefa 4: Criação de Base de Dados;
Tarefa 5: Definir os Estilos (Prestashop) para as páginas; Tarefa 6: Teste de Aplicação;
Como mostram nas Figura 5 e ¡Error! No se encuentra el origen de la
referencia. o mapa de Gantt, relativo à lista de cada tarefa apresentada.
3.3 Resultados Esperados
No final do projeto espera-se que na aplicação, os clientes, sejam capazes de: Gerir os dados pessoais;
Verificar as encomendas;
Recuperar e definir a palavra-chave; Consultar produtos.
O Gestor/Administrador poderá:
Gerir/Efetuar dados e consultas dos clientes, empregados, encomendas, produtos;
Verificar encomendas;
Recuperar e definir a palavra-chave;
Efetuar consultas de clientes, empregados e encomendas;
Consultar e definir listagens dos produtos e encomendas, clientes, empregados;
No entanto, o administrador como tal poderá gerir os seus dados pessoais; gerir todas as tabelas e introduzir preços de cada produto.
Os Empregados podem: Fazer registos no sistema;
Introduzir produtos e efetuar consulta das encomendas e produtos; Listar encomendas efetuadas.
4 Tecnologia e Softwares Utilizados
Assim sendo, as principais tecnologias e Softwares utilizados para desenvolver, implementar /programar e testar a aplicação, são:
Análise de Requisitos do projeto para identificar as necessidades do cliente; CSS para as folhas de estilo a usar;
Prestashop para criação de páginas, derivados e a realização do projeto em si;
Photoshop para tratamento de imagens;
Usbwebserver v8.6 como servidor local, para aceder ao site e base de dados (localhost:8080);
Phpmyadmin para criar e aceder a Base de Dados;
Word para produzir um relatório para documentar o projeto; Astah Community para desenhos de diagramas;
4.1 Tecnologias Web
4.1.1 HTML
O HTML (em inglês Hypertext Markup Language) e em português (Linguagem de Marcação de Hipertexto) é uma das linguagens utiliza para desenvolver sites, esta é considerada a linguagem base da internet. Não é uma linguagem de programação, mas sim uma linguagem de marcação [14].
4.1.2 CSS
O CSS (Cascading Style Sheets) é uma linguagem de folhas de estilo utilizada
para definir a apresentação de documentos escritos numa linguagem de marcação, como HTML ou XML. O seu principal benefício é regular a separação entre o formato e o conteúdo de um documento [15].
4.1.3 PHP
Com a designação Personal Home Pages, mas tarde chamado de PHP: Hypertext
Preprocessor.
Considerada uma tecnologia de código aberto. Não é uma linguagem de programação no sentido estrito da palavra, mas sim uma tecnologia que permite a inserção de scripts nos seus documentos. É um ficheiro com a extensão.php e com
4.2 Software Utilizado
4.2.1 PhpMyAdmin
É aplicação Web que permite gerir as bases de dados MYSQL. A partir da mesma é possível criar, inserir, remover, alterar e editar bases de dados, tabelas, campos, executar códigos SQL e manipular campos chaves e outros [17].
4.2.2 Microsoft Word
É um processador de texto produzido pela Microsoft. Onde podemos desenvolver um conjunto de atividades como escrever, desenhar, pintar e outros.
4.2.3 Astah Community
Um Software dinâmico utilizado para construir diversos tipos de diagramas (sequências, organigramas, fluxogramas, e outros), voltado para modelagem de sistemas utilizando a UML [18].
4.2.4 Visio
É um Software para criação de diversos tipos de diagramas (sequencias, cartazes, plantas básicas e outros) em ambiente Windows.
Capítulo IV
5 Análise dos Requisitos e Conceção da Aplicação
5.1 Caso de Uso
Um caso de uso representa uma unidade discreta da interação entre um utilizador (humano ou máquina) e o sistema. Cada caso de uso tem uma descrição ao qual descreve a funcionalidade que irá ser construída no sistema proposto. Os casos de uso são tipicamente relacionados a "atores". Um ator é um humano ou entidade máquina que interage com o sistema para executar uma dada tarefa. É importante notar que não descreve como o Software deverá ser construído, mas sim o seu comportamento [19].
Atores
Um ator representa uma entidade externa que interage com o sistema, apesar da representação humanizada, os atores podem não ser só pessoas, mas também outros sistemas físicos ou lógicos. Os atores devem ser caraterizados através de uma pequena descrição, de forma a assegurar uma correta compreensão do significado do ator por todos os elementos envolvidos na análise do projeto, que neste caso são:
Cliente: é o utilizador que tem como função efetuar encomendas e pagamentos através da aplicação;
Empregado: é a entidade responsável por efetuar o tratamento das encomendas efetuadas pelos clientes e confirmar os pagamentos dos mesmos; Administrador/Gestor: é o ator responsável pela gestão de site, gerir encomenda (s) e respetivos preços dos produtos, verificar os pagamentos, bloquear cliente e outros.
Fornecedor: Disponibilizar produtos da loja, sempre que for solicitado. Retirado no apontamento das disciplinas de Engenharia de Software I e II.
5.2 Descrição dos casos de Uso
5.2.1 Efetuar Encomenda
A seguinte Tabela 1 é correspondente ao caso de uso efetuar encomenda onde o ator responsável é o cliente. A função é mostrar como o cliente efetua uma encomenda e fica registado no sistema.
ATOR PRIMÁRIO CLIENTE
Nome Efetuar Encomenda.
Descrição O ator acede ao sistema para efetuar a encomenda.
Pré-Condições O utilizador precisa estar autenticado como cliente.
Caminho Principal
1. O caso de uso começa quando o cliente seleciona a opção efetuar encomenda.
2. O sistema devolve os vários produtos disponíveis para o cliente escolher.
3. O cliente adiciona os produtos que pretendem e respetivas quantidades no carrinho.
4. O sistema pede confirmação e pergunta ao cliente se deseja efetuar o pagamento online.
5. O cliente confirma e responde à questão.
6. O sistema regista a encomenda e atribui-lhe um código alfanumérico.
Caminhos Alternativos 3.1. Apresenta a mensagem de erro, porque o cliente não pode introduzir quantidades negativas e/ou carateres não numéricos.
5.1. O cliente cancelou a encomenda.
Pós Condições Depois de efetuada a operação o cliente recebe uma mensagem em como a encomenda foi registada com sucesso.
5.2.2 Gerir Encomendas
A seguinte Tabela 2 corresponde ao caso de uso gerir encomendas que é restrito ao administrador/gestor da aplicação. A função consiste em inserir, atualizar estados e apagar encomendas respeitando as especificações dadas pelo sistema.
ATOR PRIMÁRIO GESTOR/ADMINISTRADOR
Nome Gerir Encomendas.
Descrição O ator acede ao sistema para efetuar a encomenda. Pré-Condições O utilizador precisa estar autenticado como administrador.
Caminho Principal
1. O caso de uso começa quando o gestor seleciona a opção gerir encomendas.
2. O sistema devolve os vários tipos de encomendas disponíveis para efetuar operações.
3. O gestor escolhe um tipo de encomenda.
4. O sistema devolve todas as encomendas disponíveis correspondentes ao tipo escolhido, bem como as várias opções que o gestor pode efetuar. 5. O gestor escolhe uma operação para efetuar.
5.1. Se o gestor escolher a operação inserir então.
5.1.1. O sistema devolve um formulário com todas as especificações para preencher.
5.1.2. O gestor preenche e submete o formulário. 5.1.3. O sistema pede para confirmar operação. 5.1.4. O gestor confirma operação.
5.1.5. O sistema regista a encomenda e atribui-lhe um código. 5.2. Se o gestor escolher a operação eliminar então.
5.2.1. O sistema pede para selecionar uma encomenda para eliminar. 5.2.2. O gestor escolhe encomenda para eliminar.
5.2.3. O sistema pede para confirmar.
5.2.4. O gestor confirma operação da eliminação. 5.2.5. O sistema elimina a encomenda.
5.3. Se o gestor escolher a operação atualizar então.
5.3.1. O sistema pede para selecionar uma encomenda para atualizar. 5.3.2. O gestor escolhe encomenda para atualizar.
5.3.3. O sistema devolve um formulário correspondente à encomenda selecionada.
5.3.4. O gestor preenche e submete o formulário. 5.3.5. O sistema pede para confirmar.
5.3.7. O sistema atualiza a encomenda.
Caminhos Alternativos
5.1.2.1 e 5.3.4.1 Mensagem de erro porque o gestor não pode inserir carateres diferentes a encomenda em cada parâmetro do formulário.
Em qualquer etapa da responsabilidade do gestor, este pode cancelar a operação a qualquer momento.
Pós Condições
Depois de efetuadas as operações dos pontos 5.1, 5.2 e 5.3 o gestor recebe uma mensagem em como a operação foi efetuada com sucesso e volta ao ponto 4.
5.2.3 Tratar Encomendas
A seguinte Tabela 3 refere-se ao caso de uso tratar encomendas onde o ator responsável é o empregado/funcionário. Este caso de uso tem como função mostrar como se tratam todas as encomendas efetuadas pelos clientes.
ATOR PRIMÁRIO EMPREGADO
Nome Tratar Encomendas.
Descrição O ator acede ao sistema para tratar a encomenda. Pré-Condições O utilizador precisa estar autenticado como empregado.
Caminho Principal
1. O caso de uso começa quando o empregado seleciona a opção tratar encomendas.
2. O sistema devolve as várias encomendas existentes na base de dados ordenados por forma de entrada com maior relevância para as encomendas ainda pendentes.
3. O empregado seleciona a encomenda que pretende atualizar.
4. O sistema pede para indicar o novo estado e observações da encomenda. 5. O empregado indica o novo estado e insere as observações necessárias. 6. O sistema pede para confirmar operação.
7. O empregado confirma.
8. O sistema atualiza dados da encomenda.
Caminhos Alternativos
3.1., 5.1. e 7.1. O empregado pode cancelar a operação a qualquer momento.
5.1.1. Mensagem de erro porque o empregado inseriu mal as observações. Pós Condições Depois de efetuada a operação, o empregado recebe uma mensagem em
como a encomenda foi atualizada com sucesso.
5.2.4 Efetuar Pagamento
A seguinte Tabela 4 corresponde ao caso de uso atribuir pagamento onde o ator responsável é o cliente. Este caso de uso só é requerido caso o cliente tenha escolhido a opção pré-pagamento via aplicação, o pagamento será feito por transferência bancária ou pelos métodos existes na aplicação.
ATOR PRIMÁRIO CLIENTE
Nome Atribuir Pagamento.
Descrição O ator acede ao sistema para efetuar a encomenda. Pré-Condições O utilizador precisa estar autenticado como cliente.
Caminho Principal
1. O caso de uso começa quando o cliente seleciona a opção efetuar pagamento.
2. O sistema calcula o preço final e devolve as várias opções de pagamento juntamente com o preço.
3. O cliente seleciona a forma de pagamento que deseja.
4. O sistema devolve formulário correspondente à forma de pagamento. 5. O cliente preenche e submete o formulário.
6. O sistema pede para confirmar operação. 7. O cliente confirma.
8. O sistema regista o pagamento e atribui-lhe um comprovativo.
Caminhos Alternativos
5.1. Mensagem de erro porque o cliente preencheu o formulário de forma incorreta.
6.1. O cliente pode cancelar a operação a qualquer momento.
Pós Condições Depois de efetuada a operação o cliente recebe uma mensagem em como o pagamento foi efetuado com sucesso.
5.2.5 Editar Dados
A seguinte Tabela 5 corresponde ao caso de uso editar dados referentes aos utilizadores. A função consiste em inserir, alterar, atualizar dados respeitando as especificações dadas pelo sistema.
ATOR PRIMÁRIO GESTOR
Nome Editar os dados pessoais
Descrição O ator edita os seus dados pessoais
Atores Envolvidos Clientes, Gestor/Administrador, Funcionários/Empregados Pré-Condições
Prioridade Baixa
Caminho Principal
1. O caso de uso começa quando o ator seleciona a opção de editar os seus dados pessoais;
2. O ator insere os dados a alterar;
3. O sistema pede para confirmar a alteração; 4. O ator confirma;
5. O sistema confirma o sucesso;
Caminhos Alternativos
2. A) O ator não respeita as validações do formulário de dados; 3. A) O sistema rejeita as alterações;
3. B) O sistema pergunta se deseja continuar ou cancelar; 4. A) O ator não confirma;
5. A) O sistema não confirma o sucesso;
5. B) O sistema mantem a versão inalterada dos dados;
Suplementos ou Adornos Testar se o sistema deixa introduzir os campos nulos ou inválidos Pós Condições Proceder às alterações na base de dados.
5.3 Diagrama de Casos de Uso
Um diagrama de Caso de Uso descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do utilizador.
Nos diagramas de casos de uso a linguagem utilizada foi a UML – Unifield
Modeling Language é uma linguagem de modelagem que permite representar um
sistema de uma forma padronizada, como mostra na Figura 6.
5.4 Diagrama de Estados
O estado de um objeto depende da atividade na qual ele está a ser processado. Um diagrama de estado mostra os possíveis estados de um objeto e as transações responsáveis pelas suas mudanças de estado, como mostra na Figura 7.
5.4.1 Autenticar Utilizador
Início
Inativo
Ativo
Ligado
Desligado
Fim
Utilizador Ligado ao SistemaSistema Desligado Resposta do Sistema
Utilizador Termina Sessão
5.5 Diagrama de Sequência
5.5.1 Efetuar Registo no Sistema
O diagrama de sequência representado Figura 8 descreve as ações, do sistema, quando o utilizador efetua o registo no sistema.
5.5.2 Efetuar Encomenda
O diagrama de sequência representado na Figura 9 descreve as ações, do sistema, quando o cliente efetua a encomenda no sistema.
5.5.3 Gerir Encomenda
O diagrama de sequência representado na Figura 10 descreve as ações, do sistema, quando o gestor/administrador gere a encomenda no sistema.
Figura 10 Diagrama de Sequência - Gerir Encomenda
5.5.4 Tratar Encomenda
O diagrama de sequência representado na Figura 11 descrevem as ações, do sistema, quando o gestor/administrador faz o tratamento de encomenda no sistema.
5.5.5 Atribuir Pagamentos
O diagrama de sequência representado na Figura 12 descreve as ações, do sistema, quando o cliente efetua atribuição do pagamento da encomenda no sistema.
5.6 Diagrama de Classe
O diagrama de classes é um dos diagramas mais importantes da linguagem UML,
pois representa o modelo geral de informação do sistema. É visto como o desenho
arquitetónico da base de dados e contém todas as classes, hierarquia, relações e associações, descrevendo as operações e atributos das classes de uma forma estrutural, como mostra na Figura 13.
5.6.1 Diagrama de Classe do Sistema Continuação
Este diagrama de classe mostra-nos todo trabalho desenvolvido pelo prestashop e nos dá a entender que é um trabalho já desenvolvido a pensar nas nossas necessidades, ou seja, basta adaptar aos nossos trabalhos, como mostra na Figura 14.
5.7 Dicionário de Dados
O dicionário de dados consiste numa lista organizada de todos os elementos de dados que são pertinentes para o sistema, permitindo fazer a verificação de consistência entre os vários modelos. É uma ponte de referência de todos os elementos envolvidos na medida em que permite associar um significado a cada termo utilizado.
Nome; Tipo; Descrição;
Pseudónimos (outros nomes possíveis); Especificação [22].
5.7.1 Estrutura da Tabela ps_country
Campo Tipo Tamanho Obrigatório Descrição
id_country (PK) Inteiro 10 Sim/automático Número sequencial que identifica univocamente de cada país
id_zone (FK) Inteiro 10 Sim Número que identifica a zona
id_currency (FK) Inteiro 10 Sim Número que identifica a moeda
iso_code Varchar 3 Sim Descrição de código ISO do país
call_prefix Inteiro 10 Sim Os prefixos de chamadas
Active Tinyint 1 Não Se está ou não ativo
contains_states Tinyint 1 Sim Se tem ou não Estado need_identification_number Tinyint 1 Sim Número de identificação do
país
need_zip_code Tinyint 1 Sim Código Zip do país zip_code_format Varchar 12 Não Formato do código Zip display_tax_label Tinyint 1 Não Descrição da axa de
5.7.2 Estrutura da Tabela ps_address
Campo Tipo Tamanho Obrigatório Descrição
id_address (PK) Inteiro 10 Sim/automático Número sequencial que identifica univocamente cada endereço
id_currency (FK) Inteiro 10 Sim Número que identifica a moeda
id_state (FK) Inteiro 10 Sim Número que identifica o estado
id_customer (FK) Varchar 10 Sim Número que identifica o cliente
id_manufacturer (FK) Inteiro 10 Sim Número que identifica o fabricante
id_supplier (FK) Inteiro 10 Sim Número que identifica o fornecedor
id_warehouse (FK) Inteiro 10 Sim Número que identifica armazém
alias Tinyint 1 Não Se tem ou não
pseudônimo
company Varchar 32 Não Descrição da companhia
lastname Varchar 32 Sim Descrição do último
nome
firstname Varchar 32 Sim Descrição do primeiro
nome
address1 Varchar 128 Sim Descrição do primeiro
endereço
address2 Varchar 128 Não Descrição do segundo
endereço
postcode Varchar 12 Sim Descrição de código
postal
City Varchar 64 Sim Descrição da cidade
other Texto max Não Outras descrições
phone1 Varchar 16 Não Descrição do telefone
phone_mobile Varchar 16 Não Descrição do telemóvel vat_number Varchar 32 Sim Descrição de numero de
cuba
Dni Varchar 16 Não
date_upd DataTime Não Data da actualização
active Tinyint 1 Não Existe/existente
deleted Tinyint 1 Não Não existe/inexistente
Tabela 7 Dicionário de Dados: ps_address
5.7.3 Estrutura da Tabela ps_customer
Campo Tipo Tamanho Obrigatório Descrição
id_customer (PK) Inteiro 10 Sim/automático Número sequencial identifica univocamente o cliente
id_shop_group (FK) Inteiro 10 Sim Número que identifica o group da loja
id_shop (FK) Inteiro 11 Sim Número que identifica a loja
id_gender (FK) Inteiro 10 Sim Número que identifica o cliente
id_default_group (FK) Inteiro 10 Sim Número que identifica o grupo padrão
id_risk (FK) Inteiro 10 Sim Número que identifica o risco
company Varchar 64 Sim Descrição da companhia
Siret Varchar 14 Sim
Ape Varchar 5 Sim
firstname Varchar 32 Sim Descrição do primeiro do cliente
lastname Varchar 32 Sim Descrição do segundo do
cliente
email Varchar 128 Sim Descrição do email do
cliente
passwd Varchar 32 Sim Descrição de Password do
cliente
last_passwd_gen Varchar 12 Sim Descrição de Password anterior
informação
ip_registration_newsletter Varchar 15 Não Registo de boletim de informação
newsletter_date_add Datetim e
Não Receber boletim de informação por data
option Tinyint 1 Não Campo opcional
website Varchar 128 Não Descrição de Website
outstading_allow_amount Decimal 10,6 Sim Quantidade permitida show_public_prices Tinyint 1 Sim Mostra preço ao publico max_payment_day Inteiro 10 Sim Máximo pagamento por dia
secure_key Varchar 32 Sim Chave de segurança
Note Text Max Não Descrição de uma nota
active Tinyint 1 Não Se é ou não ativo
is_guest Tinyint 1 Não Descrição se é convidado
deleted Tinyint 1 Não Apagar
date_add Datetim
e
18 Sim Descrição da data de admissão
date_upd Datetim
e
18 Sim Descrição da data de atualização
Tabela 8 Dicionário de Dados: ps_customer
5.7.4 Estrutura da Tabela ps_product_supplier
Campo Tipo Tamanho Obrigatório Descrição
id_product_supplier (PK) Inteiro 11 Sim/automático Número sequencial que
identifica univocamente produto fornecedor
id_product (FK) Inteiro 11 Sim Número que identifica o produto id_product_attribute (FK) Inteiro 11 Sim Número que identifica o atributo
de produto
id_supllier (FK) Inteiro 11 Sim Número que identifica fornecedor do produto
product_supplier_referen ce
Varcha r
100 Sim Descrição da referencia do fornecedor do profuto
id_currency (FK) Inteiro 11 Sim Número que identifica a moeda
Tabela 9 Dicionário de Dados: ps_product_supplier
5.7.5 Estrutura da Tabela ps_orders
Campo Tipo Tamanho Obrigatório Descrição
id_order (PK) Inteiro 10 Sim/automático Número sequencial que identifica univocamente cada encomenda
reference Varchar 9 Sim Descrição da referência da encomenda
id_shop_group (FK) Inteiro 11 Sim Número que identifica o grupo de loja
id_shop (FK) Inteiro 11 Sim Número que identifica a loja id_carrier (FK) Inteiro 10 Sim Número que identifica o
portador
id_lang (FK) Inteiro 10 Sim Número que identifica id_customer (FK) Inteiro 10 Sim Número que identifica o
cliente
id_cart (FK) Inteiro 10 Sim Número que identifica o carrinho
id_currency (FK) Inteiro 10 Sim Número que identifica a moeda
id_address_delivery (FK)
Inteiro 10 Sim Número que identifica o endereço de entrega
id_address_invoice (FK)
Inteiro 10 Sim Número que identifica o endereço da fatura
current_state Inteiro 10 Sim Número que identifica o estado atual da encomenda secure_key Varchar 32 Sim Descrição da chave segura
payment Varchar 255 Sim Descrição do pagamento
conversion_rate Decimal 13,6 Sim Descrição da taxa de conversão
shipping_number Varchar 32 Sim Descrição de número de chip total_discounts Decimal 17,2 Sim Descrição dos descontos total_discounts_tax_inc
l
Decimal 17,2 Sim Descrição com taxa de descontos incluídos
total_discounts_tax_ex cl
Decimal 17,2 Sim Descrição sem taxa de descontos
total_paid Decimal 17,2 Sim Descrição do preço total pago
total_paid_tax_incl Decimal 17,2 Sim Descrição do preço total pago com taxa incluída total_paid_tax_excl Decimal 17,2 Sim Descrição do preço total
pago sem taxa incluída total_paid_real Decimal 17,2 Sim Descrição do preço total
pago na hora
total_products Decimal 17,2 Sim Descrição do preço total do preço de produtos
total_products_wt Decimal 17,2 Sim Descrição do preço total do preço de produtos por peso total_shipping Decima 17,2 Sim Descrição do preço total por
remessas
Tabela 10 Dicionário de Dados: ps_orders
5.7.6 Estrutura de Tabela ps_supplier
Campo Tipo Tamanho Obrigatório Descrição
id_ supplier (PK) Inteiro 10 Sim/automático Número sequencial que identifica univocamente cada fornecedor name Varchar 64 Sim Descrição do nome do fornecedor date_add Datetime 18 Sim Descrição da data adesão
date_upd Datetime 18 Sim Descrição da data de atualização dos dados
active Tinyint 1 Não Se está ativo ou não
5.7.7 Estrutura da Tabela ps_category
Campo Tipo Tamanho Obrigatório Descrição
id_ category (PK)
Inteiro 10 Sim/automático Número sequencial que identifica univocamente cada categoria id_product (FK) Inteiro 10 Sim Número que identifica o produto position Inteiro 10 Sim Número que identifica a posição
Tabela 12 Dicionário de Dados: ps_category
5.7.8 Estrutura da Tabela ps_order_payment
Campo Tipo Tamanho Obrigatório Descrição
id_order_payment (PK)
Inteiro 10 Sim/automático Número sequencial que identifica univocamente cada pagamento encomenda
order_reference Varchar 9 Sim Descrição da referência da encomenda
id_currency (FK) Inteiro 10 Sim Número que identifica a moeda
amount Decimal 10,2 Sim Quantidade em valor
payment_methodo Varchar 255 Sim Descrição do método de pagamento
conversion_rate Decimal 13,6 Sim Descrição da taxa de conversão transaction_id Varchar 254 Sim Descrição da transação
card_number Varchar 254 Sim Descrição de número de cartão card_brand Varchar 254 Sim Descrição da banda do cartão card_expiration Char 7 Sim Descrição da expiração do
cartão
card_holder Varchar 254 Sim Descrição do titular de cartão
date_add Datetime Sim Descrição da data de adesão
5.7.9 Estrutura da Tabela ps_product
Campo Tipo Tamanho Obrigatório Descrição
id_product (PK) Inteiro 10 Sim/automático Número sequencial que identifica univocamente cada produto
id_supplier (FK) Inteiro 10 Sim Número que identifica o fornecedor
id_manufacturer (FK) Inteiro 10 Sim Número que identifica o fabricante de produto
id_category_default (FK)
Inteiro 10 Sim Número que identifica padrão de categoria
id_tax_rules_group (FK)
Inteiro 11 Sim Número que identifica regra da taxa do grupo
on_sales Tinyint 1 Sim Se está disponível para venda online_only Tinyint 1 Sim Se apenas está disponível
online
ean13 Varchar 13 Sim Descrição de código de barra de referência europeia
Upc Varchar 12 Sim Descrição de código de barra de referência Americana
ecotax Decimal 17,6 Sim Taxa ecológica
quantity Inteiro 10 Sim Descrição da quantidade do produto
minimal_quantity Inteiro 10 Sim Quantidade mínima do produto
price Decimal 20,6 Sim Descrição do preço
wholesale_price Decimal 20,6 Sim Descrição do preço de venda
unity Varchar 255 Sim Descrição da unidade
unit_price_ratio Decimal 20,6 Sim Descrição do preço unitário additional_shipping_co
st
Decimal 20,2 Sim Descrição do custo adicional
reference Varchar 32 Sim Descrição da referência do produto
supplier_reference Varchar 32 Sim Descrição da referência do fornecedor
location Varchar 64 Sim Descrição da localização
depth Float Sim Descrição da profundidade
weight Float Sim Descrição do peso
out_of_Stock Inteiro 10 Sim Descrição do produto fora do Stock
quantity_descount Tinyint 1 Sim Descrição do desconto da quantidade
customizable Tinyint 2 Não
uploadable_files Tinyint 4 Não Descrição de ficheiro a carregar
text_fields Tinyint 4 Não
active Tinyint 1 Não
Tabela 14 Dicionário de Dados: ps_product
5.7.10
Estrutura da Tabela ps_order_detail
Campo Tipo Tamanho Obrigatório Descrição
id_order_detail (PK) Inteiro 10 Sim/automático
Número sequencial que identifica univocamente cada detalhe de encomenda
id_order (FK) Inteiro 10 Sim Número que identifica a encomenda
id_order_invoice (FK) Inteiro 10 Sim Número que identifica faturas da encomenda id_warehouse (FK) Inteiro 10 Sim Número que identifica o
armazém
product_id (FK) Inteiro 10 Sim Número que identifica o produto
product_attribute_id (FK) Inteiro 10 Sim Número que identifica atributo de produto
product_name Varchar 255 Sim Descrição do nome de produto
product_quantity_in_Stock Inteiro 10 Sim Descrição da quantidade em Stock
product_quantity_reinjecte d
Inteiro 10 Sim Quantidade de produto introduzido
product_price Decimal 20,6 Sim Descrição do preço de produto
redution_amount_tax_incl Decimal 20,6 Sim redution_amount_tax_excl Decimal 20,6 Sim group_reduction Decimal 10,6 Sim
product_quantity_discount Decimal 20,6 Sim Quantidade de produto com desconto
product_ean13 Varchar 13 Sim Descrição da referência código de barra Europeia product_upc Varchar 12 Sim Descrição de referência de
código de barra Americana product_reference Varchar 32 Sim Descrição da referência de
produto product_supplier_referenc
e
Varchar 32 Sim Descrição da referência de produto por fornecedor
product_weight Float Sim Descrição do peso do
produto tax_computation_method Tinyint 1 Sim
tax_name Varchar 16 Sim Descrição da taxa
tax_rate Decimal 10,3 Sim Taxa imposto
ecotax Decimal 21,6 Sim Taxa Ecológica
ecotax_tax_rate Decimal 5,3 Sim Imposto da Taxa Ecológica discount_quantity_applied Tinyint 1 Sim Desconto na quantidade
aplicada
5.8 Diagrama de Atividades
O diagrama de atividades constitui um elemento de modelação simples, mas eficaz, para descrever fluxos de trabalho numa organização ou para detalhar operações de uma classe, incluindo comportamentos que possuam processamento paralelo, como mostra na Figura 16.
5.8.1 Distribuir Encomendas
5.9 Diagrama de Instalação
O Diagrama de instalação é definido pela Linguagem de Modelagem Unificada (UML), descreve os componentes de Hardware e Software e a sua interação com outros elementos de suporte ao processamento.
Portanto, são representados também os Softwares que são executados em partes do Hardware, como mostra na Figura 18.
Capítulo V
6 Implementação da Solução
O Prestashop disponibiliza na sua página oficial um conjunto de Add-ons, módulos, temas de modo a ter eficiência e o funcionamento da aplicação, manual de configuração e instruções para quem pretende trabalhar com esta ferramenta Open
Source.
Portanto existem alguns módulos que são pagos, que provavelmente oferecem ainda melhor a qualidade de otimização. Por isso, será explícito em Anexo, uma parte de trabalho que foi desenvolvido pelo aluno.
6.1 Descrição
Uma vez que, não foi exigida uma linguagem específica para desenvolver site, e escolhemos o Prestasho, isto porque, é fácil, prático e viável, totalmente grátis. Por outro lado, tem recursos as várias tecnologias tanto para design da aplicação, da interação, no caso de ligações a base de dados (MYSQL) como restrições através do servidor (Usbwebserver v8.6.). Todos estes tópicos serão aqui descritos e exemplificados de acordo com a aplicação
6.2 Implementar Responsive Web Design
Hoje em dia, seria muito cansativo e perca de tempo desenhar múltiplas versões para um só site, por exemplo, desenhar para serem visualizados nos telemóveis smartphone computador isto porque já existem ferramentas com essas características.
O Responsive Web Design é uma das soluções técnicas, permite programar um
site de forma automaticamente à largura de tela do dispositivo no qual ele está sendo
visualizado. Um Responsive Web Desin permite:
Adaptar o layout da página de acordo com a resolução visualizada;
Redimensionar as imagens automaticamente para que caibam na tela;
Simplificar elementos da tela para dispositivos móveis, isto porque o utilizador tem menos tempo e menos atenção durante a navegação;
Adaptar tamanho de botões e links para interfaces touch e substituí o ponteiro do rato pelo dedo do utilizador;
Utiliza Geolocalização e mudança na orientação do aparelho (horizontal ou vertical) de forma inteligente.
Figura 19 Responsivo Web Design. Fonte: [23]
Para implementar isso no site, deve fazer download de resposive Template na google e guarda-se numa pasta (pasta.zip) no seu computador ou numa pen. Depois entra no Painel de Controlo do prestashop Preferências Temas Adicionar
6.3 Construção do Templates
A parte da implementação será a construção de Templates para as páginas Web. Inicialmente o prestashop disponibiliza um Templates, como mostra na Figura 20.
Como podem observar nas Figura 21 e Figura 22 são totalmente diferentes em comparação com o Templates original.
Para fazer a tal alteração, é necessário entrar no modo Painel de Controlo e escolher o formato desejável. Sobretudo, no Item catálogo onde encontrará um conjunto de páginas como Produtos, Categorias e outras relacionadas aos Produtos. Poderá entrar e alterar consoante a loja ( Templates Continuação).
Figura 21 Templates - Página Principal
Esta página refere-se à página início, onde estão categorias de produtos, sobretudo a categoria cozinha, como mostram nas Figura 23, Figura 24 e Figura 25.
Figura 23 Templates - Página Início
6.4 Base de Dados
Diagrama de classe do Sistema visualizado na Figura 14 era muito complexa, deste modo tentamos simplifica-la e obtivemos a base de dados, que se observa na Figura 26, de modo a ter uma perceção daquilo que estaria a ser mais utilizado para o trabalho em si. Não significa que outras trabelas não são importantes, antes pelo contrário.