Developer changelog
Subscribe to the changelog to stay up to date on recent changes to Shopify’s APIs and other developer products, as well as preview upcoming features and beta releases.
RSS updatesThere are no entries for your filter criteria.
July 01, 2024
Action required
shippingLine.discountedPriceSet now includes cart level discounts API
As of version 2024-07 in the GraphQL Admin API, the discountedPriceSet
and discountedPrice
fields of the object ShippingLine
will include cart level discounts applied to an order, including the free shipping discount, when calculating the discounted price.
Previously, you would have had to subtract the discountAllocations
from discountedPriceSet
or discountedPrice
to get an accurate value, but doing so now will subtract the same discount twice.
Learn more about Shipping Lines on Shopify.dev.
July 01, 2024
[Checkout Branding API] Divider style and visibility customizations API
As of version 2024-07 of the Admin API, you can use the checkoutBrandingUpsert
mutation to configure styling and visibility of dividers.
With this change, the dividers below the header, above the footer, between the main and order summary columns, and between sections in the main column can now be customized with visibility, style and width controls.
You can learn more about these customizable dividers in the GraphQL Admin API docs: Global divider style, Footer divided
property, Header divided
property, Order Summary divider
property, Main divider
property, and Content divider
property
July 01, 2024
Action required
Moving the Shop.assignedFulfillmentOrders connection to QueryRoot API
As of the 2024-07 release of the admin GraphQL, you can access assigned fulfillment orders from QueryRoot.assignedFulfillmentOrders
instead of the pre-existing Shop.assignedFulfillmentOrders
connection.
This change will include the deprecation of the Shop.assignedFulfillmentOrders
query in favour of the newly added QueryRoot.assignedFulfillmentOrders
This change aligns with direction of the admin API moving forward ensuring that domain primitives are available on QueryRoot
and the Shop
field is reserved for key information related to the shop in the scope of the request.
You can learn more about assigned fulfillment orders here.
July 01, 2024
Introduction of new Carrier Service APIs API
As of version 2024-07
of the Admin GraphQL API we are introducing the following changes:
* We’ve added active
, supportsServiceDiscovery
, and callbackUrl
fields to the DeliveryCarrierService
object.
* We’ve added carrierServices
to the query root to list and filter the carriers services of the shop.
* We’ve added carrierServiceCreate to create a new DeliveryCarrierService
.
* We’ve added carrierServiceUpdate to update the properties of a DeliveryCarrierService
.
* We’ve added carrierServiceDelete to delete a DeliveryCarrierService
.
July 01, 2024
Added new field createdAt
to FulfillmentEvent
API
As of version 2024-07
of the Admin GraphQL API, you can use the new createdAt
field in FulfillmentEvent
to check the date and time when the fulfillment event was created.
Learn more about FulfillmentEvent
on Shopify.dev.
July 01, 2024
Added new field fulfillmentsCount
to Order
API
As of version 2024-07
of the Admin GraphQL API, you can use the new fulfillmentsCount
field in Order
to count the number of fulfillments including the cancelled fulfillments that belong to an order.
Learn more about Fulfillment
on Shopify.dev.
July 01, 2024
New delivery promise provider API object API
As of GraphQL Admin API version 2024-07
, we're adding the DeliveryPromiseProvider
object, which represents an entity (such as a third-party service) that can provide delivery estimates on behalf of a shop. Currently, this is available only to select approved delivery promise partners.
Each DeliveryPromiseProvider
object is associated with a shop Location
.
A DeliveryPromiseProvider
object can be created or updated using the deliveryPromiseProviderUpsert
mutation, and retrieved using the deliveryPromiseProvider
query.
Learn more about the DeliveryPromiseProvider
object, the deliveryPromiseProviderUpsert
mutation, and the deliveryPromiseProvider
query.
July 01, 2024
Store Credit functionality available on the Admin and Customer API API
As of 2024-07 StoreCreditAccount queries and mutations are available to merchants globally in the GraphQL Admin API. A new transactions
connection has been added to the StoreCreditAccount, displaying the full transaction history of the account.
A customer who is authenticated with new customer accounts will be able to see and spend their store credit at checkout.
It's now possible to view the logged in customers StoreCreditAccount when using the GraphQL Customer Account API.
July 01, 2024
New Subscription BillingCycles mutations API
As of admin API 2024-07, we will have new mutations and queries: * mutation subscriptionBillingCycleBulkCharge * mutation subscriptionBillingCycleBulkSearch * query subscriptionBillingCycleBulkResults * mutation subscriptionBillingCycleCharge
Learn more about those on * Shopify.dev - Manage billing cycle contract - Create an order. * Shopify.dev - Manage billing cycles in bulk
July 01, 2024
New field on CheckoutProfile: typOspPagesActive API
As of GraphQL Admin API version 2024-07, you can query the field typOspPagesActive. This field returns the status of the Thank You Page (TYP) and Order Status Page (OSP) on a CheckoutProfile, providing insight as to whether or not these pages have adopted extensibility or not.
When true, both Thank You Page and Order Status Page are using extensibility, and will render the appropriate UI extensions, while also making use of pixels, and functions. When false, the pages still use additional scripts and other deprecated features.
Learn more about CheckoutProfiles on Shopify.dev.
July 01, 2024
Action required
Removal of Customer search filters on Admin API API
As of GraphQL Admin API version 2024-07, the following Customer filters in the search syntax have been deprecated: total_spent
, orders_count
, accepts_marketing
, customer_date
, last_abandoned_order_date
, order_date
, tag
, tag_not
, city
, province
, state
, territory_code
, country
, company
, email_marketing_state
, sms_marketing_state
. Filtering customers by these attributes is available when querying customers using segments.
Learn more about customer segmentation on Shopify.dev.
July 01, 2024
Changes to variants
and productOptions
fields in ProductSetInput
.
API
As of the 2024-07 version of the Admin GraphQL API, the variants
and productOptions
fields in the ProductSetInput will become optional. The fields are codependent, meaning they must either both be present or both be absent.
Learn more about productSet on Shopify.dev.
June 30, 2024
Storefront API Cart discountAllocations
field now includes delivery discounts
API
As part of the 2024-07 release, delivery-related discounts into the Storefront API's Cart discountAllocations
field and a new targetType
field have been added to differentiate the type of discount. The merchandise and delivery discounts are reflected in the totalAmount
of the Cart.
Learn more about the Cart
object on Shopify.dev.
June 28, 2024
Compare-and-swap (CAS) for the Metafields API API
As of GraphQL Admin and Customer Account APIs version 2024-07
, you can now set metafields using compare-and-swap (CAS) through the new compareDigest
field for the metafieldsSet
mutation.
Using CAS will add support to properly handle concurrency requests.
June 25, 2024
Storefront API Cart now supports one-time use delivery addresses API
As of version 2024-07 of the GraphQL Storefront API, Cart supports one-time use delivery addresses with the new oneTimeUse property of the DeliveryAddressInput. Use this new property to pass an address that should not be saved to the account of the customer after checkout. A typical use case is when a store specializes in gifting scenarios.
API Reference - DeliveryAddressInput
June 24, 2024
Webhook subscriptions now support filters API
As of 2024-07, when creating, updating or querying a webhook subscription you can now include a filter parameter. This parameter, which is specified using Shopify Search Syntax, allows you to specify conditions as to when webhooks should be emitted for a subscription.
Learn more about webhook filters on Shopify.dev.
June 24, 2024
Webhook subscriptions subTopic has been removed API
As of 2024-07, the subTopic argument has been removed for creating webhook subscriptions. For creating subscriptions that previously required a subTopic the filter argument should be used instead.
Learn more about webhook filters on Shopify.dev.
June 23, 2024
More data in web pixels API
We've added more data fields to Web pixels so that you can capture richer data and improve the performance of your integrations.
Standard API -> init -> shop object including: * Country code * myShopify url * Payment settings
Standard Events -> checkout object including: * Discount amounts * Email marketing consent * Final line item price * Line item properties * Line item selling plan * Localization * Payment method * Selected delivery options * SMS marketing consent
June 21, 2024
Easily find all of Shopify's webhook topics, and their sample payloads, in new Webhooks reference docs Tools
Shopify webhoks are first-class citizens with our APIs, and we now finally have a reference experience too! Now, all of Shopify's webhook topics are discoverable in a single-source-of-truth place. The reference docs include sample payloads, which topics are available for subscription based on the method you use, and key information like required access or approval scopes.
June 21, 2024
Subscribe to webhook topics using the app configuration file Tools
Webhooks are now managed by Shopify! Configure app-specific subscriptions as opposed to per shop. Using Shopify CLI v3.63.0 or later, add, modify and deploy app-specific subscriptions in your app configuration file (shopify.app.toml
), then view the latest version in your Partners dashboard.
To get started, use the new tutorial for Shopify webhook subscriptions.
June 21, 2024
Action required
Cart token in Ajax API response now includes key param API
The token
value in the JSON of the cart response now includes a key param as of 2024-06-21. This response is returned when the cart is manipulated or queried using Shopify's Ajax API for Cart.
Example Format: ** * Before: token:c1-7a2abe82733a34e84aa472d57fb5c3c1 * After: token:c1-7a2abe82733a34e84aa472d57fb5c3c1?key=824bdj25mhg1242bdb385**
*Action Required: * Ensure that your code is free from hard-coded assumptions (e.g. Using regex to identify a cart token) about the format and structure of the cart JSON response. If this value is stored as a key in an external database, ensure this change does not break the existing functionality. If storage of the cart token is required, we recommend using the complete value including the key param.
June 21, 2024
Create extensions for the pre-authenticated Order Status Page Shopify App Store
Build extensions on the pre-authenticated Order Status Page as a part of the Customer Account Extensibility Developer Preview to create a consistent experience for customers, regardless of their login or authentication state.
Customer account extensibility, currently available in developer preview, enables partners to add unique and powerful customizations by building extensions directly into new customer accounts.
Learn more about the pre-authenticated Order Status Page in our developer documentation.
June 21, 2024
Preview and configure customer account UI extensions in the Checkout and Accounts Editor Shopify App Store
As a part of the Customer Account Extensibility Developer Preview, you can now add, remove, preview, and reposition customer account UI extensions in new customer account pages, to better understand how merchants configure apps in the checkout and accounts editor.
Included in this update, you can also:
- Group extensions into collections: Extension collections guide merchants on which extensions work well together by creating collections that help merchants confidently enable your recommended customer experience.
- Set default placements: Default placements automatically add an extension to a specified UI block.
Customer account extensibility, currently available in developer preview, enables partners to add unique and powerful customizations by building extensions directly into new customer accounts.
Get started by reading our developer documentation.
June 21, 2024
Write data to metafields with the Customer Account API API
Store and access customer information by writing data to metafields with the Customer Account API, and build experiences for merchants that enable logged-in customers to update information about themselves.
Custom customer data previously stored exclusively outside of Shopify can now be accessed and added directly to the customer record via using the Customer Account API. With the 2024-07 release of the Customer Account API, use the metafieldsSet mutation to assign metafield values on Customer, Order, Company, and CompanyLocation resources.
Learn more about writing data to metafields with the Customer Account API by reading our developer documentation.
June 21, 2024
Shopify Functions log streaming and replay is available in beta Tools
As of Shopify CLI 3.63, log streaming and replay for Shopify Functions is available in beta.
Log streaming for Shopify Functions enables faster development, testing, and debugging of functions by bringing function execution logs to Shopify CLI. You can also replay function executions locally using input from these logs.
Learn more about enabling and using log streaming on Shopify.dev.
June 21, 2024
Integrate with Shopify Flow by creating a workflow template app extension Tools
You can now contribute your own templates to Flow’s template library using the Shopify CLI. Templates show merchants how to automate something in their store and typically accelerate adoption of new tasks.
Once you have a workflow to share as a template, you can use the Shopify CLI to generate a new template app extension, configure all of its metadata including localizations, preview the extension, and deploy it. Once approved by the Flow team, it will appear in Flow’s template library.
View the Create a workflow template documentation to learn more about the process of creating and deploying template app extensions.
June 21, 2024
Revised the App Design Guidelines (Summer 2024) Shopify App Store
We've introduced the following changes to improve and update the App Design Guidelines:
- FullscreenBar usage within a max modal is now a "Do Not". The FullscreenBar section of the App Design Guidelines has been removed as it is no longer supported.
- Proper grammar is now included as a "Must Do".
- Using the App Bridge Contextual Save Bar API (where applicable) is now a "Must Do".
- Added a new section to the App Design Guidelines that includes specific requirements for subscription apps.
June 20, 2024
Introducing easier app billing with managed pricing Shopify App Store
Managed pricing makes it easier to set up app pricing plans through your Partner Dashboard. Define recurring monthly/annual and free plans in your app listing page, then embed the URL in your app. Shopify handles creating and hosting your plan selection page, and automates most common billing tasks, such as recurring charges, free trials, proration, test charges, and price updates.
Managed pricing also allows you to easily issue app discounts and trial extensions through the Partner Dashboard. Merchants get an automated confirmation email when discounts and trial extensions are applied to their accounts.
Learn more about getting started with managed pricing.
June 20, 2024
Add seamless printing to your app with admin print action extensions Platform
Developers can now add admin print actions to their apps. These extensions let your apps create seamless workflows for printing documents - such as packing slips, invoices, and product information - direcly from the Order and Product pages in the Shopify admin.
Get started today by learning how to develop and deploy a print extension!
June 20, 2024
Real-time Metrics for Shopify App Store Ads Shopify App Store
Shopify App Store Ads’ metrics now update in real-time. Partners will get immediate feedback when they refresh their ad report on their ads’ performance as auctions, impressions, clicks, and installs are happening live. To learn more about these metrics visit Shopify.dev.
June 18, 2024
GraphQL Admin API: new APIs for Menus are now available in 2024-07 API
As of version 2024-07 of the GraphQL Admin API, you can now read and modify Menus.
June 18, 2024
Structured app category details now available for 30 more categories Shopify App Store
Structured app category details are now available for 30 more categories. You can fill out the fields from your app listing pages. This new information will help us match your apps to the right merchants more accurately, optimize ads bidding, and improve the overall discovery.
The 30 categories that now supports structured app category details are:
- Abandoned cart
- Ads
- Affiliate programs
- Analytics
- Badges and icons
- Banners
- Bulk editor
- Cart customization
- Chat
- Cookie consent
- Currency and translation
- Digital products
- Image editor
- Invoices and receipts
- Inventory sync
- Marketplaces
- Order tracking
- Payments
- Print on demand (POD)
- Product feeds
- Product variants
- Retail
- Search and filters
- Shipping
- Shipping rates
- SMS marketing
- Social proof
- Store data importer
- Upsell and cross-sell
- Workflow automation
For more information, please refer to our dev documentation.
June 18, 2024
JSON is better on Liquid themes now Themes
Writing JSON for Liquid themes is already easy with intelligent code completion and inline documentation, but now it's also easier to refactor as we move objects in your schema tags and your settings_schema.json
files with support for trailing commas and comments.
Note: Apps that parse JSON definitions from themes can still use pure JSON, but they should introduce support for reading (parsing) comments and trailing commas to handle eventual changes made directly on theme files.
Learn more about the JSON editing experience and JSON with comments at Shopify.dev - VS Code extension and Shopify.dev - Theme architecture. Happy coding!
June 17, 2024
Merchant Plan-Based Targeting Now Available for Built for Shopify Apps for Shopify App Store Ads Shopify App Store
Partners with apps that qualify for Built with Shopify status are now able to target their search ads on the Shopify App Store to specific merchant plans.
Learn more at Shopify.dev.
June 17, 2024
Action required
OptionValue in Storefront API API
A new type called ProductOptionValue
has been added to the new storefront API and is nested as a new field optionValues
on the ProductOption
type.
As of 2024-07, you can use the optionValues
field to fetch the option values associated with an option. This field deprecates the existing values
and provides richer option value information including swatches.
June 17, 2024
Action required
OrderDisplayFulfillmentStatus
now returns REQUEST_DECLINED
when appropriate
API
As of 2024-10
, OrderDisplayFulfillmentStatus will now return REQUEST_DECLINED
for an order that has had its fulfillment request rejected by a third-party Fulfillment Service. Previously, orders in this state would return an UNFULFILLED
status.
June 15, 2024
Add a new error code for handling missing payment method for subscription draft commits API
As of 2024-07, you will receive a detailed error message when missing payment information for subscriptionDraftCommit mutation.
June 14, 2024
draftOrderLineItemInput now accepts bundleComponents and the CartTransform function runs on all draft orders API
As of version 2024-07 of the GraphQL Admin API, draftOrderLineItemInput now accepts bundleComponents. Apps can view a bundle item's components on a draft using the bundleComponents field and can add a bundle item to a draft order by including this field in the draftOrderLineItemInput.
Additionally, the CartTransform function will automatically run on all draft orders.
Learn more about bundleComponents on shopify.dev.
June 14, 2024
Action required
Category on ProductInput API
In 2024-04 we released a new Taxonomy API for products. This included introducing a new TaxonomyCategory type and updating the product type to return a new category field.
As of 2024-07 the ProductInput type will also accept a category field that accepts the GID of a category.
We've also deprecated shop.allProductCategories
in favor of shop.allProductCategoriesList
June 13, 2024
Action required
UI Extensions - Support for split shipping in Shipping method option list and item targets API
Breaking change: UI Extensions on version 2024-07
can use new API capabilities to integrate with split shipping capabilities.
Split shipping in checkout allows buyers to select different shipping options for items arriving in multiple shipments. In split shipping scenarios, Checkout will include UI changes to offer more transparency and options for buyers in the shipping section, while making the selection process easy with split shipping options (“Lowest price”, “Fastest” or “Custom”).
API updates
As of 2024-07
, purchase.checkout.shipping-option-list.render-before
and purchase.checkout.shipping-option-list.render-after
will receive a new DeliveryGroupList
target representing the list of delivery groups for One Time Purchase or Subscription delivery groups. These targets continue to be duplicated for the possible types of delivery groups. We’re also introducing deliverySelectionGroups
which represents the list of predefined choices for the “Lowest price”, “Fastest” or “Custom” shipping options that are presented to the buyer. You can view these changes on the ShippingOptionListApi.
Note that useDeliveryGroupTarget() is deprecated in favor of useDeliveryGroupListTarget(). Extensions on 2024-01
and 2024-04
are compatible with split shipping but will only receive the first delivery group of each type (One Time Purchase or Subscription).
UI extension target updates
purchase.checkout.shipping-option-item.render-after
and purchase.checkout.shipping-option-item.details.render
targets can now be rendered in different contexts: inline as part of the split shipping options, or in an overlay for the “More shipping options” modal.
As a result:
- ShippingOptionItemApi has been updated to include a
renderMode
indicating in which context the target is rendered. - Only
purchase.checkout.shipping-option-item.render-after
can be rendered in both contexts. purchase.checkout.shipping-option-item.details.render
will also be duplicated for the selected shipping option of each delivery group.
If your extension is capturing buyer inputs at Checkout (for example using an app metafield), you will need to update your logic to account that this information should be scoped to a specific delivery group, instead of the entire order.
You can learn more about the new placement of targets and see examples.
These changes can be previewed today on the unstable
api version and will be available on the stable branch with version 2024-07
.
Learn more about these api changes on shopify.dev
June 13, 2024
We have refreshed app taxonomy for better discoverability Shopify App Store
We have refreshed our app taxonomy for better app discoverability. Designed to streamline categories and reduce complexity, this update will help merchants more easily find the best apps for their needs.
We encourage you to:
- Review the new taxonomy: See new categories and how it affects your app’s placement. All apps will continue to be discoverable and we’ll do our best to choose a suitable alternative for those impacted.
- Update your app’s category: Select the most suitable category for your app from your partner dashboard. All apps can make a one-time category change. Any subsequent changes will require an appeal.
- Impact on ads: Your category ads campaigns may be impacted if they are in these categories. You may need to relaunch your campaign.
June 13, 2024
GraphQL Admin API: RefundLineItem.id
field added
API
As of 2024-07
, you can use the RefundLineItem.id
to return the id of specified RefundLineItem
object.
Learn more about working with RefundLineItem
on Shopify.dev.
June 13, 2024
Preserve line properties in CartLinesUpdate mutation API
The CartLinesUpdate mutation behavior has been updated to preserve existing line properties when the attributes parameter is either omitted or explicitly set to null.
Previously, omitting the attributes parameter would reset the line properties. Passing an empty hash { }
to reset line properties is an existing capability and remains unchanged.
June 13, 2024
Updated default sort order for discount queries API
As of 2023-04, the default sort key for discountNodes
, codeDiscountNodes
, and automaticDiscountNodes
queries has changed to ID
. Previously the default sort key was CREATED_AT
. This change improves performance.
June 11, 2024
Action required
Deprecation of buyerIdentityInput.walletPreferences
in favour of buyerIdentityInput.preferences.wallet
API
As of 2024-07
, we're deprecating buyerIdentityInput.walletPreferences
. Use buyerIdentityInput.preferences.wallet
instead.
Learn more about these changes on Shopify.dev.
June 10, 2024
Automatic Discount Functions now apply to B2B checkouts for review API
Discount Functions are now compatible with B2B companies that are required to submit orders as drafts for review.
Previously, Discount Functions weren’t applicable when B2B buyers submitted orders as drafts for review. This restriction has now been lifted, and buyers will have discounts applied at checkout.
June 07, 2024
Merchants can now share all function run details for an app within the last 24 hours Platform
It is now possible for merchants to share all function run details for an app within the last 24 hours with the app developer. This will share function run details for every function on the app, including both success and failure runs.
To learn how merchants can perform this action, see the relevant dev docs.
June 06, 2024
Added Maximum Limit to number of fulfillment constraint rules for a shop API
We are adding a limit to the number of fulfillment constraint rules that can be applied to a shop - currently, this limit is 10. As a result, we are also adding a new error code to the API.
As of API version 2023-07
, the error code maximum_fulfillment_constraint_rules_reached
will be added to the FulfillmentConstraintRuleCreate
mutation. This error code is returned when you add more than the maximum number of rules to a shop.
June 05, 2024
Hydrogen June 2024 release Platform
Hydrogen v2024.4.3 is out today. The June 2024 Hydrogen release contains several new features and bug fixes, including:
- A new
useOptimisticCart
hook - A new
<RichText />
component to renderrich_text_field
metafields - Stable analytics
- An upgrade to Remix 2.9.2
Check out our full Hydrogen June 2024 release blog post for more details. And please drop your comments, feedback, and suggestions in GitHub Discussions!
June 05, 2024
Discount Functions support on Shopify Point of Sale Platform
With POS app version 9.10 we now officially support discounts created by Discount Functions.
Here are some of the things to be aware of with regards to this announcement:
What are Shopify Functions?
Shopify Functions give you the flexibility to extend or replace native Shopify server-side business logic, to meet your unique business needs. For Discount Functions, that means being able to create discounts that cover more advanced use cases than what’s offered natively in the Shopify Admin discounting functionality.
Some use cases: - Trigger discounts based on attributes not available to be used natively, such as custom metafields or the customer’s lifetime value - Create more advanced criteria for discounts to be eligible, such as “Buy A, B and (C or D), get E for free” - Link discounts to other functionalities (loyalty, gift registry, membership)
What’s the lifecycle of a Shopify Function?
- App developers create and deploy apps that contain functions
- Merchants install the app on their Shopify store and configure the function. An API call is made with the function configuration
- Customers interact with a Shopify store, for example by visiting a retail location and buying a number of products, Shopify executes the function as the cart is updated and the merchants’ staff checks out the customer
Important information:
What exactly is changing now?
Over the last couple of months we launched new features on Shopify POS such as the ability to combine discounts as well as the support for BXGY discount codes. With these releases, we increased the support for more advanced Discount Function scenarios.
With v9.10 we are releasing some improvements that further bring the use of Discount Functions into the POS ecosystem, including automatic discounts, the ability to create smart grid tiles for discount codes that trigger a Discount Function, as well as improved error handling for discount codes.
Limitations:
There are currently a few limitations that are important to be aware of: - Discount Functions are automatically available to any sales channel, meaning that if a Discount Function was set up to automatically apply based on a certain input, it would be applied to orders that qualify in both Online Store as well as POS. The same counts for Discount Functions that are applied through discount code - Stores on any plan can use public apps that are distributed through the Shopify App Store and contain functions. Only stores on a Shopify Plus plan can use custom apps that contain Shopify Function APIs
For app developers:
- We have extensive pre-existing docs on Shopify Functions - General and API - available on our .dev docs website. A tutorial can be found here
In Shopify admin:
- Any previously created Discount Functions are automatically available to be leveraged on POS
- For staff members to be able to leverage a Discount Function, a discount will have to be created with an app that deploys that function
- To make a discount created by Discount Functions available for smart grid tile linking, it has to be “published” to the POS, which can be done via bulk editor in the Admin > Discounts list overview
In store flows:
- For the staff in store, nothing will change. Discounts created through native functionality or discount functions will behave the same on POS
- Discount Functions can be configured to apply automatically, or can be triggered by entering a discount code
Technical:
- The following API’s are relevant to this functionality:
- There are no functional changes to APIs
Reporting: - Discounts created through Discount Functions are of the same type as native discount (automatic / code, product/order/shipping). These discounts are reported on regardless of whether they were created natively or through discount functions