Hey everyone,
I’m currently facing an issue with a Shopify app. I’m trying to retrieve all collections using the Shopify BulkOperation query. The first query runs successfully, but the status of the second query shows as “FAILED.” Oddly, when I run these queries on the GraphQL Explorer, everything works perfectly.
Here are the results I received:
Data : {
id: 'gid://shopify/BulkOperation/1233712316123123',
status: 'CREATED',
url: null
}
Custom GetResult: {
node: {
id: 'gid://shopify/BulkOperation/1233712316123123',
status: 'FAILED',
url: null
}
}
I would appreciate any insights or suggestions you may have on why the second query is failing. Additionally, if you need more information, I can provide the complete code for the affected page.
import { GraphqlQueryError } from "@shopify/shopify-api";
import shopify from "./shopify.js";
import { json } from "express";
export default async function BulkCollection(session, dataRecieve) {
const client = new shopify.api.clients.Graphql({ session });
const BulkCollection_Query1 = `
mutation {
bulkOperationRunQuery(
query: """
{
collections {
edges {
node {
id
title
descriptionHtml
sortOrder
ruleSet {
rules {
column
condition
relation
}
}
}
}
}
}
"""
) {
bulkOperation {
id
status
url
}
userErrors {
field
message
}
}
}
`;
const dataGet = await client.query({
data: { query: BulkCollection_Query1 }
});
console.log("Data : ", dataGet?.body?.data?.bulkOperationRunQuery?.bulkOperation);
const id = dataGet?.body?.data?.bulkOperationRunQuery?.bulkOperation?.id;
if (id && dataGet?.body?.data?.bulkOperationRunQuery?.bulkOperation.status == "CREATED") {
const BulkCollection_Query2 = `{
node(id: "${id}") {
... on BulkOperation {
id
status
url
}
}
}`;
const dataGetResult = await client.query({
data: BulkCollection_Query2
});
console.log("Custom GetResult:", dataGetResult?.body?.data);
}
else {
console.error("Bulk operation creation failed:", dataGet?.body?.data?.bulkOperationRunQuery);
return null;
}
}
Thanks in advance!