🔴 Release v2.413.1
⭐⭐ Moderate Complexity • 20 commits • 174 filesShopify loyalty integrations go natively on-site with a full loyalty hub, customer account pages, and points-after-purchase displays. Admin gets deeper widget styling controls, and critical fixes restore webhook accuracy for revenue tracking.
What’s New
- Shopify Loyalty Hub – Full-page loyalty experience that inherits your store’s theme styling, letting customers see tiers, points progress, and achievements natively on their account
- Customer Account Points Display – Native Shopify customer account page showing loyalty balance, tier status, and tier progress
- Points After Purchase – Automatically show customers their earned points on the order confirmation page
- Widget Styling Customization – Control points display format and animation/sound preferences directly from the admin panel
- Admin Sidebar Reorganization – Cleaner widget editor layout with improved section ordering and visibility options
- Hero Background Customization – Upload and customize hero banner images in widget branding settings
- Challenge Copy Performance – Faster challenge duplication workflow in the admin panel
- Live Preview Auto-Reload – Widget editor live preview now automatically refreshes when you save game config changes
- Shopify Webhook Restoration – Re-enabled order and refund webhooks critical for accurate points-for-spend tracking
Apps Updated
User App
— No changes
API
✓ Updated - Entitlements foundation
Admin
✓ Updated - Widget styling & preview improvements
MCP Server
✓ Updated - Model optimization
Website
— No changes
Games
✓ Updated - Rendering fix
Detailed Changes
Shopify App — Loyalty Integrations
Shopify App — Loyalty Integrations
New Features
NJ-1316: Full-Page Loyalty Hub with Customer Account UI Extension- Theme-inherited loyalty hub page showing points, tier progress, and achievements
- New Customer Account UI Extension (
loyalty-account-page) rendering natively in Shopify’s customer account interface - Deep links to theme editor for merchants to customize appearance
- Comprehensive test coverage with Playwright harness specs
- Responsive design matching Shopify’s customer account styling
- New order-points extension showing earned points on order confirmation page
- Backend handler (
order-points-context.handler.server.ts) calculates point value from order total - Dedicated API route for frontend context resolution
- Full test coverage with Playwright harness specs
- Points summary banner in customer account interface
- New
loyalty-account-bannerUI Extension - Dedicated fetch handler with caching for loyalty summary data
- Test coverage with Playwright harness specs
Fixes
NUDJ-0000: Restore Shopify Webhooks for Revenue Accuracy- Re-enabled
orders/paidandrefunds/createwebhook subscriptions - Critical fix ensuring points-for-spend calculations are accurate
- Both standard and custom shop webhooks verified
- Fixed opening widget via app proxy identity authentication
- Proper CORS handling for cross-origin widget requests
- Fixed stale write errors (409 STALE_WRITE) when toggling birthday effects
- Token refresh now occurs before mutations
Admin App — Widget Editor & Customization
Admin App — Widget Editor & Customization
NJ-1379: Widget Styling Enhancements
- Added “Points & Labels” section to widget styling sidebar
- Control how points are displayed to customers
- Customize label text and formatting
- Added “Animations & Sounds” section
- Enable/disable animation effects
- Control sound feedback preferences
- Both sections integrated into the main Styling accordion
- Reordered Loyalty Widget editor sections for better UX
- Display Mode moved to top of Styling (visual consistency with landing state)
- Launch group moved to end (terminal “go live” step)
- Logged-Out State surfaced more prominently in Content group
- Better section labeling and icon assignment
- Added background image uploader to Hero Settings
- Merchants can now customize hero section appearance
- Image validation and optimization included
- Widget editor live preview now automatically refreshes when game config saves
- Preview state stays in sync with editor changes
- Eliminates manual refresh when testing game-specific widget behavior
- Live widget preview locked below editor overlay controls
- Fixes z-index stacking issues preventing interaction with editor overlays
- Optimized challenge duplication workflow
- Faster processing of challenge templates
- Improved UX for merchants bulk-creating challenges
- Fixed Rewards step empty state to show “Add Prize Image” button
- Better UX guidance when setting up scratch card prizes
Games App
Games App
NJ-1389: Scratch Card Rendering Fix
- Fixed default export of scratch card component
- Scratch card now renders correctly when accessed via Play
- Resolved session-game-wrapper integration issue
API
API
NJ-874: Entitlement Usage & Subscription Features (Stack Base)
- New entitlement usage overview queries
- Community-level entitlement usage tracking
- Organisation-level usage aggregation
- Subscription update mutation with entitlement validation
- Foundation for upcoming subscription/feature-gating features
- Full test coverage with 200+ test cases
- Handles edge cases: max-community detection, period resets, limit enforcement
MCP Server
MCP Server
NJ-1324: Eval Judge Model Optimization
- Eval judge now points at admin default model (kimi-k2.7-code)
- Improved consistency with admin model selection
- Dead code cleanup and deduplication
Customer Impact
Shopify Merchants
- Loyalty visibility: Points and tier status now appear natively in Shopify’s customer account — customers can monitor progress without leaving Shopify
- Conversion uplift: Points-after-purchase display reinforces purchase value and encourages repeat purchases
- Native experience: All loyalty features inherit store theme styling automatically — no disjointed third-party widgets
- Revenue accuracy: Restored webhook tracking ensures points-for-spend calculations are precise
Platform Admins
- Widget control: Full styling customization over points display format and animations
- Faster setup: Challenge copy is now faster, reducing time spent duplicating templates
- Live testing: Auto-reloading live preview when game settings change lets you verify behavior instantly
- Brand consistency: Hero background customization extends branding across widget appearance
Breaking Changes
None — this release is fully backwards compatible.Technical Notes
Shopify UI Extensions Architecture:- Three new Customer Account UI Extensions add 2.6 KB of new Preact components (uncompressed)
- Extensions authenticate via Shopify session tokens verified server-side
- All extensions reuse shared
fetchLoyaltyDatahandler for consistent data fetching - CORS wildcard headers used for Worker-scoped null-origin requests
- New
count-org-max-community-usageandget-entitlement-usage-overviewqueries provide the data layer for upcoming feature-gating - Mutation updates to
update-subscriptionallow changing entitlements in response to plan changes - Period-aware logic handles community-level resets and limit enforcement
- Challenge copy now batches operations, reducing API round-trips
- Widget preview refresh now only triggers on explicit game-config saves (no polling)
Contributors
Derek Counihan7 commits • +10,938/-6,358 lines
Mo7 commits • +112/-43 lines
DCH3 commits • +635/-307 lines
James Cockayne1 commit • +518/-65 lines
Tom Carroll1 commit • +135/-20 linesRelease Stats
| Metric | Value |
|---|---|
| Total Commits | 20 |
| Lines Added | +12,616 |
| Lines Removed | -6,741 |
| Files Changed | 174 |
| Release Size | 🔴 Massive |
| Complexity | ⭐⭐ Moderate |
v2.413.1 deployed on July 2, 2026

