Create a Shopify POS UI Extension using the Shopify CLI and select the pos.home.tile.render and pos.checkout.action.render-before extension targets to surface the loyalty widget at checkout
In the checkout extension, use the useCustomer() hook to retrieve the current customer's ID and fetch their loyalty point balance from an external loyalty API via a server-side proxy to avoid exposing API credentials
Render the loyalty balance and a points redemption input in the pos.checkout.action.render-before target, displaying available redemption tiers formatted to the store's currency
On redemption confirmation, apply a custom line item discount to the Shopify POS cart using the useCart() hook's applyCartDiscount method with the calculated discount amount
Record the redemption event to the external loyalty system from a Shopify app proxy endpoint called by the extension, including the order ID from the useOrder() hook after checkout completes
Handle offline mode gracefully by caching the last known points balance in the extension's local state with a staleness indicator shown to the cashier
Known gotchas
Shopify POS UI Extensions have strict API surface limitations compared to web checkout extensions; not all Cart API methods available in online checkout are available in POS extensions
The pos.checkout.action.render-before extension target renders a modal-triggered panel, not an inline block; design the UX so cashiers understand they must tap the tile to access loyalty features
Loyalty redemption applied as a cart discount is not linked to the loyalty system until the order completes; if the transaction is voided after the loyalty points are deducted, a reconciliation job must restore the balance
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp