/PHP-Ecommerce

Pequeno projeto de e-commerce para testar conhecimento na linguagem php7.0

Primary LanguageHTML

Implementação E-Commerce

Um pequeno projeto de implementação de um site de e-commerce para testar conhecimentos na linguagem php. Esse projeto está sendo feito em conjunto com o "curso completo de php7" da hcodebr para o treinamento do novo time de estagiários da WebJump!

Site da empresa:

http://www.webjump.com.br/

Instalação

É recomendado que você tenha um ambiente de testes para validar alterações e atualizações antes de atualizar sua loja em produção.

Existem algumas lib e recursos que ainda não foram adicionadas ao composer.json, elas são: cURL, openssl e a GD library.

A instalação do módulo é feita utilizando o Composer. Para baixar e instalar o Composer no seu ambiente acesse https://getcomposer.org/download/

Pré-requisitos

  • Php 7.x
  • Virtual host (apache ou nginx)
  • Banco MySQL
  • OS Unix (de preferencia, alguns recursos podem não funcionar corretamente no windows)
  • Composer

Estágio Webjump!

Este projeto está sendo desenvolvido para o treinamento do time de estagiários da WebJump! Mas, sinta-se livre para o usar o código fonte e sugerir melhorias :)


Linkedin

https://www.linkedin.com/in/gustavo-vicente-dauer/


Classes

Este projeto utiliza a forma DAO para organização das classes e seus respectivos métodos. As classes são:

  • Vendor -> Hcodebr -> php-classes -> src -> DB -> Sql.php

A classe SQL é responsável pela comunicação com o banco de dados, e, fazer o bind params de forma dinâmica. A diferença entre os métodos "query" e "select" está no retorno de dados, visto que o método "query" é um método void

  • Vendor -> Hcodebr -> php-classes -> src -> Model.php

Essa é uma classe abstrata, responsável por conter os métodos setData que carrega seus filhos com um array de valores. Também é responsável por fazer os métodos set e get de forma dinâmica.

  • Vendor -> Hcodebr -> php-classes -> src -> Mailer.php

Classe responsável pelo envio de e-mail da rota forgot

  • Vendor -> Hcodebr -> php-classes -> src -> Page.php

Classe responsável por fazer o merge entre o views e views cache atráves da classe pai raintpl

  • Vendor -> Hcodebr -> php-classes -> src -> PageAdmin.php

Mesma função da page, mudando apenas o tipo de template a ser carregado. Extende da classe pai Page.php

  • Vendor -> Hcodebr -> php-classes -> src -> Model -> Address.php

Essa classe é responsável por se comunicar com o webservice "Via CEP", fazer o carregamento do cep informado aplicando o frete com o webservice da Sedex (a comunicação com o webservice da sedex é feita pela classe Cart.php)

  • Vendor -> Hcodebr -> php-classes -> src -> Model -> Category.php

Classe responsável por gerenciar os CRUD da categoria, e, atribuir n produtos a mesma. Possui métodos para paginação.

  • Vendor -> Hcodebr -> php-classes -> src -> Model -> Order.php

Classe responsável por gerenciar o carrinho e pedidos dos usuários cadastrados. Possui métodos para paginação.

  • Vendor -> Hcodebr -> php-classes -> src -> Model -> OrderStatus.php

Possui apenas um método, é uma classe final que serve apenas para gerenciar os status dos pedidos (EM ABERTO, AGUARDANDO PAGAMENTO, PAGO, ENTREGUE)

  • Vendor -> Hcodebr -> php-classes -> src -> Model -> Product.php

Classe responsável pelo CRUD de produtos, traser a wishlist atrelado ao usuário, categoria e o carrinho. Possui métodos para paginação, OBSERVAÇÃO: Essa classe necessita de uma tabela contendo as relações entre REVIEW n-1 PRODUTOS.

  • Vendor -> Hcodebr -> php-classes -> src -> Model -> User.php

Classe responsável pelo CRUD de usuários e validação de login (admin ou não). Possui método para paginação, forgot password via classe Mailer.php, get Orders e o captch do google.

  • Vendor -> Hcodebr -> php-classes -> src -> Model -> Wishlist.php

Classe responsável pelo CRUD da lista de desejos OBSERVAÇÃO: Essa classe necessita de uma tabela contendo as relações entre USUÁRIO 1-n PRODUTOS.

  • Vendor -> Hcodebr -> php-classes -> src -> Model -> Cart.php

É a classe responsável por manipular o cart do usuário, seja um usuário cadastrado ou não (via $_SESSION) e por se comunicar com o webservice da sedex através do

"http_build_query"

E

"simplexml_load_file"

Telas:


Login Admin

la

Login Usuário

lu

Index

i1 i2

Produtos

p

Wishlist

w

Cart

ca

Checkout

ch1 ch2

Painel Admin

pa

Detalhe de Pedidos Admin

dpa dpa2

Detalhe de Pedidos Usuários

dpu

Detalhe de Produto

dp

Forgot Password

fp fpa