Job - admin-graphql - OBJECT
Version: 2024-01
Description:
A job corresponds to some long running task that the client should poll for status.
Access Scopes
Fields
-
done:
Boolean! -
This indicates if the job is still queued or has been run.
-
id:
ID! -
A globally-unique ID that's returned when running an asynchronous mutation.
-
query:
QueryRoot -
This field will only resolve once the job is done. Can be used to ask for object(s) that have been changed by the job.
Connections
Related queries
-
job
Returns a Job resource by ID. Used to check the status of internal jobs and any applicable changes.
Related mutations
-
collectionAddProductsV2
Asynchronously adds a set of products to a given collection. It can take a long time to run. Instead of returning a collection, it returns a job which should be polled.
-
collectionRemoveProducts
Removes a set of products from a given collection. The mutation can take a long time to run. Instead of returning an updated collection the mutation returns a job, which should be [polled](https://shopify.dev/api/admin-graphql/latest/queries/job). For use with manual collections only.
-
collectionReorderProducts
Asynchronously reorders a set of products within a specified collection. Instead of returning an updated collection, this mutation returns a job, which should be [polled](https://shopify.dev/api/admin-graphql/latest/queries/job). The [`Collection.sortOrder`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-collection-sortorder) must be `MANUAL`. Displaced products will have their position altered in a consistent manner, with no gaps.
-
collectionUpdate
Updates a collection.
-
customerMerge
Merges two customers.
-
deliveryProfileRemove
Enqueue the removal of a delivery profile.
-
discountAutomaticBulkDelete
Asynchronously delete automatic discounts in bulk if a `search` or `saved_search_id` argument is provided or if a
maximum discount threshold is reached (1,000). Otherwise, deletions will occur inline.
**Warning:** All automatic discounts will be deleted if a blank `search` argument is provided.
-
discountCodeBulkActivate
Asynchronously activate code discounts in bulk using a search query, a saved search ID, or a list of code discount IDs.
-
discountCodeBulkDeactivate
Asynchronously deactivate code discounts in bulk using a search query, a saved search ID, or a list of code discount IDs.
-
discountCodeBulkDelete
Asynchronously delete code discounts in bulk using a search query, a saved search ID, or a list of code discount IDs.
-
discountCodeRedeemCodeBulkDelete
Asynchronously delete discount redeem codes in bulk. Specify the redeem codes to delete by providing a
search query, a saved search ID, or a list of redeem code IDs.
-
draftOrderBulkAddTags
Adds tags to multiple draft orders.
-
draftOrderBulkDelete
Deletes multiple draft orders.
-
draftOrderBulkRemoveTags
Removes tags from multiple draft orders.
-
fulfillmentOrdersReleaseHolds
Releases the fulfillment holds on a list of fulfillment orders.
-
marketingActivitiesDeleteAllExternal
Deletes all external marketing activities. Deletion is performed by a background job, as it may take a bit of time to complete if a large number of activities are to be deleted. Attempting to create or modify external activities before the job has completed will result in the create/update/upsert mutation returning an error.
-
metafieldDefinitionUpdate
Updates a metafield definition.
-
metaobjectBulkDelete
Asynchronously delete metaobjects and their associated metafields in bulk.
-
orderCancel
Cancels an order.
-
orderCreateMandatePayment
Creates a payment for an order by mandate.
-
productDeleteAsync
Deletes a product asynchronously, including all associated variants and media.
-
productDuplicateAsync
Asynchronously duplicate a single product.
-
productDuplicate
Duplicates a product.
If you need to duplicate a large product, such as one that has many
[variants](https://shopify.dev/api/admin-graphql/latest/input-objects/ProductVariantInput)
that are active at several
[locations](https://shopify.dev/api/admin-graphql/latest/input-objects/InventoryLevelInput),
you might encounter timeout errors.
To avoid these timeout errors, you can instead duplicate the product asynchronously.
In API version 2024-10 and higher, include `synchronous: false` argument in this mutation to perform the duplication asynchronously.
In API version 2024-07 and lower, use the asynchronous [`ProductDuplicateAsyncV2`](https://shopify.dev/api/admin-graphql/2024-07/mutations/productDuplicateAsyncV2).
-
productReorderImages
Asynchronously reorders a set of images for a given product.
-
productReorderMedia
Asynchronously reorders the media attached to a product.
-
urlRedirectBulkDeleteAll
Asynchronously delete [URL redirects](https://shopify.dev/api/admin-graphql/latest/objects/UrlRedirect) in bulk.
-
urlRedirectBulkDeleteByIds
Asynchronously delete [URLRedirect](https://shopify.dev/api/admin-graphql/latest/objects/UrlRedirect)
objects in bulk by IDs.
Learn more about [URLRedirect](https://help.shopify.com/en/manual/online-store/menus-and-links/url-redirect)
objects.
-
urlRedirectBulkDeleteBySavedSearch
Asynchronously delete redirects in bulk.
-
urlRedirectBulkDeleteBySearch
Asynchronously delete redirects in bulk.
-
urlRedirectImportSubmit
Submits a `UrlRedirectImport` request to be processed.
The `UrlRedirectImport` request is first created with the [`urlRedirectImportCreate`](https://shopify.dev/api/admin-graphql/latest/mutations/urlRedirectImportCreate) mutation.
Related Unions
Examples
-
Get the status of a queued collectionUpdate job
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query { job(id: \\\"gid://shopify/Job/88a2374a-ab57-48d7-8230-2ece475e3848\\\") { id done } }\"\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: `query {\n job(id: \"gid://shopify/Job/88a2374a-ab57-48d7-8230-2ece475e3848\") {\n id\n done\n }\n }`,\n});\n"
Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query {\n job(id: \"gid://shopify/Job/88a2374a-ab57-48d7-8230-2ece475e3848\") {\n id\n done\n }\n }\nQUERY\n\nresponse = client.query(query: query)\n"
PHP example: "use Shopify\\Clients\\Graphql;\n\n$client = new Graphql(\"your-development-store.myshopify.com\", $accessToken);\n$query = <<<QUERY\n query {\n job(id: \"gid://shopify/Job/88a2374a-ab57-48d7-8230-2ece475e3848\") {\n id\n done\n }\n }\nQUERY;\n\n$response = $client->query([\"query\" => $query]);\n"
Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query {\n job(id: \"gid://shopify/Job/88a2374a-ab57-48d7-8230-2ece475e3848\") {\n id\n done\n }\n }`,\n);\n\nconst data = await response.json();\n"
Graphql query: "query {\n job(id: \"gid://shopify/Job/88a2374a-ab57-48d7-8230-2ece475e3848\") {\n id\n done\n }\n}"
input: null
response: {
"data": {
"job": {
"id": "gid://shopify/Job/88a2374a-ab57-48d7-8230-2ece475e3848",
"done": false
}
}
}