Functions-based wholesale pricing, rewards blocks and a trade application flow
A Remix Shopify app using Functions and theme app extensions for per-level wholesale volume pricing, storefront rewards balances, and a multi-step trade application form.
Click any image to view it full size
Wholesale pricing on Shopify is awkward for a reason: the price a trade customer should see depends on who they are and how much they are buying, and that decision has to happen inside Shopify's own pricing path — not in JavaScript that a shopper can see through. Rewards have the same problem from the other direction, needing to surface a per-customer balance in a storefront that is aggressively cached.
A Shopify app on Remix, with the pricing logic implemented as a Shopify Function — a discount extension compiled to WebAssembly and evaluated by Shopify itself — and the storefront surfaces implemented as theme app extensions, so a merchant adds them as blocks in the theme editor rather than by editing Liquid.
Becoming a trade customer runs through a long multi-slide application form, and most of the recent work on this project has been there — the unglamorous part where a form either gets completed or gets abandoned. Fixes included date-of-birth picker validation, blocking slide advance when a phone number is rejected rather than letting the applicant discover it later, stopping browser autofill from triggering the required-field alert on fields it had just filled, unclipping help tooltips that were being cut off by their container, adding description tooltips on grouped slides, and cleaning up grouped-slide leader styling. Each fix was synchronised back into the repository as its own commit.
The app carries deployed extension bundles and a manifest, and the pattern of the recent commits — individual form fixes pulled back one at a time — is the signature of work being made against a running store. The repository does not identify a merchant or record an acceptance, so we describe the build and stop there.
Wholesale pricing has to be decided inside Shopify's own pricing path rather than in storefront JavaScript, per-customer reward balances have to surface in a heavily cached storefront, and rewards need redeeming in-store as well as online — all installable by a merchant without editing theme code.
We built a Remix Shopify app with pricing implemented as a WebAssembly Shopify Function applying per-level volume discounts, and every storefront surface as a theme app extension block: wholesale price preview and cart pricing, rewards balance and cart blocks, store credit, reviews, a knowledge-base page and an embedded form. Checkout validation, admin draft-order redemption and a POS redemption extension complete the loop, and the multi-slide wholesale application form was hardened round by round against real completion failures.
The app carries deployed extension bundles with a manifest, and recent commits are individual form fixes synchronised back one at a time — the pattern of work being made against a running store. The repository establishes the build; it does not identify the merchant or evidence acceptance, and we assert neither.
Category
E-Commerce
Industry
E-Commerce / Wholesale
Year
2026
Components
1 repository