collectionAddProductsV2
Requires access scope. Also: The user must have a permission to add products to a collection.
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.
Arguments
- •ID!required
The ID of the collection that's being updated.
- Anchor to productIdsproduct•
Ids [ID!]!required The IDs of the products that are being added to the collection. If the collection's sort order is manual, the products will be added in the order in which they are provided.
Anchor to CollectionAddProductsV2Payload returnsCollectionAddProductsV2Payload returns
- •
The asynchronous job adding the products.
- Anchor to userErrorsuser•
Errors The list of errors that occurred from executing the mutation.
- Add a product to a non-existing collection
- Add a product to a smart collection
- Add products that already belong to the specified collection
- Add products that don't exist to an existing collection
- Add products to an existing collection
- collectionAddProductsV2 reference
Examples
mutation collectionAddProductsV2($id: ID!, $productIds: [ID!]!) {
collectionAddProductsV2(id: $id, productIds: $productIds) {
job {
done
id
}
userErrors {
field
message
}
}
}
curl -X POST \
https://your-development-store.myshopify.com/admin/api/2024-04/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {access_token}' \
-d '{
"query": "mutation collectionAddProductsV2($id: ID!, $productIds: [ID!]!) { collectionAddProductsV2(id: $id, productIds: $productIds) { job { done id } userErrors { field message } } }",
"variables": {
"id": "gid://shopify/Collection/-1",
"productIds": [
"gid://shopify/Product/108828309"
]
}
}'
const { admin } = await authenticate.admin(request);
const response = await admin.graphql(
`#graphql
mutation collectionAddProductsV2($id: ID!, $productIds: [ID!]!) {
collectionAddProductsV2(id: $id, productIds: $productIds) {
job {
done
id
}
userErrors {
field
message
}
}
}`,
{
variables: {
"id": "gid://shopify/Collection/-1",
"productIds": [
"gid://shopify/Product/108828309"
]
},
},
);
const data = await response.json();
const client = new shopify.clients.Graphql({session});
const data = await client.query({
data: {
"query": `mutation collectionAddProductsV2($id: ID!, $productIds: [ID!]!) {
collectionAddProductsV2(id: $id, productIds: $productIds) {
job {
done
id
}
userErrors {
field
message
}
}
}`,
"variables": {
"id": "gid://shopify/Collection/-1",
"productIds": [
"gid://shopify/Product/108828309"
]
},
},
});
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
mutation collectionAddProductsV2($id: ID!, $productIds: [ID!]!) {
collectionAddProductsV2(id: $id, productIds: $productIds) {
job {
done
id
}
userErrors {
field
message
}
}
}
QUERY
variables = {
"id": "gid://shopify/Collection/-1",
"productIds": ["gid://shopify/Product/108828309"]
}
response = client.query(query: query, variables: variables)