Shopify reward type
PR #1447 introduced the Shopify reward type in the admin panel’s reward picker. A Shopify reward is backed by a specific product, discount, or redemption link in the merchant’s Shopify store — not a Nudj-internal asset. PR #1378 added Shopify to the platform third-party config table that gates which reward types are available per community. PR #1461 fixed config checks that ran during reward upsert so partially-configured Shopify rewards can’t be saved.Reward backends
Discount codes
Backed by a Shopify discount code created server-side when the reward is earned. Redeemable at checkout.
Checkout links
PR #1492 — Nudj generates a Shopify checkout link (
/cart/...) with the discount pre-applied. The user taps the link from their reward, lands in Shopify checkout already discounted.Free product via discount function
PR #2160 — a Shopify discount function the merchant installs (
apps/shopify/extensions/nudj-free-product). When the user reaches checkout with the reward claimed, the function grants the configured SKU for free.Synced Shopify products
PR #1459 — Nudj syncs the merchant’s product catalog. Admins pick products from the synced catalog to back a reward without leaving the Nudj admin. PR #1493 simplified the sync modal UX.
Backend creation flow
PR #1467 formalised the server-side reward creation flow. When a merchant saves a Shopify reward, Nudj:- Validates the linked Shopify config (discount id, product id, or redemption path).
- Calls Shopify to create or reserve the backing object.
- Persists the reward against the community.
Unlinking rewards
PR #1992 added an individual unlink option for discount-backed rewards — merchants can detach the Shopify object from a single reward without removing the entire Shopify integration.Reward authoring UX
Two UX PRs shape how rewards are edited from the Shopify embedded admin:- PR #1974 — consolidated rewards into a single unified card (replacing the previous split UI).
- PR #1981 — inline reward form modal for giveaway and exclusive rewards, so merchants stay in context instead of opening a new screen.
Configuration precedence
A reward can reference a product, a discount, or a checkout link. When multiple are configured, the runtime resolves in this order: checkout link → discount function (free product) → discount code → synced product metadata. Picking a single backing is the recommended path; multi-backing is an advanced pattern surfaced only when your merchandising team explicitly requires it.Next steps
Promotions & multipliers
Points multipliers, streak rewards, and achievement templates.
Reward integration overview
Higher-level integration patterns including webhook-driven delivery.
Last reviewed: 2026-04 · Related PRs: #1378, #1447, #1459, #1461, #1467, #1492, #1493, #1974, #1981, #1992, #2160

