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.

Get updates by RSS

Discount Functions support on Shopify Point of Sale


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.


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


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