goldnead/statamic-booking
A Statamic addon for handling bookings and reservations. Manage availability, booking records, and scheduling from the control panel, with a Laravel-powered backend and simple front-end integration for appointment, rental, or service workflows.
This addon plugs into Statamic's Control Panel and leans on statamic-brand-context for its settings placement. The v1.7.0 release is a drop-in upgrade: no migration and no new config keys, so there is nothing to publish or backfill before you start using it.
First steps:
composer require the addon (and ensure statamic-brand-context is present — see the version note below).A good first use case is simply confirming where the settings land in your CP: install, open the addon's nav entry, and verify the Einstellungen sub-item renders. That validates both the addon and your brand-context version in one pass.
Version-aware settings placement. The new settingsNavParent() method returns [section, name] describing the addon's own CP navigation entry. The behaviour is version-gated:
statamic-brand-context >= 1.16: settings render as the "Einstellungen" sub-item under your nav entry.Pin statamic-brand-context to ^1.16 (or higher) in composer.json if you want the nested settings layout to be deterministic across environments.
Keep nav registration and settingsNavParent() in sync. The [section, name] pair should mirror exactly what you register in your nav provider. Mismatches typically surface as settings appearing on the fallback "Addon-Suite" page instead of under your entry.
Addons without their own nav. If your addon doesn't declare navigation, don't fight the shared "Addon-Suite" page — treat it as the intended grouping and use it consistently across your addon family. This is also a sensible pattern for suite-style packages that want one consolidated settings area.
Day-to-day workflow. Settings changes are read through the normal Statamic config/settings pipeline, so the usual patterns apply: resolve settings in your service provider or via the brand-context API, inject them into views/middleware, and avoid caching resolved values across requests unless you're deliberately caching per-brand.
settingsNavParent() is ignored — not errored — on brand-context < 1.16. If a teammate reports "the settings are in the wrong place," check the installed brand-context version before debugging the addon.php please cache:clear (or the equivalent) after changing nav registration or settingsNavParent() so the new sub-item appears.[section, name] pair, a renamed nav entry silently breaks the parent link. Add a test or a lint check that asserts the returned pair matches your registered nav.settingsNavParent() is the intended hook for controlling settings placement — override it in your addon rather than hardcoding routes or custom CP pages if you want to stay compatible with future brand-context releases.How can I help you explore Laravel packages today?