quantity Pricing By Variant Updatemutation
mutation
2025-01release candidate
Requires
write_products
access scope. Also: The shop has the volume pricing feature enabled.
Updates quantity pricing on a price list. You can use the quantity
mutation to set fixed prices, quantity rules, and quantity price breaks. This mutation does not allow partial successes. If any of the requested resources fail to update, none of the requested resources will be updated. Delete operations are executed before create operations.
Arguments
The input data used to update the quantity pricing in the price list.
The ID of the price list for which quantity pricing will be updated.
Was this section helpful?
QuantityPricingByVariantUpdatePayload returns
The variants for which quantity pricing was created successfully in the price list.
The list of errors that occurred from executing the mutation.
Was this section helpful?
Examples
Hide code
DescriptionCopy
mutation quantityPricingByVariantUpdate($priceListId: ID!, $input: QuantityPricingByVariantUpdateInput!, $companyLocationId: ID!) { quantityPricingByVariantUpdate(priceListId: $priceListId, input: $input) { productVariants { id contextualPricing(context: {companyLocationId: $companyLocationId}) { quantityPriceBreaks(first: 1) { nodes { minimumQuantity price { amount currencyCode } } } quantityRule { minimum maximum increment } } } userErrors { message code field } } }
curl -X POST \ https://your-development-store.myshopify.com/admin/api/2025-01/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "mutation quantityPricingByVariantUpdate($priceListId: ID!, $input: QuantityPricingByVariantUpdateInput!, $companyLocationId: ID!) { quantityPricingByVariantUpdate(priceListId: $priceListId, input: $input) { productVariants { id contextualPricing(context: {companyLocationId: $companyLocationId}) { quantityPriceBreaks(first: 1) { nodes { minimumQuantity price { amount currencyCode } } } quantityRule { minimum maximum increment } } } userErrors { message code field } } }", "variables": { "priceListId": "gid://shopify/PriceList/467640202", "companyLocationId": "gid://shopify/CompanyLocation/441870438", "input": { "quantityPriceBreaksToAdd": [ { "variantId": "gid://shopify/ProductVariant/113711323", "price": { "amount": 35.0, "currencyCode": "USD" }, "minimumQuantity": 10 } ], "quantityPriceBreaksToDelete": [ ], "quantityRulesToAdd": [ { "variantId": "gid://shopify/ProductVariant/113711323", "minimum": 10, "maximum": 100, "increment": 5 } ], "quantityRulesToDeleteByVariantId": [ ], "pricesToAdd": [ { "price": { "amount": 40.0, "currencyCode": "USD" }, "variantId": "gid://shopify/ProductVariant/113711323" } ], "pricesToDeleteByVariantId": [ ] } } }'
const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql mutation quantityPricingByVariantUpdate($priceListId: ID!, $input: QuantityPricingByVariantUpdateInput!, $companyLocationId: ID!) { quantityPricingByVariantUpdate(priceListId: $priceListId, input: $input) { productVariants { id contextualPricing(context: {companyLocationId: $companyLocationId}) { quantityPriceBreaks(first: 1) { nodes { minimumQuantity price { amount currencyCode } } } quantityRule { minimum maximum increment } } } userErrors { message code field } } }`, { variables: { "priceListId": "gid://shopify/PriceList/467640202", "companyLocationId": "gid://shopify/CompanyLocation/441870438", "input": { "quantityPriceBreaksToAdd": [ { "variantId": "gid://shopify/ProductVariant/113711323", "price": { "amount": 35.0, "currencyCode": "USD" }, "minimumQuantity": 10 } ], "quantityPriceBreaksToDelete": [ ], "quantityRulesToAdd": [ { "variantId": "gid://shopify/ProductVariant/113711323", "minimum": 10, "maximum": 100, "increment": 5 } ], "quantityRulesToDeleteByVariantId": [ ], "pricesToAdd": [ { "price": { "amount": 40.0, "currencyCode": "USD" }, "variantId": "gid://shopify/ProductVariant/113711323" } ], "pricesToDeleteByVariantId": [ ] } }, }, ); 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 mutation quantityPricingByVariantUpdate($priceListId: ID!, $input: QuantityPricingByVariantUpdateInput!, $companyLocationId: ID!) { quantityPricingByVariantUpdate(priceListId: $priceListId, input: $input) { productVariants { id contextualPricing(context: {companyLocationId: $companyLocationId}) { quantityPriceBreaks(first: 1) { nodes { minimumQuantity price { amount currencyCode } } } quantityRule { minimum maximum increment } } } userErrors { message code field } } } QUERY variables = { "priceListId": "gid://shopify/PriceList/467640202", "companyLocationId": "gid://shopify/CompanyLocation/441870438", "input": { "quantityPriceBreaksToAdd": [{"variantId"=>"gid://shopify/ProductVariant/113711323", "price"=>{"amount"=>35.0, "currencyCode"=>"USD"}, "minimumQuantity"=>10}], "quantityPriceBreaksToDelete": [], "quantityRulesToAdd": [{"variantId"=>"gid://shopify/ProductVariant/113711323", "minimum"=>10, "maximum"=>100, "increment"=>5}], "quantityRulesToDeleteByVariantId": [], "pricesToAdd": [{"price"=>{"amount"=>40.0, "currencyCode"=>"USD"}, "variantId"=>"gid://shopify/ProductVariant/113711323"}], "pricesToDeleteByVariantId": [] } } response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: { "query": `mutation quantityPricingByVariantUpdate($priceListId: ID!, $input: QuantityPricingByVariantUpdateInput!, $companyLocationId: ID!) { quantityPricingByVariantUpdate(priceListId: $priceListId, input: $input) { productVariants { id contextualPricing(context: {companyLocationId: $companyLocationId}) { quantityPriceBreaks(first: 1) { nodes { minimumQuantity price { amount currencyCode } } } quantityRule { minimum maximum increment } } } userErrors { message code field } } }`, "variables": { "priceListId": "gid://shopify/PriceList/467640202", "companyLocationId": "gid://shopify/CompanyLocation/441870438", "input": { "quantityPriceBreaksToAdd": [ { "variantId": "gid://shopify/ProductVariant/113711323", "price": { "amount": 35.0, "currencyCode": "USD" }, "minimumQuantity": 10 } ], "quantityPriceBreaksToDelete": [ ], "quantityRulesToAdd": [ { "variantId": "gid://shopify/ProductVariant/113711323", "minimum": 10, "maximum": 100, "increment": 5 } ], "quantityRulesToDeleteByVariantId": [ ], "pricesToAdd": [ { "price": { "amount": 40.0, "currencyCode": "USD" }, "variantId": "gid://shopify/ProductVariant/113711323" } ], "pricesToDeleteByVariantId": [ ] } }, }, });
use Shopify\Clients\Graphql; $client = new Graphql("your-development-store.myshopify.com", $accessToken); $query = <<<QUERY mutation quantityPricingByVariantUpdate($priceListId: ID!, $input: QuantityPricingByVariantUpdateInput!, $companyLocationId: ID!) { quantityPricingByVariantUpdate(priceListId: $priceListId, input: $input) { productVariants { id contextualPricing(context: {companyLocationId: $companyLocationId}) { quantityPriceBreaks(first: 1) { nodes { minimumQuantity price { amount currencyCode } } } quantityRule { minimum maximum increment } } } userErrors { message code field } } } QUERY; $variables = [ "priceListId" => "gid://shopify/PriceList/467640202", "companyLocationId" => "gid://shopify/CompanyLocation/441870438", "input" => [ "quantityPriceBreaksToAdd" => [{"variantId"=>"gid://shopify/ProductVariant/113711323", "price"=>{"amount"=>35.0, "currencyCode"=>"USD"}, "minimumQuantity"=>10}], "quantityPriceBreaksToDelete" => [], "quantityRulesToAdd" => [{"variantId"=>"gid://shopify/ProductVariant/113711323", "minimum"=>10, "maximum"=>100, "increment"=>5}], "quantityRulesToDeleteByVariantId" => [], "pricesToAdd" => [{"price"=>{"amount"=>40.0, "currencyCode"=>"USD"}, "variantId"=>"gid://shopify/ProductVariant/113711323"}], "pricesToDeleteByVariantId" => [], ], ]; $response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{ "priceListId": "gid://shopify/PriceList/467640202", "companyLocationId": "gid://shopify/CompanyLocation/441870438", "input": { "quantityPriceBreaksToAdd": [ { "variantId": "gid://shopify/ProductVariant/113711323", "price": { "amount": 35, "currencyCode": "USD" }, "minimumQuantity": 10 } ], "quantityPriceBreaksToDelete": [], "quantityRulesToAdd": [ { "variantId": "gid://shopify/ProductVariant/113711323", "minimum": 10, "maximum": 100, "increment": 5 } ], "quantityRulesToDeleteByVariantId": [], "pricesToAdd": [ { "price": { "amount": 40, "currencyCode": "USD" }, "variantId": "gid://shopify/ProductVariant/113711323" } ], "pricesToDeleteByVariantId": [] } }
Hide code
Response
JSON
{ "quantityPricingByVariantUpdate": { "productVariants": [ { "id": "gid://shopify/ProductVariant/113711323", "contextualPricing": { "quantityPriceBreaks": { "nodes": [ { "minimumQuantity": 10, "price": { "amount": "35.0", "currencyCode": "USD" } } ] }, "quantityRule": { "minimum": 10, "maximum": 100, "increment": 5 } } } ], "userErrors": [] } }