I’m developing a Shopify custom UI extension app and encountering an issue where the app scopes (read_products, read_customers) are not being recognized by Shopify, even though I’ve defined them in my configuration files. This is causing an “Access denied for customer field. Required access: read_customers access scope” error when querying customer data in GraphiQL.
I have received → Access denied for customer field. Required access: read_customers access scope.
How to use HTML elements and CSS styling in a custom UI extension. I have tried using a simple “div” element. When I’m running that code locally. I have received “unsupported component: div”
If the app has installed already on the shop and you’re getting that “required access” error, it’s likely that the access scopes didn’t pass correctly. I’d double check to see what access scopes your app has to check which ones were passed when the app was installed.
If you added any scopes after the initial installation, you do need to navigate back to your app’s page in the Shopify admin in order to trigger a reauthorization so that the new scopes get added, so it’s possible that may be what’s happening here.
Im using Customer account UI extensions and tried Remix app template also. I have received the same problem.
For the shopify.app.toml file, I have added the scope like →
scopes = “read_products,read_customers”
Again I have create and installed the app in shopify dev-store. Now I can see that scopes values in Shopify partners-> my app-> API Access.
Required scopes
read_customers
read_products
But then i can’t access the customer data.
const {query, authenticatedAccount} = useApi();
const customer= useSubscription(authenticatedAccount.customer);
I tried this, but i get only customer’s ID, not other data.
For the HTML/CSS → You mean, I can’t use the HTML elements directly on that Customer account UI extension?
I have implemented this method and was able to successfully retrieve the first_name and last_name fields. However, I was unable to fetch the other field values. The response returned the error: 'Field must have selection.
You can also try with the customer_read_customer and customer_read_orders access scopes, to see if they make a change. Just remember to re-open your app and accept the new access scopes your app will request.
I was able to successfully fetch both order and customer details.
Now, I have another question regarding the UI. In your previous response, you mentioned that we cannot use standard HTML and CSS within the UI extension.
However, I would like to implement a customizable interface on that page — for example, a tabbed layout with Tab 1 displaying the user list and Tab 2 showing the order list.
So, what would be the recommended approach to implement such a UI?
Can I create a custom tabbed interface within the existing framework, or am I limited to using only the predefined Customer Account UI extensions?
I’m currently integrating the Razorpay payment method with my Shopify store. When I click the ‘Install’ button, I’m redirected to the Razorpay dashboard. I’ve completed all the required steps — including account creation, basic details, and KYC verification — except for the ‘Collect Payments’ step.
However, I selected ‘Test Mode’ at that step and received my Razorpay Key ID and Secret, which I’ve downloaded. Despite this, Shopify still displays the ‘Install Razorpay’ prompt on the payments page, as if it hasn’t been installed.
Could you please help me understand why Razorpay isn’t showing as installed in Shopify even after completing these steps?