f64a28cb21a8479d084704771d2260beff3c0d30
Deploy Ladill POS / deploy (push) Successful in 37s
On a sale's detail page, unpaid sales (retail or restaurant) can now be cancelled or deleted: - Cancel (pending only) marks it cancelled and frees its table / clears it from the kitchen (PosSaleService::cancelSale). - Delete removes the sale and cascades its lines, modifiers and payments, freeing the table first (deleteSale). Paid sales are protected — they can't be deleted. Status badge now distinguishes cancelled/failed. Covered by PosRestaurantTest. 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%