Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Ti Theme Orange Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Getting Started

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:

  1. Install into the TastyIgniter app root:
    composer require tastyigniter/ti-theme-orange
    
  2. Activate it in Admin → Design → Themes and set Orange as the active front-end theme.
  3. Open the Theme Editor / Theme Options for Orange and configure the obvious first-run settings: logo, colors, checkout flow (single-page vs two-page), order types, and the security redirect page.
  4. Seed or create at least one location, menu category, menu item with options, and a delivery/pickup order type. Then place a test order end-to-end.

Where to look first:

  • themes/orange/ — the installed theme directory. Start with layouts/, pages/, partials/, the Livewire component classes, assets/, config/, and language/.
  • The theme manifest (theme.json or equivalent) — confirms the theme code, parent theme support, dependencies, and option definitions.
  • Admin → Design → Themes → Orange → Options — the supported customization surface; prefer this over editing vendor theme files.
  • The theme's Livewire components — cart, checkout, order preview, booking, menu/category lists, fulfillment modal, local header. These are where most behavior lives.

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.

Implementation Patterns

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.

Gotchas and Tips

  • Tight TastyIgniter coupling. This theme assumes TastyIgniter core models and conventions (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.
  • Never edit the composer-installed theme directly. Updates overwrite it. Use a child theme or a fork with a clear merge strategy. Keep custom Livewire subclasses and view overrides in your own package/theme.
  • Livewire version constraints matter. Recent v4 releases require Livewire ^3.7. Upgrading Livewire or TastyIgniter core without checking the theme's constraints is a common source of broken cart/checkout behavior.
  • Cache aggressively, then clear aggressively. After changing theme options, Blade overrides, translations, or compiled assets, clear view/config/cache and rebuild assets. Theme Editor changes can appear stale until caches are cleared.
  • Checkout edge cases deserve explicit tests. Verify order totals when the total is zero, when payment method changes, when delivery-area restriction is disabled, when address fields are partial/select fields, and when coordinates are set via the "Mark Your Location" modal. Several releases fixed exactly these paths.
  • Fulfillment scheduling is configuration-sensitive. ASAP/LATER restrictions, empty order types, and location-level scheduling rules have had guards added over time. Test with no order types, one order type, and restricted scheduling.
  • Simple pagination is a deliberate tradeoff. Recent versions use simple pagination for performance. If your UI needs "page X of Y" or jump-to-page, you must override it.
  • Security-sensitive auth views. The forgot-password flow now uses timing equalization to prevent email enumeration. If you override auth templates or controllers, preserve that behavior. Also check the securityRedirectPage setting — guests/customers are redirected to a configurable page rather than always home.
  • Escape output in custom partials. The theme has had XSS-related fixes (for example GDPR cookie message output). Do not bypass Blade escaping in overrides without a reason.
  • Menu option validation is per-option. Errors should display per menu option. If you customize the menu item modal, preserve validation and the conditional visibility/free-quantity behavior.
  • Debug with the browser and Livewire devtools first. Cart/checkout issues usually show up as Livewire network payloads, missing events, or stale computed properties. Use APP_DEBUG, Laravel logs, browser console, and Livewire devtools before changing theme code.
  • Extension points to prefer: child theme Blade overrides, Livewire component subclassing, theme options, event/listener hooks, translation overrides, and checkout field configuration. Avoid patching core TastyIgniter files; that turns every upgrade into a merge project.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings