tastyigniter/ti-theme-orange
Orange is a modern, responsive TastyIgniter restaurant theme built with Laravel Livewire and Bootstrap. It offers AJAX add-to-cart, single or two-page checkout, theme editor options, and static pages—ideal for cafes, bars, bakeries, and food delivery.
This is not a general-purpose Laravel package you use inside an arbitrary app. It is a TastyIgniter front-end theme, so day-to-day leverage starts with a TastyIgniter application whose major version matches the theme major version (v4 theme for TastyIgniter v4). If you are not on TastyIgniter, the package has little standalone value.
Minimal steps:
composer require tastyigniter/ti-theme-orange
Where to look first:
themes/orange/ — the installed theme directory. Start with layouts/, pages/, partials/, the Livewire component classes, assets/, config/, and language/.theme.json or equivalent) — confirms the theme code, parent theme support, dependencies, and option definitions.First practical use case: on a staging copy, activate Orange, configure one location and one menu, switch between single-page and two-page checkout, and run through add-to-cart, checkout, payment selection, order placement, and forgot-password. That exposes most integration points quickly.
Use a child theme for customization. The highest-leverage pattern is to create a child theme whose parent is Orange, then override only the Blade views, partials, layouts, assets, and language files you actually need. This keeps composer updates from wiping your work. Copy the smallest possible view surface rather than forking the whole theme.
Treat theme options as the configuration API. Colors, logo, checkout mode, security redirect page, and similar settings should be read from TastyIgniter's theme options (theme()->get(...) or the equivalent helper exposed by your TastyIgniter version) rather than hardcoded in Blade. This keeps the admin Theme Editor meaningful and makes per-environment configuration possible.
Override Blade at the partial/layout level. Most day-to-day changes are presentational: header/footer markup, menu card markup, checkout field layout, order summary presentation. Override the specific partial in the child theme, keep the parent's includes and Livewire bindings intact, and avoid rewriting whole pages.
Extend Livewire components rather than editing them. When behavior needs to change — cart totals, checkout field validation, order preview, fulfillment scheduling — subclass the theme's Livewire component and point the view/alias at your subclass. Keep the original component as the fallback so theme updates remain mergeable. Use Livewire events and public properties as the integration surface; avoid reaching into private component internals.
Customize checkout through supported field types. The theme supports checkout field templates including select fields and partial-type fields. Add fields by extending the checkout field definitions and validation rules, then verify they persist onto the order. Test both single-page and two-page flows, and test switching payment methods mid-checkout, because order totals and payment method persistence have historically been sensitive areas.
Lean on the AJAX cart and menu option features. Add-to-cart is Livewire/AJAX-driven. For menu items with options, use the theme's conditional option visibility and free-quantity preview rather than building parallel JS. Validate all menu options before saving, and test checkbox/multi-select options against existing cart items — these have had regressions.
Localize through the theme namespace. Use igniter.orange::... translation keys and override language files in the child theme rather than hardcoding strings. This matters for review labels, newsletter forms, checkout messages, and flash messages.
Respect the asset pipeline. Check the theme's package.json and build config before editing CSS/JS. Compile assets, register them through the theme's normal layout/manifest mechanism, and do not introduce a second Bootstrap major version. If the project already uses Bootstrap 5 and Livewire 3, integration is straightforward; mixing older Bootstrap or non-Livewire front-end code creates avoidable conflicts.
Integrate SEO and static pages at the theme layer. If you use the SEO Manager extension, keep meta/SEO partials in the child theme aligned with the theme's layout structure. Static pages and navigation menus are first-class theme features; use them instead of hardcoding routes into layouts.
Deployment pattern: install via composer, build assets, clear caches, then activate the theme and set options per environment. The active theme and theme options are typically stored in the database, so include them in your deployment/seeding process rather than assuming code deployment is enough.
LocationData, order types, cart, booking, checkout). It is a poor fit for plain Laravel or October CMS projects. Pin the theme major version to the TastyIgniter major version.^3.7. Upgrading Livewire or TastyIgniter core without checking the theme's constraints is a common source of broken cart/checkout behavior.securityRedirectPage setting — guests/customers are redirected to a configurable page rather than always home.APP_DEBUG, Laravel logs, browser console, and Livewire devtools before changing theme code.How can I help you explore Laravel packages today?