Action required: Use “checkout.order_id” on the Thank You page

Solved

Action required: Use “checkout.order_id” on the Thank You page

ladavies
Visitor
1 0 2

Received an email from shopify, saying Action required  Use “checkout.order_id” on the Thank You page

 

On the Checkout page I see a blue information box saying:

 

"Your Thank you and Order status pages must be replaced

 

Your Thank you and Order status pages are using incompatible apps and additional scripts, which is deprecated. Replace these with pixels in customer events and with app blocks in the editor, then publish your changes."

 

When I look at the Order status page additional scrips section under checkout, I see the line:

 

if ({{ order.order_number }}) { var google_conversion_order_id = "{{ order.order_number }}"; }

 

Am I supposed to only change order.order_number to checkout.order_id?

 

Many Thanks.

Accepted Solution (1)

Mac
Shopify Staff
1702 178 292

This is an accepted solution.

Hi @ladavies!

You have received this email because your additional scripts on the Thank you page reference the Liquid order object. You can verify these references by following these steps:

  1. Navigating to Additional Scripts:

    * From your Shopify admin dashboard, go to Settings > Checkout.

    * Scroll down to the Order status page section
    * Locate the Additional scripts input box.

 

Mac_0-1718653486517.png

  1. Locating and Reviewing the Code:

     * The input box displays only the first 5 lines of code.

     * To view the entire code block, highlight all the content within the input box, making sure to scroll down all the way.

     * Copy the highlighted content and paste it into a text editor of your choice.

     * This will allow you to easily review and identify all instances of the order object within the code.

Why?

Order creation on Shopify is asynchronous, meaning the Thank you page is likely to load before an order is created. When this happens the Liquid order object isn't always populated. This means Critical 3rd party systems like Google ads and analytics should not rely on the order object on the Thank you page. By contrast, the Order status page only renders when an order has been created, so it is safe to reference the order object on that page.

 

Solution

If you have tracking scripts for when an order completes, there are a couple of options available to you to resolve this:

  1.  Move your analytics to app pixels: App pixels are great because they do not require coding. Shopify has a dedicated team to ensure your analytics flow smoothly. Additionally, some apps come with Server Pixels, which ​​deliver higher quality data to partners, helping to reduce the cost of acquiring new customers such as the Google & Youtube channel and Facebook & Instagram.
  2. Move to custom pixels: If there isn’t yet an app pixel that fulfills your requirements, you could consider a custom pixel.  For example, a common use case for custom pixels is Google Tag Manager which you can learn to set up through this guide. Setting up a custom pixel requires some technical knowledge and you might want to consider hiring a Shopify Expert.
  3. Update your existing Additional Scripts: This approach requires some coding. A Shopify Expert can assist you with this. However, be aware that this is not a long-term solution, as the Order Status Page additional scripts are deprecated and will eventually be discontinued. If you have a custom script that cannot be migrated to Pixels, you'll need to:
    1. Modify it to eliminate dependencies on the Liquid order object (e.g., order.email or order.line_items) with available references from the Liquid checkout object. This is identified in the email as order.{anything} or checkout.order.{anything}.
    2. Replace references used to identify the order such as order.name, order.number, checkout.order_number, and checkout.order_name with checkout.order_id. This is a different number that is consistent across checkout and the order. Please note, downstream systems that use this to reference the order will also need to be updated to match.

Mac | Social Care @ 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 4 (4)

Peabrain46
Visitor
1 0 0

Following ... I have the same email 

Mac
Shopify Staff
1702 178 292

This is an accepted solution.

Hi @ladavies!

You have received this email because your additional scripts on the Thank you page reference the Liquid order object. You can verify these references by following these steps:

  1. Navigating to Additional Scripts:

    * From your Shopify admin dashboard, go to Settings > Checkout.

    * Scroll down to the Order status page section
    * Locate the Additional scripts input box.

 

Mac_0-1718653486517.png

  1. Locating and Reviewing the Code:

     * The input box displays only the first 5 lines of code.

     * To view the entire code block, highlight all the content within the input box, making sure to scroll down all the way.

     * Copy the highlighted content and paste it into a text editor of your choice.

     * This will allow you to easily review and identify all instances of the order object within the code.

Why?

Order creation on Shopify is asynchronous, meaning the Thank you page is likely to load before an order is created. When this happens the Liquid order object isn't always populated. This means Critical 3rd party systems like Google ads and analytics should not rely on the order object on the Thank you page. By contrast, the Order status page only renders when an order has been created, so it is safe to reference the order object on that page.

 

Solution

If you have tracking scripts for when an order completes, there are a couple of options available to you to resolve this:

  1.  Move your analytics to app pixels: App pixels are great because they do not require coding. Shopify has a dedicated team to ensure your analytics flow smoothly. Additionally, some apps come with Server Pixels, which ​​deliver higher quality data to partners, helping to reduce the cost of acquiring new customers such as the Google & Youtube channel and Facebook & Instagram.
  2. Move to custom pixels: If there isn’t yet an app pixel that fulfills your requirements, you could consider a custom pixel.  For example, a common use case for custom pixels is Google Tag Manager which you can learn to set up through this guide. Setting up a custom pixel requires some technical knowledge and you might want to consider hiring a Shopify Expert.
  3. Update your existing Additional Scripts: This approach requires some coding. A Shopify Expert can assist you with this. However, be aware that this is not a long-term solution, as the Order Status Page additional scripts are deprecated and will eventually be discontinued. If you have a custom script that cannot be migrated to Pixels, you'll need to:
    1. Modify it to eliminate dependencies on the Liquid order object (e.g., order.email or order.line_items) with available references from the Liquid checkout object. This is identified in the email as order.{anything} or checkout.order.{anything}.
    2. Replace references used to identify the order such as order.name, order.number, checkout.order_number, and checkout.order_name with checkout.order_id. This is a different number that is consistent across checkout and the order. Please note, downstream systems that use this to reference the order will also need to be updated to match.

Mac | Social Care @ 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

lynth
Shopify Partner
140 6 16

Ok, I get it, but what if we use order.id as an identifier since today, then suddenly we'll start using checkout.order_id. There are two different values. At least in our case, we tested it. It's not good when you have a few years of analytic data behind you and now your orders id's are different. Please correct me if I'm wrong. It looks like checkout.order_id == checkout.id

EDIT: Ok, I was wrong. checkout.order_id == order.id 

If my tips are useful, just mark it as the solution. Cheers!
Feeling grateful? Buy me a coffee!
jonfidelity
Visitor
2 0 0

did you ever get any answer from anyone? has your meta ads account gone down the drain?