Our pos.purchase.post.block.render POS UI extension requires access to the order ID, which it gets using the Order API.
This was working fine on 2025-07 up until the morning of 1 October. Suddenly, the order API started returning undefined.
I figured this might have been due to the release of 2025-10, so I went ahead and upgraded the extension, including migrating to preact, the shopify global etc.
However, it seems the shopify global is not returning any of the documented APIs either.
Here is the very simple extension code.
import "@shopify/ui-extensions/preact";
import { render } from "preact";
export default function extension() {
render(<Extension />, document.body);
}
function Extension() {
console.log({ shopify });
return (
<s-pos-block>
<s-text>Example</s-text>
</s-pos-block>
);
}
After the order is placed, the extension block renders and the following is output to the console. Note that none of the APIs are actually available on the object.
I thought it could be due to permissions (which the app does have), but then if that were the case, simple APIs like the Connectivity API should still be appearing, but even that is gone.
First, I’m sorry you’re encountering this issue. I took a look, and am unable to reproduce the issue on any of unstable, 2025-07, or 2025-10. We maintain support for all ui-extensions versions back to 2024-04, so upgrading to 2025-10, while recommended, is not required at this time!
If you create a fresh app via shopify app init, does the problem persist? If so, would you be willing to share which POS version you’re testing against? You can find this in the More menu → Support screen. Your app and extensions’ package.json and configuration .toml files may also have useful clues.
It turns out the original issue which began on 1 October was that customerId on the Order API is now always returning undefined. I’m not sure why this is, as the app has the read_customers scope, and nothing changed around this date.
Even with a fresh app, it’s no longer possible to get anything in the customerId attribute.
Because I hadn’t properly diagnosed the above, I went ahead with upgrading the extension, which ran into the issue in the title of this thread. You are right that a brand new app does not seem to have this issue. My app was migrated from the Partner Dashboard, so it could have been something to do with that.
I went ahead and created a fresh app in the Dev Dashboard, and updated my code to stop using customerId from the Order API, which has fixed it.
It would be helpful to understand why customerId always returns undefined, even when the scopes look correct, and the order definitely has a customer attached, but perhaps that’s for a different thread.
It turns out the original issue which began on 1 October was that customerId on the Order API is now always returning undefined. I’m not sure why this is, as the app has the read_customers scope, and nothing changed around this date.
We’re also running into the same issue with our POS app (2025-01 API version).
@Nathan_Oliveira do you know whether this was an intentional change? Our extension depends on customerId to render so it’s affecting all our customers. I think we may be able to work around it but I would not expect such a breaking change on a stable API