Shopify has officially closed the Discounts Allocator Function API developer preview. While most merchants won’t feel any difference, developers who experimented with this preview must act now to avoid deployment failures. This post breaks down the change, who it affects, and the exact steps you need to take to keep your app running without hiccups.
What Changed
The Discounts Allocator Function API allowed apps to dictate how discounts were allocated across cart lines. Since the preview opened, Shopify has enhanced its native discount‑allocation logic—supporting stacking multiple product discounts on the same line—so the custom function is no longer necessary. Consequently, the following have been removed:
• The discountsAllocatorFunctionRegister and discountsAllocatorFunctionUnregister mutations from the unstable Admin GraphQL API (they never reached a stable release).• All Functions registered during the preview have been automatically unregistered.• The API reference and “Build a discounts allocator” tutorial from shopify.dev.
If you still need to create custom discount logic, you should switch to the official Discount Function API described in the Discounts developer documentation.
Who Is Affected
Only apps that participated in the preview and declared the purchase.discounts-allocator.run extension target are impacted. There are three scenarios:
Required Action
If your app’s shopify.app.toml or extension manifest still includes the purchase.discounts-allocator.run extension, you must delete it. Until you do, any shopify app deploy command will abort with an “API not found for target: purchase.discounts-allocator.run” error, blocking updates to all other extensions as well.
Example removal from a typical shopify.app.toml:
toml
# Before – problematic extension
[[extensions]]
name = "discounts-allocator"
type = "purchase.discounts-allocator.run"
# ...other extension definitions...
After removal:
toml
# The purchase.discounts-allocator.run block has been deleted.
[[extensions]]
name = "my-other-extension"
type = "checkout_ui_extension"
# ...rest of the config...
Once the extension is removed, run shopify app deploy again. The deployment should succeed, and your other extensions will continue to update as expected. Existing releases of your app remain installable, but any Discounts Allocator Functions they contain will no longer execute.
Next Steps & Resources
Conclusion
The end of the Discounts Allocator Function API preview simplifies Shopify’s discount engine and removes a layer of custom code for most merchants. For developers, the only immediate task is to clean up any lingering purchase.discounts-allocator.run extensions to keep deployments smooth. Embrace the newer Discount Function API for any advanced discount scenarios, and you’ll be well‑positioned for future Shopify updates.
Ready to update your app? Start by checking your shopify.app.toml today and keep your checkout experience friction‑free.


