Skip to main content
Shopify

Shopify denied tracking update access: when it appears and how to fix it

The message appears when you click Update Shopify Tracking and the error Shopify returns contains ACCESS_DENIED and the word "fulfillment". The message itself tells you what to do: add the write_merchant_managed_fulfillment_orders scope and re-authorize the app; then click the button again.

FlexigoTech · Editor in charge: Víctor Gómez · Updated 5 November 2026

Key facts

Module
Shopify
Versions
Odoo 17, 18, 19 and 20
Checked
in the connector's source code, version 20.0 · against the sources linked at the end
Reading time
4 min

When the message appears and what it means

The message appears when you click the Update Shopify Tracking button on a transfer. That button calls Shopify to update the tracking of the fulfilment whose ID is stored on the transfer. If the call to Shopify returns an error, the module reads its text. When that text contains ACCESS_DENIED (exactly as written, in capitals) and also the word "fulfillment" (in capitals or lower case), the module replaces the error with this message and the action stops:

Shopify denied tracking update access. Add scope write_merchant_managed_fulfillment_orders and re-authorize the app.

It means Shopify denied access to update the tracking. The message asks for two things: add the write_merchant_managed_fulfillment_orders scope and re-authorize the app. The text is in the published code of every version (17.0, 18.0, 19.0 and 20.0). The detail of the method described below is from the Odoo 20.0 code.

Diagram made with code, not an Odoo screen: from top to bottom, the Shopify › Configuration › Stores menu, the Update Shopify Tracking button and the tracking access denied message
Diagram made with code from the module's published code (Odoo 17.0, 18.0, 19.0 and 20.0).
Your Odoo doesn't talk to Amazon, Temu or Shopify?
Video: Your Odoo doesn't talk to Amazon, Temu or Shopify?

Step by step to fix it

  1. Open the transfer for the Shopify order. The Update Shopify Tracking button is hidden if the transfer is not for a Shopify order (the Is Shopify Order field does not appear in any view), if its status is not Done, or if the Shopify Fulfillment field is empty. That condition is the same in Odoo 17.0, 18.0, 19.0 and 20.0. If you cannot see the button, one of those three applies.
  2. Click Update Shopify Tracking. If the error Shopify returns meets the condition above, you will see the message and the action stops.
  3. Add the write_merchant_managed_fulfillment_orders scope to the Shopify app, as the first half of the message asks.
  4. Re-authorize the app, as the second half of the message asks.
  5. Go back to the same transfer and click the button again. Check whether the message comes back.
  6. If a different message appears now, it is not this one: read it in full and deal with it separately (the reason is explained below).

What the button does before the message can appear

It helps to know the route, so you can see at which point the message is produced. According to the code, the module takes the fulfilment ID stored on the transfer. If the transfer has no such ID, the action stops without calling Shopify. It then builds the tracking details from what the transfer holds, and if there is no tracking number, the action again stops before calling Shopify. Those details are put together like this:

  • If there is a single tracking number, it sends that number. If there are several, it sends all of them.
  • If there is a carrier, it sends the carrier's name. The module takes the carrier from the sales order or, failing that, from the transfer itself.
  • It sends the tracking URL only when there is a single number.

The request also says whether Shopify should notify the customer, according to a setting on the Shopify instance. The call to Shopify is made with all of that.

The message does not depend on what the transfer contains: the code condition only looks at the text of the error Shopify returns in that call. A transfer with a correct tracking number and a carrier properly set can still give this message if Shopify's error meets both conditions.

Where the stores live in Odoo

The store records open from the Shopify › Configuration › Stores menu. Permissions matter: the Configuration section requires the Operator permission and the Shopify section requires Viewer. If you lack one of them, you will not see that part of the menu.

If the message keeps appearing or another one shows up

The message is only produced when Shopify's error meets both conditions at once: ACCESS_DENIED and "fulfillment". If the error returned by the call does not meet them, the module does not change it and you see it as it is, with its own text. So if, after adding the scope and re-authorizing, you still see an error worded differently, it is no longer this message.

If you still see exactly this message, go back over steps three and four: the message asks for the scope and the new authorization of the app together.

With Odoo in English, the message reads as quoted above; the diagram also shows how it reads in Spanish, German, French, Italian and Portuguese:

Diagram made with code, not an Odoo screen: the same tracking access denied message in Spanish, German, French, Italian and Portuguese
Diagram made with code from the module's published translations. In English: «Shopify denied tracking update access. Add scope write_merchant_managed_fulfillment_orders and re-authorize the app.»

If you are going through other messages from the module, there is also the write-up on «No hay datos de Shopify disponibles para crear el pedido de venta», with its condition in the code and what to do.

How FlexigoTech can help

FlexigoTech implements Odoo 17, 18, 19 and 20 and builds connectors and custom integrations. If you work with the connector and want someone to review the connection to your Shopify store with you, get in touch from the module page.

Keep reading

What the Pull Stock button does in the Shopify connector for OdooWhat the Pull Stock button does in the Shopify connector for Odoo: when it shows, what it checks, what changes in your stock and which error it can raise.The 'is now the primary location' notice in the Shopify connector for OdooWhat the 'is now the primary location' notice in the Shopify connector for Odoo means, when it appears and how to change the primary location.Shopify Connector error: no payload to create the sales orderWhat the Shopify Connector for Odoo message means when you press Create Sale Order on an order with no stored data, when it appears and how to fix it.
Checked in the connector's source code (version 20.0) and the linked sources

Sources