Anchor to quantityPricingByVariantUpdatequantity
quantityPricingByVariantUpdate
mutation
Requires access scope. Also: The user must have permission to create and edit catalogs, and the shop requires B2B features enabled.
Updates quantity pricing on a price list. You can use the 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.
Anchor to Arguments
Arguments
- Anchor to inputinput•
The input data used to update the quantity pricing in the price list.
- Anchor to priceListIdprice•
List Id ID!required The ID of the price list for which quantity pricing will be updated.
Was this section helpful?
Anchor to QuantityPricingByVariantUpdatePayload returnsQuantityPricingByVariantUpdatePayload returns
- Anchor to productVariantsproduct•
Variants The variants for which quantity pricing was created successfully in the price list.
- Anchor to userErrorsuser•
Errors The list of errors that occurred from executing the mutation.
Was this section helpful?
- Configure quantity pricing for a price list
- Configuring invalid quantity pricing returns an error
- quantityPricingByVariantUpdate reference
Examples
1const { admin } = await authenticate.admin(request);23const response = await admin.graphql(4 `#graphql5 mutation quantityPricingByVariantUpdate($priceListId: ID!, $input: QuantityPricingByVariantUpdateInput!, $companyLocationId: ID!) {6 quantityPricingByVariantUpdate(priceListId: $priceListId, input: $input) {7 productVariants {8 id9 contextualPricing(context: {companyLocationId: $companyLocationId}) {10 quantityPriceBreaks(first: 1) {11 nodes {12 minimumQuantity13 price {14 amount15 currencyCode16 }17 }18 }19 quantityRule {20 minimum21 maximum22 increment23 }24 }25 }26 userErrors {27 message28 code29 field30 }31 }32 }`,33 {34 variables: {35 "priceListId": "gid://shopify/PriceList/467640202",36 "companyLocationId": "gid://shopify/CompanyLocation/441870438",37 "input": {38 "quantityPriceBreaksToAdd": [39 {40 "variantId": "gid://shopify/ProductVariant/113711323",41 "price": {42 "amount": 35.0,43 "currencyCode": "USD"44 },45 "minimumQuantity": 1046 }47 ],48 "quantityPriceBreaksToDelete": [],49 "quantityRulesToAdd": [50 {51 "variantId": "gid://shopify/ProductVariant/113711323",52 "minimum": 10,53 "maximum": 100,54 "increment": 555 }56 ],57 "quantityRulesToDeleteByVariantId": [],58 "pricesToAdd": [59 {60 "price": {61 "amount": 40.0,62 "currencyCode": "USD"63 },64 "variantId": "gid://shopify/ProductVariant/113711323"65 }66 ],67 "pricesToDeleteByVariantId": []68 }69 },70 },71);7273const data = await response.json();74
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-04/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();
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": []
}
},
},
});
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)
Input variables
JSON1{2 "priceListId": "gid://shopify/PriceList/467640202",3 "companyLocationId": "gid://shopify/CompanyLocation/441870438",4 "input": {5 "quantityPriceBreaksToAdd": [6 {7 "variantId": "gid://shopify/ProductVariant/113711323",8 "price": {9 "amount": 35,10 "currencyCode": "USD"11 },12 "minimumQuantity": 1013 }14 ],15 "quantityPriceBreaksToDelete": [],16 "quantityRulesToAdd": [17 {18 "variantId": "gid://shopify/ProductVariant/113711323",19 "minimum": 10,20 "maximum": 100,21 "increment": 522 }23 ],24 "quantityRulesToDeleteByVariantId": [],25 "pricesToAdd": [26 {27 "price": {28 "amount": 40,29 "currencyCode": "USD"30 },31 "variantId": "gid://shopify/ProductVariant/113711323"32 }33 ],34 "pricesToDeleteByVariantId": []35 }36}
Response
JSON1{2 "quantityPricingByVariantUpdate": {3 "productVariants": [4 {5 "id": "gid://shopify/ProductVariant/113711323",6 "contextualPricing": {7 "quantityPriceBreaks": {8 "nodes": [9 {10 "minimumQuantity": 10,11 "price": {12 "amount": "35.0",13 "currencyCode": "USD"14 }15 }16 ]17 },18 "quantityRule": {19 "minimum": 10,20 "maximum": 100,21 "increment": 522 }23 }24 }25 ],26 "userErrors": []27 }28}