Email digital receipts, add promo settings, and apply tips at charge.
Deploy Ladill POS / deploy (push) Successful in 31s
Deploy Ladill POS / deploy (push) Successful in 31s
Send real receipt emails from the customer display and sale page, store branch promo content for the idle screen, and fold selected tips into totals.
This commit is contained in:
@@ -130,16 +130,24 @@ class CustomerDisplayService
|
||||
return $this->push($location, PosCustomerDisplay::PHASE_RECEIPT, array_merge([
|
||||
'lines' => $this->linesFromSale($sale),
|
||||
'subtotal_minor' => (int) $sale->subtotal_minor,
|
||||
'discount_minor' => (int) $sale->loyalty_discount_minor,
|
||||
'tip_minor' => (int) $sale->tip_minor,
|
||||
'total_minor' => (int) $sale->total_minor,
|
||||
'currency' => $sale->currency,
|
||||
'receipt' => [
|
||||
'reference' => $sale->reference,
|
||||
'sale_id' => $sale->id,
|
||||
'total_minor' => (int) $sale->total_minor,
|
||||
'digital_url' => $extras['digital_url'] ?? null,
|
||||
'message' => $extras['message'] ?? 'Thank you for your purchase',
|
||||
'email_prompt' => true,
|
||||
],
|
||||
'sale_reference' => $sale->reference,
|
||||
'sale_id' => $sale->id,
|
||||
'tip' => [
|
||||
'selected_minor' => (int) $sale->tip_minor,
|
||||
'base_minor' => max(0, (int) $sale->subtotal_minor - (int) $sale->loyalty_discount_minor),
|
||||
],
|
||||
], $extras));
|
||||
}
|
||||
|
||||
@@ -187,6 +195,7 @@ class CustomerDisplayService
|
||||
'subtotal_minor' => (int) ($payload['subtotal_minor'] ?? 0),
|
||||
'discount_minor' => (int) ($payload['discount_minor'] ?? 0),
|
||||
'tax_minor' => (int) ($payload['tax_minor'] ?? 0),
|
||||
'tip_minor' => (int) ($payload['tip_minor'] ?? ($payload['tip']['selected_minor'] ?? 0)),
|
||||
'total_minor' => (int) ($payload['total_minor'] ?? 0),
|
||||
'loyalty' => $payload['loyalty'] ?? null,
|
||||
'payment' => $payload['payment'] ?? null,
|
||||
@@ -196,6 +205,7 @@ class CustomerDisplayService
|
||||
'promo' => $payload['promo'] ?? ($this->defaultPayload($location ?? new PosLocation)['promo'] ?? null),
|
||||
'customer_name' => $payload['customer_name'] ?? null,
|
||||
'sale_reference' => $payload['sale_reference'] ?? null,
|
||||
'sale_id' => $payload['sale_id'] ?? ($payload['receipt']['sale_id'] ?? null),
|
||||
'message' => $payload['message'] ?? null,
|
||||
];
|
||||
}
|
||||
@@ -206,6 +216,9 @@ class CustomerDisplayService
|
||||
public function defaultPayload(?PosLocation $location): array
|
||||
{
|
||||
$name = $location?->name ?? 'Welcome';
|
||||
$promo = $location
|
||||
? $location->customerPromo()
|
||||
: ['headline' => $name, 'body' => 'Thank you for shopping with us.', 'image_url' => null];
|
||||
|
||||
return [
|
||||
'location_name' => $name,
|
||||
@@ -214,6 +227,7 @@ class CustomerDisplayService
|
||||
'subtotal_minor' => 0,
|
||||
'discount_minor' => 0,
|
||||
'tax_minor' => 0,
|
||||
'tip_minor' => 0,
|
||||
'total_minor' => 0,
|
||||
'loyalty' => null,
|
||||
'payment' => null,
|
||||
@@ -231,11 +245,7 @@ class CustomerDisplayService
|
||||
'prompt' => 'Please sign below',
|
||||
],
|
||||
'receipt' => null,
|
||||
'promo' => [
|
||||
'headline' => $name,
|
||||
'body' => 'Thank you for shopping with us.',
|
||||
'image_url' => $location?->receiptLogoUrl(),
|
||||
],
|
||||
'promo' => $promo,
|
||||
'message' => null,
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user