gp247/front
Frontend package for GP247, the Laravel-based e-commerce and CMS platform. It provides the public storefront layer—routes, views, templates, and layout components—so you can build and customize a responsive, SEO-friendly site on top of GP247's admin and API.
gp247/front is the presentation layer for GP247 — the piece that turns a GP247 install into a browsable site (layouts, templates, CMS content rendering, frontend routes). Treat it as your theme/foundation layer rather than a business-logic package.
Minimal setup:
composer require gp247/front
php artisan vendor:publish --provider="GP247\Front\Providers\FrontServiceProvider"
php artisan migrate
php artisan config:clear && php artisan view:clear
Look first at, in this order:
config/gp247-front.php (published) — template/layout selection, route prefixes, middleware stack, asset paths.gp247-front::...), Blade directives, and admin menu entries.resources/views/ inside the package — the default template tree is your map of what's overridable.php artisan route:list | grep gp247 to see which frontend URLs the package owns versus the core.First use case to validate your install: render the home page and a CMS content page end-to-end. If the layout resolves, assets load, and the content block renders, the wiring is correct. Only then start customizing — debugging a broken install after you've added a theme is significantly harder.
Because this package has near-zero public adoption, budget time for reading source rather than searching for docs. Pin the version in composer.json ("gp247/front": "x.y.*") and avoid dev-main in anything you intend to deploy.
Override, don't fork. The standard Laravel view-namespace pattern applies: publish views into resources/views/vendor/gp247-front/ and edit there. Keep the package untouched so composer update stays safe. If the package registers a view namespace, confirm the exact prefix before overriding — a mismatched path silently falls through to the package default, which is a confusing failure mode.
Template selection belongs in config. Point the config at your template directory rather than hardcoding layouts in controllers. This lets you flip between the stock template and your own without touching application code, and keeps multi-site setups manageable:
// config/gp247-front.php
'template' => 'mytheme',
Extend via Blade components for repeated chrome. Header, footer, nav, product teasers — wrap them once as components and reference them from layout files. When the package later changes its own partials, your components isolate the blast radius.
Compose, don't subclass. If you need behavior the package's controllers don't expose, prefer a thin application-level controller that reuses the package's views and services over extending package classes. Subclassing couples you to internals that can change between releases.
Middleware for cross-cutting frontend concerns. Locale detection, currency, cache headers, maintenance mode — register these in the package's route middleware config (or wrap its route group in routes/web.php) rather than editing package routes.
Asset pipeline. Publish the package assets, then let Vite/Mix own the build. Don't edit files in public/vendor/gp247/front directly — they'll be overwritten. Add your overrides in your own source directory and reference them from your layout.
Content workflow. For CMS-driven pages, use the admin screens to author content and keep templates free of hardcoded copy. This is the main reason to adopt the package at all — if you find yourself hardcoding marketing text into Blade, you're getting the dependency cost without the benefit.
composer-patches or a fork) ready.php artisan view:clear after every layout change; a stale compiled view looks identical to a broken override.php artisan vendor:publish --tag=... that wasn't run in the deploy script, or a symlink issue. Verify the published asset path exists on the server, not just locally.vendor/, subclassing controllers, and monkey-patching service providers. The first list survives upgrades; the second list doesn't.How can I help you explore Laravel packages today?