Loyalty Stamp Cards
Configure offers, claims or customer reward records.
Before you start
Use the account and workspace that own the records. This page does not include administrator configuration forms.
Open /portal/loyalty-cards on your application domain, or use the matching item in the application menu.
Steps
Save changes / Create card
- Open /portal/loyalty-cards on your own application domain.
- Complete these fields in that form: Business, Card name, Required stamps, Stamp method, Customer identifier, Reward title, Reward type, Reward value, Reward expiry days, Cooldown minutes, Max stamps per customer / day, Status. Their choices and limits are listed below.
- Select Save changes / Create card. The exact label can change between creating and editing a record.
- If validation fails, correct the named field and submit again. After success, reopen the same record and compare the saved values.
| Field shown in the form | What to enter | Example / note |
|---|---|---|
| Business | Required. Choose Select business. Enter a whole number. | Use the value appropriate to your test account; no preset is supplied. |
| Card name | Required. No more than 255 characters. | Test record (use a unique value where required). |
| Required stamps | Required. Enter a whole number. At least 1. No more than 100. | Use the value required by the task; no example is assumed. |
| Stamp method | Required. Choose QR scan, Staff approval. | Choose a displayed option; the available labels are listed above. |
| Customer identifier | Required. Choose Phone, Email, Phone or email. | Choose a displayed option; the available labels are listed above. |
| Reward title | Required. No more than 255 characters. | Use the value required by the task; no example is assumed. |
| Reward type | Required. Choose Free item, Coupon, Discount, Custom. | Choose a displayed option; the available labels are listed above. |
| Reward value | Optional, unless this form asks for it. No more than 120 characters. | Use the value required by the task; no example is assumed. |
| Reward expiry days | Optional, unless this form asks for it. Enter a whole number. At least 1. No more than 3650. | Use the value required by the task; no example is assumed. |
| Cooldown minutes | Required. Use 1440 for one stamp per day. Use 0 to disable cooldown. Enter a whole number. At least 0. No more than 525600. | Use the value required by the task; no example is assumed. |
| Max stamps per customer / day | Required. Enter a whole number. At least 1. No more than 100. | Use the value required by the task; no example is assumed. |
| Status | Required. Choose Active, Draft. | Choose a displayed option; the available labels are listed above. |
Save changes / Create campaign
- Open /portal/loyalty-cards on your own application domain.
- Complete these fields in that form: Business, Campaign name, Reward title, Reward type, Reward value, Required referrals, Target action, Reward expiry days, Status. Their choices and limits are listed below.
- Select Save changes / Create campaign. The exact label can change between creating and editing a record.
- If validation fails, correct the named field and submit again. After success, reopen the same record and compare the saved values.
| Field shown in the form | What to enter | Example / note |
|---|---|---|
| Business | Required. Choose Select business. Enter a whole number. | Use the value appropriate to your test account; no preset is supplied. |
| Campaign name | Required. No more than 255 characters. | Test record (use a unique value where required). |
| Reward title | Required. No more than 255 characters. | Use the value required by the task; no example is assumed. |
| Reward type | Required. Choose Coupon, Discount, Free item, Custom. | Choose a displayed option; the available labels are listed above. |
| Reward value | Optional, unless this form asks for it. No more than 120 characters. | Use the value required by the task; no example is assumed. |
| Required referrals | Required. Enter a whole number. At least 1. No more than 100. | Use the value required by the task; no example is assumed. |
| Target action | Required. Choose Lead submitted, Booking submitted, Coupon claimed. | Choose a displayed option; the available labels are listed above. |
| Reward expiry days | Optional, unless this form asks for it. Enter a whole number. At least 1. No more than 3650. | Use the value required by the task; no example is assumed. |
| Status | Required. Choose Active, Draft. | Choose a displayed option; the available labels are listed above. |
Fields shown in the interface
Only fields traced to this role’s handler and its own view are listed. The application can show separate create/edit forms; do not fill every row on one screen.
Form 1 — fields shown in the interface
| Field | What to enter or choose |
|---|---|
| Business | Required. Choose Select business. Enter a whole number. |
| Card name | Required. No more than 255 characters. |
| Required stamps | Required. Enter a whole number. At least 1. No more than 100. |
| Stamp method | Required. Choose QR scan, Staff approval. |
| Customer identifier | Required. Choose Phone, Email, Phone or email. |
| Reward title | Required. No more than 255 characters. |
| Reward type | Required. Choose Free item, Coupon, Discount, Custom. |
| Reward value | Optional, unless this form asks for it. No more than 120 characters. |
| Reward expiry days | Optional, unless this form asks for it. Enter a whole number. At least 1. No more than 3650. |
| Cooldown minutes | Required. Use 1440 for one stamp per day. Use 0 to disable cooldown. Enter a whole number. At least 0. No more than 525600. |
| Max stamps per customer / day | Required. Enter a whole number. At least 1. No more than 100. |
| Status | Required. Choose Active, Draft. |
| Campaign name | Required. No more than 255 characters. |
| Reward type | Required. Choose Coupon, Discount, Free item, Custom. |
| Required referrals | Required. Enter a whole number. At least 1. No more than 100. |
| Target action | Required. Choose Lead submitted, Booking submitted, Coupon claimed. |
Check the result
After a source-checked procedure, verify the same record in the same workspace. Check saved values, visible state and access with the intended test account. An external payment/message/provider action needs its own result check.
Problems and validation
| Problem | Next step |
|---|---|
| A field rejects the value | Check its named error, the form’s visible choices and the relevant limit. Do not substitute internal numeric codes for the displayed options. |
| The control is missing | Check role, plan, enabled app and current record state. Do not grant administrator access merely to complete a User task. |
| The saved result is unexpected | Reopen the same record and verify its owner/workspace before repeating the action. |
Technical reference
Role-scoped source references
Pinned commit: 5af0236c6d99c50079f5ab8b8fb035506634bd8d
- modules/AppLoyaltyStampCards/Http/Controllers/LoyaltyPublicController.php
- modules/AppLoyaltyStampCards/Http/Controllers/ReferralPublicController.php
- modules/AppLoyaltyStampCards/Livewire/LoyaltyCardsIndex.php
- modules/AppLoyaltyStampCards/resources/views/index.blade.php
- modules/AppLoyaltyStampCards/resources/views/public/referral-campaign.blade.php
- modules/AppLoyaltyStampCards/resources/views/public/referral-link.blade.php
- modules/AppLoyaltyStampCards/resources/views/public/show.blade.php
Source-only route information
| Method | Source-default route |
|---|---|
| LIVEWIRE | /portal/loyalty-cards |
| GET | /loyalty/{card:slug} |
| POST | /loyalty/{card:slug}/stamp |
| GET | /loyalty/{card:slug}/qr.svg |
| GET | /loyalty/{card:slug}/qr.png |
| GET | /referral/{campaign:slug} |
| POST | /referral/{campaign:slug}/link |
| GET | /referral/{campaign:slug}/qr.svg |
| GET | /referral/{campaign:slug}/qr.png |
| GET | /r/{link:code} |
| POST | /r/{link:code}/convert |
Unmapped fields — not user instructions
These fields belong to this role’s source handler, but their screen labels were not confirmed.
| Source key | Handler |
|---|---|
| name | modules/AppLoyaltyStampCards/Http/Controllers/LoyaltyPublicController.php |
| phone | modules/AppLoyaltyStampCards/Http/Controllers/LoyaltyPublicController.php |
| modules/AppLoyaltyStampCards/Http/Controllers/LoyaltyPublicController.php | |
| name | modules/AppLoyaltyStampCards/Http/Controllers/ReferralPublicController.php |
| phone | modules/AppLoyaltyStampCards/Http/Controllers/ReferralPublicController.php |
| modules/AppLoyaltyStampCards/Http/Controllers/ReferralPublicController.php | |
| message | modules/AppLoyaltyStampCards/Http/Controllers/ReferralPublicController.php |