Anchor to section titled 'undefined'

quantityPricingByVariantUpdate
mutation

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 quantityPricingByVariantUpdate 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.


The input data used to update the quantity pricing in the price list.

Anchor to priceListId
priceListId
required

The ID of the price list for which quantity pricing will be updated.


Was this section helpful?

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/2024-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": []
  }
}