Anchor to section titled 'undefined'

quantityRulesAdd
mutation

Requires write_products access scope. Also: The user must have a permission to add quantity rules to a price list.

Creates or updates existing quantity rules on a price list. You can use the quantityRulesAdd mutation to set order level minimums, maximumums and increments for specific product variants.


Anchor to priceListId
priceListId
required

The ID of the price list to which the quantity rules will be added or updated.

The list of quantity rules to add or update in the price list.


Was this section helpful?

The list of quantity rules that were added to or updated in the price list.

The list of errors that occurred from executing the mutation.


Was this section helpful?

Examples

Hide code
DescriptionCopy
mutation quantityRulesAdd($priceListId: ID!, $quantityRules: [QuantityRuleInput!]!) {
  quantityRulesAdd(priceListId: $priceListId, quantityRules: $quantityRules) {
    userErrors {
      field
      code
      message
    }
    quantityRules {
      minimum
      maximum
      increment
      isDefault
      originType
      productVariant {
        id
      }
    }
  }
}
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 quantityRulesAdd($priceListId: ID!, $quantityRules: [QuantityRuleInput!]!) { quantityRulesAdd(priceListId: $priceListId, quantityRules: $quantityRules) { userErrors { field code message } quantityRules { minimum maximum increment isDefault originType productVariant { id } } } }",
 "variables": {
    "priceListId": "gid://shopify/PriceList/155157792",
    "quantityRules": [
      {
        "variantId": "gid://shopify/ProductVariant/138327650",
        "minimum": 1,
        "maximum": null,
        "increment": 1
      },
      {
        "variantId": "gid://shopify/ProductVariant/113711323",
        "minimum": 5,
        "maximum": 25,
        "increment": 5
      }
    ]
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  mutation quantityRulesAdd($priceListId: ID!, $quantityRules: [QuantityRuleInput!]!) {
    quantityRulesAdd(priceListId: $priceListId, quantityRules: $quantityRules) {
      userErrors {
        field
        code
        message
      }
      quantityRules {
        minimum
        maximum
        increment
        isDefault
        originType
        productVariant {
          id
        }
      }
    }
  }`,
  {
    variables: {
      "priceListId": "gid://shopify/PriceList/155157792",
      "quantityRules": [
        {
          "variantId": "gid://shopify/ProductVariant/138327650",
          "minimum": 1,
          "maximum": null,
          "increment": 1
        },
        {
          "variantId": "gid://shopify/ProductVariant/113711323",
          "minimum": 5,
          "maximum": 25,
          "increment": 5
        }
      ]
    },
  },
);

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 quantityRulesAdd($priceListId: ID!, $quantityRules: [QuantityRuleInput!]!) {
    quantityRulesAdd(priceListId: $priceListId, quantityRules: $quantityRules) {
      userErrors {
        field
        code
        message
      }
      quantityRules {
        minimum
        maximum
        increment
        isDefault
        originType
        productVariant {
          id
        }
      }
    }
  }
QUERY

variables = {
  "priceListId": "gid://shopify/PriceList/155157792",
  "quantityRules": [{"variantId"=>"gid://shopify/ProductVariant/138327650", "minimum"=>1, "maximum"=>nil, "increment"=>1}, {"variantId"=>"gid://shopify/ProductVariant/113711323", "minimum"=>5, "maximum"=>25, "increment"=>5}]
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `mutation quantityRulesAdd($priceListId: ID!, $quantityRules: [QuantityRuleInput!]!) {
      quantityRulesAdd(priceListId: $priceListId, quantityRules: $quantityRules) {
        userErrors {
          field
          code
          message
        }
        quantityRules {
          minimum
          maximum
          increment
          isDefault
          originType
          productVariant {
            id
          }
        }
      }
    }`,
    "variables": {
      "priceListId": "gid://shopify/PriceList/155157792",
      "quantityRules": [
        {
          "variantId": "gid://shopify/ProductVariant/138327650",
          "minimum": 1,
          "maximum": null,
          "increment": 1
        },
        {
          "variantId": "gid://shopify/ProductVariant/113711323",
          "minimum": 5,
          "maximum": 25,
          "increment": 5
        }
      ]
    },
  },
});
use Shopify\Clients\Graphql;

$client = new Graphql("your-development-store.myshopify.com", $accessToken);
$query = <<<QUERY
  mutation quantityRulesAdd($priceListId: ID!, $quantityRules: [QuantityRuleInput!]!) {
    quantityRulesAdd(priceListId: $priceListId, quantityRules: $quantityRules) {
      userErrors {
        field
        code
        message
      }
      quantityRules {
        minimum
        maximum
        increment
        isDefault
        originType
        productVariant {
          id
        }
      }
    }
  }
QUERY;

$variables = [
  "priceListId" => "gid://shopify/PriceList/155157792",
  "quantityRules" => [{"variantId"=>"gid://shopify/ProductVariant/138327650", "minimum"=>1, "maximum"=>nil, "increment"=>1}, {"variantId"=>"gid://shopify/ProductVariant/113711323", "minimum"=>5, "maximum"=>25, "increment"=>5}],
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "priceListId": "gid://shopify/PriceList/155157792",
  "quantityRules": [
    {
      "variantId": "gid://shopify/ProductVariant/138327650",
      "minimum": 1,
      "maximum": null,
      "increment": 1
    },
    {
      "variantId": "gid://shopify/ProductVariant/113711323",
      "minimum": 5,
      "maximum": 25,
      "increment": 5
    }
  ]
}
Hide code
Response
JSON
{
  "quantityRulesAdd": {
    "userErrors": [],
    "quantityRules": [
      {
        "minimum": 1,
        "maximum": null,
        "increment": 1,
        "isDefault": true,
        "originType": "FIXED",
        "productVariant": {
          "id": "gid://shopify/ProductVariant/138327650"
        }
      },
      {
        "minimum": 5,
        "maximum": 25,
        "increment": 5,
        "isDefault": false,
        "originType": "FIXED",
        "productVariant": {
          "id": "gid://shopify/ProductVariant/113711323"
        }
      }
    ]
  }
}