- Implemented the full order lifecycle, secure customer tracker, automatic acceptance emails, configurable status templates, and guest/account CRM management.

Key areas: 
[OrderStatusService.php](/Users/tyemeclifford/Documents/GH/fatbottomgrille/app/Services/OrderStatusService.php), 
[AdminController.php](/Users/tyemeclifford/Documents/GH/fatbottomgrille/app/Controllers/AdminController.php), 
and 
[Database.php](/Users/tyemeclifford/Documents/GH/fatbottomgrille/app/Core/Database.php).
SQLite migration applied successfully. PHP/JS syntax, integration 
workflows, rendered pages, database integrity, and tracker authorization 
all passed. Invalid tracker tokens correctly return 403.
This commit is contained in:
Ty Clifford
2026-06-14 13:35:31 -04:00
parent 3417589a7c
commit 03348cad79
24 changed files with 1218 additions and 72 deletions
+2
View File
@@ -36,6 +36,7 @@ $isAdmin = isset($adminPage);
<h1><?= e($title ?? 'Dashboard') ?></h1>
</div>
<div class="admin-top-actions">
<button class="button button-ghost button-small theme-toggle" type="button" data-theme-toggle>Light Mode</button>
<a class="button button-ghost button-small" href="<?= e(url('/')) ?>" target="_blank" rel="noopener">View Store</a>
<form action="<?= e(url('/logout')) ?>" method="post">
<?= csrf_field() ?>
@@ -80,6 +81,7 @@ $isAdmin = isset($adminPage);
<?php else: ?>
<a class="<?= active_path('/login') ?>" href="<?= e(url('/login')) ?>">Sign In</a>
<?php endif; ?>
<button class="theme-toggle nav-theme-toggle" type="button" data-theme-toggle>Light Mode</button>
<a class="cart-link" href="<?= e(url('/cart')) ?>">
Your Order
<span class="cart-count"><?= (int) ($currentCart['item_count'] ?? 0) ?></span>