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

Hi all,

I’ve got an email from Shopify regarding this issue:

Action required: Use “checkout.order_id” on the Thank You page> > As part of ongoing improvements to Checkout and the Thank You page, we’ve identified a change that you need to make to your Additional Scripts to ensure that your conversion tracking and downstream systems are working correctly.> > What you need to do> > Replace “order.{anything}” with “checkout.order_id” in Additional Scripts and similarly update any downstream systems that rely on this data.> > Alternatively, you can upgrade your Thank you page and customize it using app blocks and Web Pixels. This will eliminate your dependence on Liquid variables, but downstream systems will still need to be updated. Learn more here.> > Why you need to do this> > The field(s) “order.{anything}” are populated during order creation. With Checkout Extensibility, this happens independently of the Thank You page loading to improve scale and performance. This provides a faster experience for your customers.> > The side effect is that “order.{anything}” are usually not available when the Thank You page loads. Continuing to use these fields can result in conversion seeming lower than it is, impacting analytics, or interrupting integrations with downstream apps.> > “checkout.order_id”, on the other hand, is a common and unique identifier across checkout and order creation. It is available as soon as checkout is completed and can reliably be used to tie together analytics, downstream systems, and the buyer experience.

My problem/concern:

I’ve tried searching the “order.{anything}” field in the Additional Scripts but it’s not there. (See image attached)

Is there any alternative way to resolve the issue?

Thanks,

Jan

Hi @jv_2024

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.

  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.