Change Log
What's New in Function Studio
Stay up to date with the latest features, improvements, and bug fixes.
Recent Updates
v0.10.59
Latest(2026-06-25)
- New Free Gift discount block: automatically configure complex GWP discount logic
- Added an "Is Order Editable" condition for promotions
- Cart tester now correctly accounts for shipping discounts and shipping option costs
v0.10.58
Latest(2026-06-21)
- Line groups can now build on a parent group, so you can filter items in multiple steps.
- You can now set a limit on the number of items in a line group.
- You can now control the order of items within a line group.
(2026-06-19)
- Initial sidekick integration adds Shopify Sidekick support.
- Fixed an issue where discount codes could not be duplicated.
v0.10.52
Latest(2026-06-12)
- Fixed support for post-discount subtotals in advanced expressions
- Fixed tracing for advanced expressions
(2026-06-11)
- You can now purchase additional bulk discount codes when you need more
- Product discounts can now apply to multiple line groups at once without issues with quantity limits
(2026-06-09)
- Added support for using single-line text metafields in line group conditions.
- Fixed the Delete button at the bottom of forms so it now works.
(2026-06-05)
- Fixed a random freeze when clicking "Apply changes" on large or complex flows.
- Improvements around how cart tester loads product data.
(2026-06-03)
- Cart total override: implemented support for cart total override in Promotions.
- Fixed problems with timeline and restore.
- All timeline functions are now available on the Advanced plan.
(2026-06-02)
- New global Timeline displays changes across all functions. Added flow preview for Restore on Plus plans.
- Fixed a bug where the discounts generator ignored quantity settings when they were turned off.
- Updated and improved translations.
(2026-05-30)
- Functions tabs now switch instantly.
- Improved the onboarding experience for new users.
- Fixed an issue with discount code rejection inputs.
- Fixed banner display and styling issues.
- Fixed a text size display problem.
(2026-05-27)
- Subscription settings are now available for code-based discounts
- Streamlined subscription settings for discounts
- Shipping discount option is now hidden in combinations when the flow produces a shipping discount (as Shopify doesn't allow shipping discounts to combine)
(2026-05-26)
- Faster app performance when working with complex functions
- Function template selector now loads on demand for quicker page loads
- Fixed an issue where the top bar would not hide when expected
(2026-05-25)
- Added metafield support for promotions
- Added metafield support for checkout promotions
- Improved advanced condition handling in promotions
- Replaced selling plan input with an easier-to-use dropdown
- Subscription item conditions now display as Yes/No in previews
- Improved form error handling
- Faster subscription loading
- Fixed field-level validation errors not displaying correctly
- Fixed bundling not continuing after the first cart lines failed to bundle
- Fixed duplicate discounts being created on Shopify Plus stores
(2026-05-22)
- Added a separate checkout error message field for promotion banners
- Fixed discount optimization being applied when grouping on tiers
- Fixed discount generation for promotions with multiple gift-with-purchase products
- Added support for state/province in the default delivery customization
- Discount codes pasted into conditions are now automatically uppercased
(2026-05-20)
- Promotions: customers can choose specific products for the "auto add to cart" feature
(2026-05-16)
- Added selling plan support to discount delivery focused function input
- Fixed an issue where unrelated fields appeared in subconditions for delivery groups
- Cart transform expand actions now support multi-currency pricing in component JSON
(2026-05-15)
- Promotions can now use cart attributes in conditions
- Improved handling of different cart property types in promotion conditions
- Fixed the "Starts With" operator in promotion conditions
- A clear permission error is now shown when markets can't be loaded
(2026-05-11)
- Added a new payment function input with cart and metafields support
- Added discount codes sync into a metafield
- Fixed handling of JSON arrays stored in metafields
(2026-05-10)
- Improved handling of complex nested conditions in your function logic
- Added access to specific products in checkout validation customer metafield inputs
- Added support for discount tags and stacking line item discounts
(2026-05-08)
- Advanced plan now supports up to 100,000 discount codes per batch
- Fixed an issue with dislaying string metafields in the selector
- Added country selector UI component for cart metafields
- Added two new templates for order discounts based on delivery country and US states
(2026-05-06)
- Improved how default value types are handled
- Added a new customer metafield input for validation functions
- Added "includes only" condition (useful for checking if only specific discount codes are applied)
(2026-05-05)
- Shipping discount values can now be linked to other fields
- Fixed an issue where validation blocks weren't working correctly in checkout
(2026-05-02)
- Added ability to duplicate functions from both the list and edit views
- Linked fields now show available variables in numerical fields too
(2026-05-02)
- Promotions: Added support for displaying banners in checkout based on conditions
(2026-04-30)
- Payment customization: modify block now supports partial and regular expression matching for greater flexibility
- Improved experience for configuring modified payment methods
- Cart transforms: added currency conversion support
- New calculated condition: group item subtotal sums prices of items within a group
- New customer-focused discount function input with email access
- Added list type matching for line item properties
- Crisp chat support is now available on Advanced and Plus plans
- Checkout extension: shipping address can now be synced into a metafield
- Discount code minimum length reduced to 1 character
- Added address line 2 to delivery input for validations
- New cart.subtotal_post_discount condition field for use after discounts are applied
- Added customer and company fields to the delivery-focused input
(2026-04-25)
- Cart transforms: bundles can now be defined using variant references
- Cart transforms: merge operation now supports target variant mode
- Currency conversion is now enabled for all inputs that previously lacked it
(2026-04-24)
- Fixed line item properties mapping in delivery customization and default discount inputs
- Fixed cart total calculation in cart tester
- Added notification when a node has multiple incoming connections
(2026-04-22)
- Promotions: Added support for displaying product discounts on PDP and collection pages
- Promotions: Added compare-at price support for product discount promotions
- Promotions: Added base pricing field option for product discount promotions
- Promotions: Fixed product discount calculations to correctly handle line item groups on the storefront
- Promotions: Fixed discount values to use original prices, ensuring storefront matches expected function behavior
- Updated default styling to match the Horizon theme
(2026-04-18)
- Added missing input options when manually selecting function inputs
- Fixed default values for metafields and cart attributes/properties in the cart tester
- Fixed validation issues with linked fields in discount blocks
(2026-04-16)
- Added product collections to discount conditions based on line properties
- Added product collections support for payment customization rules
- Added support for overriding function inputs manually
- Fixed an issue where function output was being cut off in cart tester
- Improved automatic detection of inputs when importing from JSON
(2026-04-14)
- Added usage limits support for bulk discount codes
- Added character limit validation for rejection error messages
(2026-04-13)
- Auto-remove block now properly supports multiple product variants
- Added linked discounts section to Promotions
- Fixed default value persistence and line property selection in aggregation blocks
- Checkout block now supports aggregation on line properties
(2026-04-13)
- Added bulk discount code generation with CSV export for Klaviyo
- Real-time progress updates when generating bulk discount codes
- Fixed an issue where bulk code generation could fail on large batches
(2026-04-10)
- Fixed rounding errors that could cause incorrect amounts on fixed price discounts
- Subscription items can now be included in discount groups
- Bundle merge operations now support dynamic bundles
- You can now mark the main item in a bundle
- Payment methods can now be renamed without changing their order
(2026-04-08)
- Added support for grouping items by custom fields in the Tiers block
- Improved preview display for the Tiers block
- Added support for item groups and aggregation blocks in Promotions
- Fixed default values not saving correctly for group blocks and advanced expressions
(2026-04-04)
- Fixed issues with the cart tester
- Added support for default values in metafields, cart properties, and attributes
(2026-04-04)
- Improved function execution performance for faster checkout processing
- Updated to the latest Shopify Functions libraries
(2026-04-02)
- Added support for fixed amount discounts in bundle discount blocks
- Cart tester now supports multiple line properties for more accurate testing
- Fixed an issue with input handle offset in the flow editor
(2026-04-02)
- Added new discount input with access to 3 cart line attributes
- Added warning banner when debug mode is enabled
- POS discounts: fixed function input automatic selection bug
(2026-03-31)
- Improved support for JSON cart attributes in advanced expressions
- Improved cart attributes preview
- POS discounts: added support for reject-codes in discount codes input
- Fixed order discount exclusion logic
(2026-03-30)
- Added support for JSON cart attributes - you can now reference elements from JSON attributes in conditions and discounts by keys.
- POS discounts: added new input with access to discount codes
- Tiered discounts: fixed currency conversion issue
(2026-03-28)
- Promotions: added theme integration code setting for promotions runtime (for app embed block)
- Promotions: improvements to Gift With Purchase (GWP)
- Cart tester: fixed localization issue
(2026-03-27)
- Conditions: added simplified regular expression matching for string conditions (validation functions, delivery customizations, payment customizations)
- Discounts: improved function input auto-selection
- Promotions: improved discount handling
- Bundle discounts: fixed currency conversion handling
- Conditions: fixed handling of nested conditions with empty branches
(2026-03-25)
- Discounts: added new discount codes delivery input for shipping-based discount codes
- Shipping discounts: fixed visibility on unsupported input types
(2026-03-21)
- Payment customizations: added support for cart attributes and selling plan conditions
- Discounts: fixed base price calculation when used in non-default function inputs
- Import: redesigned as a modal for a smoother experience
(2026-03-18)
- Checkout promotions: added support for checkout block evaluator with auto-add/remove from cart
- Promotions: added new promotion templates
- POS discounts: improved input handling with cart attribute support
(2026-03-17)
- Variable selector: redesigned with improved layout and backdrop overlay
- Cart properties and controls: organized into collapsible sections for cleaner UI
- Promotions: added support for markets in promotions and conditions
- Cart transforms: fixed input handling issues
- Metafields: fixed availability check for plan-specific features
- AI chat: improved connection handling and message history management
- Various bug fixes and UI improvements
(2026-03-11)
- Discount strategies: improved handling of flows with multiple strategies
- AI assistant: multiple improvements for conditions handling
- Function management: improved modal and creation experience
- Conditions preview: fixed loading state display
- Various bug fixes and stability improvements
(2026-03-09)
- Conditions: added filter for excluding items with compare-at price
- Added calculated field for compare-at price exclusion in group filtering
(2026-03-09)
- Validation functions: added more templates
- AI conditions builder: completely reworked for better accuracy
- AI assistant: added troubleshooter tool with validation functions support
- App billing: implemented app charges
(2026-03-03)
- AI assistant: major improvements, refactored agent architecture for scalability
- Nested items: implemented support for nested item matching
- Parent relationship: field access and relationship configuration
- Subscription items: added matching for subscription/non-subscription items with template
(2026-02-27)
- Upsell buttons: converted to checkbox behavior with cart request injection
- Bundle limits: added support for limiting bundle quantities
- Fixed layout for editable options list and auto-fit issues
- Color theme and performance improvements
(2026-02-24)
- Payment customization: added input with metafield access
- Payment customization: added delivery-focused extension
- Cart expand: various updates
(2026-02-23)
- Variable selector: added delete button when no variable is selected
- Cart transform expand: added image and title override support via JSON
- Volume discounts: improved handle auto-selection
- Bundle items: auto-priority assignment and UX improvements
- Cart transforms: bundle price override via JSON
(2026-02-19)
- Upsell buttons: support for target regexp extraction
- POS: fixed currency conversion instruction for POS inputs
- Infrastructure upgrades
- [Promotions] Added basic support for HTML template settings
- Fixed excluded groups support for order discounts
(2026-02-17)
- Automatic function handle selection
- Fixes in payment and delivery function management and creation
- UX improvements for Activate/Deactivate discount
(2026-02-15)
- Implemented copy/paste and group duplication
- Execution tracing: display aggregate values (sum/count/max)
- Display resolved variable values in condition trace banners
- Fixed branch code generation and decimal value issues for discounts
(2026-02-13)
- Fixed support for multiple groups in product discounts
- Fixed auto-select issue in Tiers block
(2026-02-12)
- Promotions enabled for all users
- Added quantity limit logic for fixed price discounts
- Fixed payment and delivery group selector
- Implemented basic execution tracing
(2026-02-11)
- Fixed aggregations in validation functions
- [Promotions] Upsell buttons: added regexp matching support
- [Promotions] Implemented discount flow management for upsell buttons
- [Promotions] Implemented import/export
(2026-02-10)
- Added div/mul operators to advanced expressions
- Added discount codes support in promotions
- [Promotions] Implemented Gift With Purchase (GWP) discount logic
(2026-02-07)
- Added custom ProgressBar component
- Removed legacy Collapsible and Page components
- Added productType to metafields cart-focused input
(2026-02-05)
- Added custom combobox and spinner components
- Added customer-focused input for payment customizations
- Various component migrations and UI improvements
(2026-02-03)
- Added customer segments support in promotions
- Performance improvements
- Fixed customer eligibility options logic for promotions
(2026-02-03)
- Fixed bundle logic edge cases with new test coverage
- Exposed language in cart and customer-focused validation inputs
(2026-02-02)
- Migration to Polaris web components
- Fixed time picker and discount code generation
- Increased promotions table limit to 50
(2026-01-31)
- Added dynamic block extension
- Added predefined cart options for extension-set metafields
- Fixed GWP threshold logic
- Fixed bundle discounts preview in cart tester
(2026-01-29)
- Added delivery-focused function input
- Implemented apply-to-cheapest delivery option
- Added function template for free cheapest shipping method
- Added 'Starts with any' string operator
(2026-01-28)
- [Promotions] Upsell button implementation with design panel
- [Promotions] Upsell translations and mapping fixes
- Exposed cart attributes in default validation input
(2026-01-27)
- Migrated to Shopify Polaris web components (Button, BlockStack, InlineStack)
- Cart tester fixes
(2026-01-22)
- Cart transform: support for discounting whole bundle with linked percentage value
- Expand operation updates
- Fixed compare-at-price condition
(2026-01-15)
- Fixed product metafields in cart tester
- Emit cart:updated event when gift is added to cart
- Metafield UX improvements
(2026-01-14)
- [Promotions] Variant data enrichment based on Admin API
- Optimistic add-to-cart and auto-add/remove cart item improvements
- Added support for calculated expressions
- Fixed line item quantity field detection
- Improved condition preview for product tags
(2026-01-07)
- Exposed cart total for validation functions
- Add-to-cart frontend fixes for older theme support
(2026-01-01)
- Added reject codes template
- Fixed boolean fields preview
- Added calculated 'is subscription item' field
- Auto-focus field search when displayed
(2025-12-04)
- Performance improvements
- Added support for JSON subfields
- Shop metafields can now be used as source for discount values
(2025-11-22)
- Added support for linking discount quantity limit to variables
- Added line-based grouping for tiered discounts
- Fixed issue with no-match branch in volume discounts
- Fixed codegen issue with complex branches
(2025-11-16)
- Fixed redirect issue after creating validation function
- Fixed issue with node duplication
(2025-11-16)
- Exposed line item attributes in validation functions
- Added support for calculated group quantity
(2025-11-14)
- Added price mapping support for cart transforms
- Added generic metafield selector
- Added hide payment block and payment group definitions
- Exposed market data to payment methods
(2025-11-11)
- Fixed quantity limit logic
- Fixed tiered discount branches to use calculated tiers logic
(2025-11-09)
- Added support for new base discount price logic
- Added max() aggregation support
- Fixed form error handling
- Fixed issue with boolean attributes
(2025-11-07)
- Fixed issue with Buy X Get Y template
- Added access to cart attributes in cart-focused input
(2025-11-04)
- Added set-variable support for dynamic discount values
- Fixed bundle ordering and sorting issues
(2025-11-01)
- Added support for unlimited line items in bundle components
- Added setting for enabling app embed
(2025-10-23)
- Count Block: Added support for counting unique products and variants
- Metafields: Added shop metafield support and improved metafield display for proper entities
- Advanced Features: Added scope selection for advanced expressions and metafield index selector
(2025-10-21)
- Metafields: Enhanced date/time metafield handling
- Discounts: Fixed issue with order discount type switching
(2025-10-20)
- UX Improvements: Enhanced error handling and display
- Metafields: Added support for multiple metafield fields and variant-focused metafield discounts
(2025-10-17)
- UX: Completely reworked user experience for creating and editing functions
- Cart Transform: Added empty state for cart transform with updated icons