All things Shopify and commerce
In the latest versions of the Shopify Admin GraphQL API, including versions beyond 2024-01, some fields and methods for creating and managing product variants, pricing, and inventory may have been restructured or moved to different endpoints or mutations. Here’s how you can manage products with variants, pricing, and inventory using the most recent Shopify API.
In the latest API versions, creating a product and its variants may require a more structured approach, potentially involving multiple steps or different mutations. Below is an approach using the productCreate mutation followed by the productVariantCreate mutation to set up variants:
First, create a base product without variants using the productCreate mutation:
mutation {
productCreate(input: {
title: "Example Product"
descriptionHtml: "<strong>Good product!</strong>"
productType: "Clothing"
vendor: "Example Vendor"
}) {
product {
id
title
}
userErrors {
field
message
}
}
}
What about the default variant? for example if i want to create a simple product in shopify (without any variants) how can i set the price, inventory for them? is there any API ?
NOTE: if i use the productVariantCreate API to set price and inventory for simple products i got below error from graphql api.. it is working fine for variants.. so how can i set price, inventory for simple products (product without options) ? please help..
"userErrors": [
{
"field": null,
"message": "The variant 'Default Title' already exists."
}
]
Hello I am stuck on same situation, they don't give us documentation for how to add price in product
https://shopify.dev/docs/api/admin-graphql/2024-04/mutations/productCreate
If you resolve this please share you answer
After a Long struggle I found a solution ufff,, I don't know why shopify API it's too hard, make it simple add regular and compare price, any way here is solution
const productCreatePrice = await client.query({
data:{
query: mutation productVariantsBulkCreate($productId: ID!,$strategy: ProductVariantsBulkCreateStrategy, $variants: [ProductVariantsBulkInput!]!) {
productVariantsBulkCreate(productId: $productId,strategy: $strategy, variants: $variants) {
product {
id
}
productVariants {
id
metafields(first: 1) {
edges {
node {
namespace
key
value
}
}
}
}
userErrors {
field
message
}
}
},
variables:{
productId: '<--ADD-RETURN-PRODUCT-ID-HERE-->',
strategy: "REMOVE_STANDALONE_VARIANT",
variants: [
{
inventoryItem: {
sku: `[IS UP TO YOU]`
},
inventoryPolicy: "CONTINUE",
price: '<--HERE-PRICE-->'
}
]
}
}
})
Thanks so much for this - I spent way too long trying to work this out before finding your solution. Working well for me. Thanks again.
welcome same I spent a lot of time on this.
Dropshipping, a high-growth, $226 billion-dollar industry, remains a highly dynamic bus...
By JasonH Nov 27, 2024Hey Community! It’s time to share some appreciation and celebrate what we have accomplis...
By JasonH Nov 14, 2024In today’s interview, we sat down with @BSS-Commerce to discuss practical strategies f...
By JasonH Nov 13, 2024