d4f4821d963a5f491e878b9008a1fa308da84198
Deploy Ladill POS / deploy (push) Successful in 23s
The "links" slice — a guest scans a table's QR, browses the menu (with
modifiers), and submits an order that lands on that table's open tab and fires
straight to the Kitchen Display.
- Public, auth-free flow scoped by an unguessable table short_code:
GET /t/{code} (menu + client cart), POST /t/{code}/order (throttled),
GET /t/{code}/done. Orders open/append the table's dine-in tab, add lines as
source=guest, and send to the kitchen.
- Staff print a per-table QR (Settings → table → QR; renders client-side to the
public menu URL). short_code is generated lazily.
- Guest lines are badged on the ticket and the KDS so staff can tell them apart;
staff still settle the tab as usual (cash / Ladill Pay).
- Extracted PosSaleService::buildProductLine as the single product+modifier
price resolver, now shared by staff and guest ordering (client prices never
trusted).
Schema additive: pos_tables.short_code, pos_sale_lines.source. New
PosRestaurantTest covers the guest order firing to the kitchen; suite green (12).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Ladill POS
In-store register at pos.ladill.com — product grid, cart, cash or Ladill Pay checkout.
Features (v1)
- Register — catalog + quick-amount sales
- Products — local catalog CRUD
- Sales — history and receipt view
- Ladill Pay — MoMo/card via
source_service: pos,fee_tier: sales
Local dev
cp .env.example .env
composer install
php artisan key:generate
touch database/database.sqlite
# set DB_CONNECTION=sqlite in .env
php artisan migrate
npm install && npm run build
php artisan serve
Tests
php artisan test
Deploy
See DEPLOY.md.
Roadmap
- CRM timeline + product import
- Invoice receipt prefill
- Merchant catalog import
Languages
PHP
57.7%
Blade
36.9%
JavaScript
3.2%
Shell
1.6%
CSS
0.6%