Enrol a customer
Create the customer and put them straight onto a card. The response carries the Apple Wallet and Google Wallet links, so you can send them yourself.
use Leal\Customers\Requests\CreateCustomersRequest;
use Leal\Customers\Types\CreateCustomersRequestCustomer;
$customer = $leal->customers->create($storeId, new CreateCustomersRequest([
'customer' => new CreateCustomersRequestCustomer([
'firstName' => 'Ada',
'email' => 'ada@example.com',
]),
'cardId' => $cardId,
])); Add a stamp
The call most integrations need. Leal records the stamp, updates the wallet pass and sends the notification.
$card = $leal->customerCards->stamp(
$storeId,
$customerId,
$customerCardId,
new StampCustomerCardsRequest(['stamps' => 1]),
); Redeem a reward
Spend the stamps a customer has earned. Leal checks the reward is available before recording the redemption.
$leal->customerCards->redeem(
$storeId,
$customerId,
$customerCardId,
new RedeemCustomerCardsRequest(['rewardId' => $rewardId]),
); Handle a failure
Every failure throws a typed exception carrying the status code, so you can tell a missing record from a rate limit without reading strings.
use Leal\Exceptions\LealApiException;
try {
$leal->customerCards->stamp($storeId, $customerId, $customerCardId, $request);
} catch (LealApiException $error) {
if ($error->getCode() === 429) {
// Wait for the seconds in the Retry-After header, then try again.
}
throw $error;
}