Custom Discount Functions
Complex discount logic that Shopify's native discount codes can't support - tiered quantity discounts, bundle pricing rules, customer-tag-based discounts, and B2B volume pricing applied automatically at checkout.
Custom discount rules, shipping rate logic, payment method filtering, and order validation - built as Shopify Functions in Rust and running inside Shopify's infrastructure, not on your servers.
Complex discount logic that Shopify's native discount codes can't support - tiered quantity discounts, bundle pricing rules, customer-tag-based discounts, and B2B volume pricing applied automatically at checkout.
Custom shipping rate calculation logic - product-type-based rates, dimensional weight, carrier blending rules, and postcode-level rate overrides - running as a Shopify Function instead of a third-party carrier app.
Show or hide specific payment methods based on order value, product type, customer tag, or shipping destination - configured as a Shopify Function for consistent behaviour across all checkout sessions.
Custom order-level validation - minimum order values per product category, product restriction rules, B2B order approval requirements - enforced at checkout before payment is taken.
Custom line item modifications at checkout - bundle splitting, line item merging, custom gift-with-purchase logic, and automatic product additions triggered by cart contents.
Custom fulfilment rules - product-level fulfilment location assignment, order splitting logic, and delivery method eligibility rules - running as Functions rather than being managed manually.
You have a discount or pricing rule that Shopify's native discount code system can't support - tiered pricing, B2B volume discounts, or bundle rules that apply automatically without requiring a code.
Your shipping rate logic is too complex for Shopify's native shipping profiles - dimensional weight, product-type exclusions, or carrier rate blending that a settings panel can't configure.
You need to show or hide specific payment methods based on order conditions - hiding BNPL for orders under a threshold, restricting payment options for certain product types, or applying payment logic for B2B accounts.
You've been implementing business logic via manual order editing, staff scripts, or third-party apps that keep breaking - Shopify Functions is the correct, stable place for this logic to live.
HOW WE WORK
Logic Specified and Tested Before
It Runs in Your Checkout.
We document your business rule in full - inputs, conditions, outputs, and edge cases - as a specification before writing a line of Rust. Most Function projects fail because this step is rushed.
Function built in Rust as Shopify requires. Input/output schema defined against the relevant Function API - Discount, Shipping, Payment, or Order Validation.
Function tested in Shopify's development environment with real product configurations, customer tags, and cart scenarios that match your production edge cases.
Function deployed to production via a private or public app. First real checkout sessions monitored to verify the logic applies correctly under live conditions.
B2B / Wholesale
B2B brand needing tiered volume discounts - 5% at 10 units, 12% at 25 units, 20% at 50+ units - applied automatically at checkout for tagged wholesale customers, with standard pricing for retail customers in the same store. Shopify's native discount codes couldn't handle customer-tag-based automatic application.
34%
B2B average order value increase
after volume discount Function launch
Language
Shopify Function APIs
Deployment
Tools
Shopify Functions are custom backend logic extensions that run inside Shopify's own infrastructure - written in Rust and compiled to WebAssembly. They allow you to override how Shopify calculates discounts, shipping rates, payment method availability, and order validation rules. This was previously impossible without either a workaround or a server-side app. Functions run at Shopify's edge with no external server required.
Shopify requires Functions to be written in Rust and compiled to WebAssembly because they run inside Shopify's infrastructure at checkout - a context where execution time and memory usage are tightly constrained. Rust compiles to highly performant, memory-safe WebAssembly that meets Shopify's execution requirements. This is not a choice made by the developer - it is a platform requirement.
Native Shopify discounts support percentage or fixed amount off, free shipping, buy X get Y, and spend a minimum amount. Shopify Functions can extend this to: tiered quantity discounts applied automatically, customer-tag-based pricing, bundle-specific discount rules, product combination discounts, and B2B volume pricing - applied without requiring a customer to enter a code.
Yes. Shopify deprecated Script Editor in August 2025, with existing scripts supported until August 2026. Any discount, shipping, or payment logic currently running in Script Editor needs to be migrated to Shopify Functions before the deprecation deadline. We handle these migrations - audit the existing scripts, rebuild the logic as Functions, and deploy them before the cutoff.
Shopify Functions are delivered as part of a Shopify app - either a private app built specifically for your store, or a public app. The Function itself runs in Shopify's infrastructure; the app is the delivery and configuration mechanism. For single-store use cases, we build a private app to house the Function - no App Store listing required.
A single, well-specified Function - one discount rule, one shipping rate logic update, or one payment customisation - typically takes 2 to 4 weeks including specification, build, and testing. Multiple Functions or complex conditional logic with many edge cases run 4 to 8 weeks. We scope per Function.
Describe the rule - discount, shipping, payment, or validation. We'll scope the Function and respond within 24 hours.