Three Paths to Extending Shopify
Shopify offers multiple ways to add custom functionality. Choosing the right approach prevents over-engineering simple requirements or under-building complex ones.
Shopify Flow handles automation. Shopify Functions extend native checkout behavior. Custom apps provide unlimited flexibility. Understanding when to use each saves time and money.
Shopify Flow: No-Code Automation
Flow automates workflows without writing code.
What Flow does well
- React to events: order created, customer tagged, inventory low
- Perform actions: add tags, send notifications, update metafields
- Apply conditions: if order value exceeds X, if customer in segment Y
- Chain workflows: trigger actions that trigger other actions
Common Flow use cases
- Tag high-value customers automatically
- Notify team when inventory drops below threshold
- Cancel orders from flagged addresses
- Add gift with purchase based on cart contents
- Segment customers based on purchase behavior
Flow limitations
- Cannot run custom code
- Limited to available triggers and actions
- Cannot integrate with external systems directly (without HTTP request action)
- Complex logic becomes hard to manage in visual builder
When to choose Flow
Use Flow when:
- Requirements match available triggers and actions
- No external system integration needed
- Logic is straightforward conditional branching
- You want non-technical team members to manage workflows
Shopify Functions: Checkout Customization
Functions customize checkout behavior that was previously impossible to change.
What Functions can do
- Discount Functions: custom discount logic beyond native capabilities
- Shipping Functions: custom shipping rate calculations
- Payment Functions: control payment method availability
- Validation Functions: custom checkout validation rules
How Functions work
Functions run on Shopify's infrastructure using WebAssembly. You write code (Rust or JavaScript) that Shopify executes at specific extension points. Functions receive input, perform calculations, return output. They cannot make external API calls.
Common Function use cases
- Tiered discounts based on cart value
- Member-only pricing with validation
- Shipping restrictions by product type
- Payment method filtering by order value
- Custom bundle pricing logic
Function limitations
- Cannot call external APIs
- Limited execution time
- Specific extension points only
- Requires development skills
When to choose Functions
Use Functions when:
- You need to modify checkout behavior
- Logic depends only on available input data
- No external data or API calls required
- You need performance that external calls cannot provide
Functions require Shopify Plus for some extension points.
Custom Apps: Full Flexibility
Custom apps have no functional limitations but require development investment.
What custom apps can do
- Integrate with any external system
- Store and process custom data
- Provide admin interfaces
- Extend storefront with custom sections
- Implement complex business logic
Common custom app use cases
- ERP and CRM integrations
- Custom product configurators
- Advanced reporting and analytics
- Proprietary business logic
- Multi-system orchestration
Custom app trade-offs
- Requires development resources
- Needs hosting and maintenance
- Must handle security and compliance
- Ongoing cost for infrastructure and updates
When to choose custom apps
Use custom apps when:
- Flow and Functions cannot meet requirements
- External integrations are required
- You need custom admin interfaces
- Data storage beyond Shopify's capabilities is needed
- Business logic is proprietary and complex
See custom Shopify apps for our approach.
Combining Approaches
These tools work together.
Flow triggering apps
Flow's HTTP request action can call external APIs. Your app receives these calls and performs complex operations that Flow cannot handle directly.
Apps providing Flow actions
Apps can contribute custom actions to Flow. Merchants then use your actions in their workflows alongside native actions.
Apps extending Functions
Apps can deploy and manage Functions. The app provides configuration UI, the Function executes the customized logic.
Decision Framework
Ask these questions:
Does it need external data or APIs?
Yes → Custom app. Neither Flow nor Functions can call external systems reliably.
Is it checkout behavior?
Yes → Functions if input data is sufficient. Custom app if external data needed.
Is it automation based on Shopify events?
Yes → Flow if actions are available. Custom app if complex processing needed.
Does it need custom UI in admin?
Yes → Custom app. Flow and Functions do not provide UI.
Can non-developers manage it?
Need → Flow provides visual management. Apps and Functions require developer involvement for changes.
Working with LiftKit Digital
LiftKit Digital helps you choose the right approach for your requirements. We implement Flow automations, build Functions, and develop custom apps based on what your business actually needs.
To discuss your requirements, get in touch.