Split bills (restaurant tickets): - New pos_payments ledger; a tab is settled across one or more cash/Ladill Pay payments. The ticket shows total / paid / balance, an amount field with Full / ½ / ⅓ / ¼ helpers, and the payments taken. Partial payments keep the tab open; the sale finalises (and frees the table) only when the balance hits zero. Pay splits get their own checkout + callback (pos.payments.callback). Pipe online orders to the KDS: - POST /api/kitchen/orders — a first-party, service-keyed ingest (config pos.kitchen_api_keys, scoped by owner, idempotent by external_ref) that creates a paid, already-fired ticket (order_type=online, lines source=online). - The KDS feed is now payment-agnostic (any kitchen-active sale), so paid online orders sit on the board next to dine-in tabs and bump the same way; they're badged "online". Schema additive: pos_payments, pos_sales.external_ref. Suite green (14). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
6c42f18186
commit
9780591e74
@@ -3,4 +3,10 @@
|
||||
return [
|
||||
'default_currency' => env('POS_DEFAULT_CURRENCY', 'GHS'),
|
||||
'merchant_import_enabled' => (bool) env('POS_MERCHANT_IMPORT_ENABLED', true),
|
||||
|
||||
// Service-to-service keys for the kitchen ingest API (POST /api/kitchen/orders),
|
||||
// keyed by the calling service. Empty = that service cannot push (secure default).
|
||||
'kitchen_api_keys' => array_filter([
|
||||
'merchant' => env('KITCHEN_API_KEY_MERCHANT'),
|
||||
]),
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user