What's your biggest current challenge? Have your say in Community Polls along the right column.
Our Partner & Developer boards on the community are moving to a brand new home: the .dev community forums! While you can still access past discussions here, for all your future app and storefront building questions, head over to the new forums.

DiscountApplicationStrategy.All is not a recognized option for new scaffolded product-discount

Solved

DiscountApplicationStrategy.All is not a recognized option for new scaffolded product-discount

DeeDee-TDY
Shopify Partner
50 4 5

I scaffolded a new product-discount extension function today and the shopify.app.toml file reflects api-version 2024-01 and the shopify.extension.toml file shows api_version 2023-10. The product-discount package.json shows app and cli versions 3.53.0.

I would like to use the new discountApplicationStrategy of All per https://shopify.dev/changelog/new-discountapplicationstrategy-option-for-product-discount-function-a... which states: EFFECTIVE JANUARY 01, 2024 The Product Discount Function API now supports setting discountApplicationStrategy to "ALL" in the FunctionRunResult.

Unfortunately, All is not a recognized discountApplicationStrategy option. I tested in my actual function code on a test store which confirms that upon running the app, All is not a recognized discountApplicationStrategy option.

DeeDeeTDY_3-1704908182585.png

InvalidOutputError

[

  {

    "path": [

      "discountApplicationStrategy"

    ],

    "explanation": "Expected value to not be null"

  }

]

I attempted to manually modify the shopify.extension.toml file to use api_version 2024-01, re-ran the dev command and tested, but the same behavior occurred. How do I update my function to use the new discountApplicationStrategy of All?

Accepted Solution (1)

Nick_Wesselman
Shopify Staff
171 43 73

This is an accepted solution.

If you are upgrading an extension to a new API version, be sure you've followed all the steps here, including pulling the latest schema:

https://shopify.dev/docs/apps/functions/input-output#api-versions

Nick Wesselman | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

View solution in original post

Replies 3 (3)

Nick_Wesselman
Shopify Staff
171 43 73

This is an accepted solution.

If you are upgrading an extension to a new API version, be sure you've followed all the steps here, including pulling the latest schema:

https://shopify.dev/docs/apps/functions/input-output#api-versions

Nick Wesselman | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

JohnTMWK
Shopify Partner
3 0 0

Hello!

 

I am experiencing an issue similar to the one described in this post regarding the use of the DiscountApplicationStrategy.All in Shopify Functions. Despite updating to the 2024-07 version as suggested in the solution, the problem persists.

The error message I'm encountering is:

 

[  {    "path": [      "discountApplicationStrategy"    ],
    "explanation": "Expected value to not be null"
  }
]

 


It appears that DiscountApplicationStrategy.All is still not recognized or correctly implemented. Shopify only seems to accept FIRST and MAXIMUM as valid options, not ALL.

have ensured that all dependencies are up-to-date and that I am indeed using the 2024-07 API version. Despite these efforts, the error persists, preventing the application of multiple discounts.

Any guidance or suggestions on resolving this issue would be greatly appreciated.

DeeDee-TDY
Shopify Partner
50 4 5

DiscountApplicationStrategy.All has worked for me as of the April release. Below is a snippet of my return code if it helps.


    return {
      discounts: [
        {
          targets: targets0, // Apply the discount to the collected targets
          value: {percentage: {value: discount0}} // Define a percentage-based discount
        },
        {
          targets: targets1,
          value: {percentage: {value: discount1}}
        },
      ],
      discountApplicationStrategy: DiscountApplicationStrategy.All
    };