lameck/smartcart

"Carrinho de compras com storage"

dev-master 2018-06-19 23:28 UTC

This package is not auto-updated.

Last update: 2024-04-17 23:24:17 UTC


README

Packager Smartcart

SmartCart é um packager criado para o framework laravel 5.5 por Lameck Fernandes. Tem o objetivo de automatizar o desenvolvimento de aplicações que utilizam um carrinho de compras.

Este packager foi desenvolvido para acelerar o desenvolvimento de lojas virtuais que utilizam um carrinho de compras. Ou seja, neste packager foram desenvolvidos as rotas, tabelas e os controles de uma aplicação convencional. Para exemplificar seu uso foi desenvolvido um protótipo com bootstrap 4 que acompanha o packager. Em resumo, para o seu complemento basta a API de pagamento.

O cart foi baseado no uso de sessão para controle da lista de pedidos. Esta aplicação, inicialmente, trata-se do modelo server-side. Não foi desenvolvido a API para client-side, o que poderá conter em outra versão. Contudo, caso seja o interesse, a maior parte do projeto já foi desenvolvida o que bastaria retornos em json. O modelo usado para tokens é o nativo CSFR. Para JWT basta mínimas alteraçes com o objetivo é acelerar o desenvolvido. Embora o DER ainda dependa das características que variam a cada projeto, utiliando com este packager o tempo de desenvolvido se reduz customizando o código de acordo com suas necessidades.

As tabelas foram criadas de acordo com o que é mais comum em cadastros de produtos como: o controle de estoque (inventário); categoria; marca; fornecedor; e propriamente o produto.

Este packager contém:


Publishables

Migrations

Ordem de migração. Notei que entre o sistema Linux e windows, a ordem se faz necessária. Alguns possíveis erros, que varia com o sistema e banco que esta usando, poderia ser que a forekey não pode ser nula. Devido a relação de composição entre as tabelas, category, brand, address e status não migram forekeys mas elas exportam. As tabelas que migram são: provider de status e address; product de provider; e inventory de product. Não ouve problemas para sistemas linux, especificamente Ubuntu 16 LTS rodando phpmyadmin com mysql. Porém no windows, com wampserver apresentou estes problemas os quais foram corrigidos alterando a ordem das tabelas. Isso, se for realmente usar php artisan migrate --force.

2018_03_26_225025_create_category 2018_03_26_230229_create_brand 2018_03_26_234958_create_address 2018_03_27_000540_create_status 2018_03_27_032617_create_provider 2018_03_27_032618_create_product 2018_03_27_032619_create_inventory

Seeders

Opcional. Para uso do exemplo de aplicação do smartcart

smcAddressTableSeeder smcBrandTableSeeder smcCategoryTableSeeder smcInventoryTableSeeder smcProductTableSeeder smcProviderTableSeeder smcStatusTableSeeder

Resources

views

  • Layouts

Patas onde contém dos templates da aplicação

app: Template utilizado nas páginas do exemplo de aplicação
  • Partials

Parte integrante do template usado nos includes do blade

header: Cabeçalho do layout
  • Shop

Contem as páginas do cart

cart: Página de resumo de compras checkout: Página de efetuação de pagamento index: Página de lista dos produtos
  • User
  • profile Página onde conteria as ordens de compra e demais relações ao usuário
  • signin: Página de login no sistema para uso do smartcart
  • signup: Página de cadastro no sistema
home: Página de apresentação do smartcart

SRC

Http

Controllers AccountController: Responsável pelo gerenciamento de usuarios do sistema ShopController: Reponsável pelo controle das funcionalidades do smartcart Middleware Authenticate: Responsável por limitar acesso às compras no sistema Models Product: Camada que intermedia o banco de dados e a view do sistema Rotes api: Lista de roteamento dos controles do sistema Provider SmartCartServiceProvider: Provider da aplicação, a assinatura no laravel

Assinatura: Packagerlist

INSTALAÇÃO

Por enquanto esta disponível a versão de desenvolvimento. composer require lameck/smartcart:@dev

PROVIDER: app/config/app.php

...
Lameck\Smartcart\SmartcartServiceProvider::class,

KERNEL: app/http/kernel.php

Adicione em routemiddlware:
'smcAuth' => 'Lameck\Smartcart\Http\Middleware\Authenticate',

PUBLISH

php artisan vendor:publish --provider="Lameck\Smartcart\SmartcartServiceProvider"

Até neste ponto toda configuração necessária esta definida. Caso deseje ver um exemplo prossiga com os seeders

EXEMPLO

Crie um banco de dados e configure o arquivo nativo .env

Crie as tabelas no banco: php artisan migrate --force

Adicione ao arquivo DatabaseSeeder

    //$this->call(UsersTableSeeder::class);
    $this->call(smcCategoryTableSeeder::class);
    $this->call(smcBrandTableSeeder::class);
    $this->call(smcAddressTableSeeder::class);
    $this->call(smcStatusTableSeeder::class);        
    $this->call(smcProviderTableSeeder::class);
    $this->call(smcProductTableSeeder::class);
    $this->call(smcInventoryTableSeeder::class);

Se não digitar este comando, as tabelas poderão não ser populadas: composer dump-autoload. Um possível erro seria algo como "a tabela smcCategoryTableSeeder não foi encontrada"

Popule as tabelas: php artisan db:seed

Rode o servidorphp artisan serve

Para acessar as rotas basta php artisan rout:list. O protóripo se encontra na localhot:8000/smc

Possivel erro ao acessar a página SHOP

Access denied for user 'homestead'@'localhost' (using password: YES)

Pare o servidor. Limpe o cache: php artisan cache:clear Reinicie php artisan serve

Domínio

68747470733a2f2f7331382e706f7374696d672e63632f6c33746b77737a68352f446f6d696e696f2e6a7067

Home
68747470733a2f2f7331382e706f7374696d672e63632f3933383477326b63702f436170747572615f64655f74656c615f64655f323031382d30332d32385f32312d32322d31342e706e67

SHOP
68747470733a2f2f7331382e706f7374696d672e63632f6136733937736b63702f436170747572615f64655f74656c615f64655f323031382d30332d32385f32312d33362d35352e706e67


Criando conta

Por utilizar sessão como meio de gerenciamento do cart, é necessário logar no sistema.


68747470733a2f2f7331382e706f7374696d672e63632f6778387168396133642f436170747572615f64655f74656c615f64655f323031382d30332d32385f32312d33382d33322e706e67


Após Login, add pedidos

68747470733a2f2f7331382e706f7374696d672e63632f64716536786e6b69682f436170747572615f64655f74656c615f64655f323031382d30332d32385f32312d34302d30382e706e67


Carrinho


68747470733a2f2f7331382e706f7374696d672e63632f37637033756661686c2f436170747572615f64655f74656c615f64655f323031382d30332d32385f32312d34312d30362e706e67


Carrinho

Adicione mais pedidos, exclua algum item ou apague todos os itens.


68747470733a2f2f7331382e706f7374696d672e63632f37637033756661686c2f436170747572615f64655f74656c615f64655f323031382d30332d32385f32312d34312d30362e706e67


Checkout

Basta inserir a API de pagamento


68747470733a2f2f7331382e706f7374696d672e63632f7735796e7634796e742f436170747572615f64655f74656c615f64655f323031382d30332d32385f32312d34332d30322e706e67

Próximos plugins adiciono o pagamento com diversos places dentro e fora do Brasil.