Is PCD Level 2 approval actually required for shopifyqlQuery when fetching only aggregate metrics like net_sales (no row-level customer data)?
If yes — what does it take to move PCD status from “Draft” to “Approved”? I answered “No” to “do you log access to personal data” and “do you have a security incident response policy” — does that block approval?
The error says read_reports scope is required, but my understanding is read_reports is for saved Shopify reports, while read_analytics is for shopifyqlQuery. Which scope is actually correct for shopifyqlQuery?
This looks like expected behaviour for shopifyqlQuery at the moment. The field itself requires the read_reports access scope, and it does require Level 2 access to customer data including name, address, phone, and email fields:
There’s also some broader context on requesting protected customer data access here:
So even though your ShopifyQL query is only asking for aggregate sales metrics, the access check is applied to the shopifyqlQuery field itself. read_analytics wouldn’t satisfy that specific field requirement, so you’ll want read_reports plus approved Level 2 PCD access for those customer data fields.
If the PCD status is still showing as Draft in the Partner Dashboard, that likely means the request hasn’t been fully submitted/approved for the app yet. I can’t confirm from here whether a specific questionnaire answer is blocking approval, but the access will need to be approved on that app before this query will work.