lameck / smartcart
"Carrinho de compras com storage"
Requires
- php: ^5.5.9 || ^7.0
This package is not auto-updated.
Last update: 2025-05-01 04:12:11 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.
Seeders
Opcional. Para uso do exemplo de aplicação do smartcart
Resources
views
- Layouts
- app: Template utilizado nas páginas do exemplo de aplicação
Patas onde contém dos templates da aplicação
- Partials
- header: Cabeçalho do layout
Parte integrante do template usado nos includes do blade
- Shop
- cart: Página de resumo de compras
- checkout: Página de efetuação de pagamento
- index: Página de lista dos produtos
Contem as páginas do cart
- 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
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
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ínioCriando conta
Por utilizar sessão como meio de gerenciamento do cart, é necessário logar no sistema.
Após Login, add pedidos
Carrinho
Carrinho
Adicione mais pedidos, exclua algum item ou apague todos os itens.
Checkout
Basta inserir a API de pagamento
Próximos plugins adiciono o pagamento com diversos places dentro e fora do Brasil.