Returns a ProductOperation resource by ID.

This can be used to query the ProductSetOperation, using the ID that was returned when the product was created or updated by the ProductSet mutation.

The status field indicates whether the operation is CREATED, ACTIVE, or COMPLETE.

The product field provides the details of the created or updated product.

For the ProductSetOperation, the userErrors field provides mutation errors that occurred during the operation.


Anchor to id
id
required

The ID of the ProductOperation to return.


Was this section helpful?

Anchor to ProductOperation
ProductOperation
Access requirements

An entity that represents details of an asynchronous operation on a product.


Was this section helpful?
Hide code
Copy
query productSetOperation($id: ID!) {
  productOperation(id: $id) {
    ... on ProductSetOperation {
      id
      status
      product {
        id
      }
      userErrors {
        field
        message
        code
      }
    }
  }
}
curl -X POST \
https://your-development-store.myshopify.com/admin/api/2024-07/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {access_token}' \
-d '{
"query": "query productSetOperation($id: ID!) { productOperation(id: $id) { ... on ProductSetOperation { id status product { id } userErrors { field message code } } } }",
 "variables": {
    "id": "gid://shopify/ProductSetOperation/824846712"
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  query productSetOperation($id: ID!) {
    productOperation(id: $id) {
      ... on ProductSetOperation {
        id
        status
        product {
          id
        }
        userErrors {
          field
          message
          code
        }
      }
    }
  }`,
  {
    variables: {
      "id": "gid://shopify/ProductSetOperation/824846712"
    },
  },
);

const data = await response.json();
session = ShopifyAPI::Auth::Session.new(
  shop: "your-development-store.myshopify.com",
  access_token: access_token
)
client = ShopifyAPI::Clients::Graphql::Admin.new(
  session: session
)

query = <<~QUERY
  query productSetOperation($id: ID!) {
    productOperation(id: $id) {
      ... on ProductSetOperation {
        id
        status
        product {
          id
        }
        userErrors {
          field
          message
          code
        }
      }
    }
  }
QUERY

variables = {
  "id": "gid://shopify/ProductSetOperation/824846712"
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `query productSetOperation($id: ID!) {
      productOperation(id: $id) {
        ... on ProductSetOperation {
          id
          status
          product {
            id
          }
          userErrors {
            field
            message
            code
          }
        }
      }
    }`,
    "variables": {
      "id": "gid://shopify/ProductSetOperation/824846712"
    },
  },
});
use Shopify\Clients\Graphql;

$client = new Graphql("your-development-store.myshopify.com", $accessToken);
$query = <<<QUERY
  query productSetOperation($id: ID!) {
    productOperation(id: $id) {
      ... on ProductSetOperation {
        id
        status
        product {
          id
        }
        userErrors {
          field
          message
          code
        }
      }
    }
  }
QUERY;

$variables = [
  "id" => "gid://shopify/ProductSetOperation/824846712",
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "id": "gid://shopify/ProductSetOperation/824846712"
}
Hide code
Response
JSON
{
  "productOperation": {
    "id": "gid://shopify/ProductSetOperation/824846712",
    "status": "COMPLETE",
    "product": {
      "id": "gid://shopify/Product/20995642"
    },
    "userErrors": []
  }
}