quantityPricingByVariantUpdate
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.
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.
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.
- Configure quantity pricing for a price list
- Configuring invalid quantity pricing returns an error
- quantityPricingByVariantUpdate reference
Examples
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();
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)