feat: wire Google Wallet into loyalty enrollment, stamps, and points flows

Connect the fully-implemented Google Wallet service to the loyalty module:
- Create wallet class/object on customer enrollment
- Sync wallet passes on stamp and points operations
- Expose wallet URLs in storefront API responses
- Add conditional "Add to Google Wallet" buttons on dashboard and enroll-success pages
- Use platform-wide env var config (not per-merchant DB column)
- Add Google service account patterns to .gitignore
- Add LOYALTY_GOOGLE_* fields to app Settings
- Update deployment docs and add local testing guide

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-24 10:38:46 +01:00
parent 6c78827c7f
commit 32e4aa6564
13 changed files with 358 additions and 56 deletions

View File

@@ -12,6 +12,9 @@ function customerLoyaltyDashboard() {
transactions: [],
locations: [],
// Wallet
walletUrls: { google_wallet_url: null, apple_wallet_url: null },
// UI state
loading: false,
showBarcode: false,
@@ -43,6 +46,7 @@ function customerLoyaltyDashboard() {
this.program = response.program;
this.rewards = response.program?.points_rewards || [];
this.locations = response.locations || [];
this.walletUrls = response.wallet_urls || { google_wallet_url: null, apple_wallet_url: null };
console.log('Loyalty card loaded:', this.card?.card_number);
}
} catch (error) {