5d8e18522312c69f81e80b039c35a6ec21ae4573
Deploy Ladill POS / deploy (push) Successful in 28s
Products are now mode-aware:
- Retail: the catalog lives in Ladill CRM. The Products page proxies CRUD to the
CRM products API (CrmClient gains product/create/update/delete), and the
register reads CRM products live; a sold line is stored as a name/price
snapshot (product_id null, since CRM products aren't local rows). Resilient —
the register shows an empty catalog if CRM is unreachable. CRM import is hidden
in Settings (not needed when reading live).
- Restaurant: unchanged — the local pos_products catalog keeps its POS-only depth
(category, kitchen station, course, modifier groups).
ProductController routes take a raw {product} id (CRM id in retail, local id in
restaurant). Suite green (17), covering both modes.
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%