Anchor to section titled 'undefined'

priceRuleUpdate
mutation
deprecated

Requires write_price_rules access scope.

Updates a price rule using its ID and an input. Use discountCodeBasicUpdate instead.


Anchor to id
id
required

ID of the price rule to update.

The input fields to update a price rule.

The input fields to update the discount code of the price rule.


Was this section helpful?

The updated price rule.

The updated discount code.

The list of errors that occurred from executing the mutation.

The list of errors that occurred from executing the mutation. Use priceRuleUserErrors instead.


Was this section helpful?

Examples

Hide code
Copy
mutation priceRuleUpdate($id: ID!, $priceRule: PriceRuleInput!, $priceRuleDiscountCode: PriceRuleDiscountCodeInput) {
  priceRuleUpdate(id: $id, priceRule: $priceRule, priceRuleDiscountCode: $priceRuleDiscountCode) {
    priceRuleUserErrors {
      field
      message
      code
    }
    priceRule {
      id
      title
      allocationMethod
      target
      validityPeriod {
        start
        end
      }
    }
  }
}
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 priceRuleUpdate($id: ID!, $priceRule: PriceRuleInput!, $priceRuleDiscountCode: PriceRuleDiscountCodeInput) { priceRuleUpdate(id: $id, priceRule: $priceRule, priceRuleDiscountCode: $priceRuleDiscountCode) { priceRuleUserErrors { field message code } priceRule { id title allocationMethod target validityPeriod { start end } } } }",
 "variables": {
    "id": "gid://shopify/PriceRule/1057371201",
    "priceRule": {
      "title": "New Title",
      "allocationMethod": "ACROSS",
      "target": "LINE_ITEM",
      "validityPeriod": {
        "start": "2016-08-29T12:00:00-04:00",
        "end": null
      }
    }
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  mutation priceRuleUpdate($id: ID!, $priceRule: PriceRuleInput!, $priceRuleDiscountCode: PriceRuleDiscountCodeInput) {
    priceRuleUpdate(id: $id, priceRule: $priceRule, priceRuleDiscountCode: $priceRuleDiscountCode) {
      priceRuleUserErrors {
        field
        message
        code
      }
      priceRule {
        id
        title
        allocationMethod
        target
        validityPeriod {
          start
          end
        }
      }
    }
  }`,
  {
    variables: {
      "id": "gid://shopify/PriceRule/1057371201",
      "priceRule": {
        "title": "New Title",
        "allocationMethod": "ACROSS",
        "target": "LINE_ITEM",
        "validityPeriod": {
          "start": "2016-08-29T12:00:00-04:00",
          "end": null
        }
      }
    },
  },
);

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 priceRuleUpdate($id: ID!, $priceRule: PriceRuleInput!, $priceRuleDiscountCode: PriceRuleDiscountCodeInput) {
    priceRuleUpdate(id: $id, priceRule: $priceRule, priceRuleDiscountCode: $priceRuleDiscountCode) {
      priceRuleUserErrors {
        field
        message
        code
      }
      priceRule {
        id
        title
        allocationMethod
        target
        validityPeriod {
          start
          end
        }
      }
    }
  }
QUERY

variables = {
  "id": "gid://shopify/PriceRule/1057371201",
  "priceRule": {
    "title": "New Title",
    "allocationMethod": "ACROSS",
    "target": "LINE_ITEM",
    "validityPeriod": {
      "start": "2016-08-29T12:00:00-04:00",
      "end": null
    }
  }
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `mutation priceRuleUpdate($id: ID!, $priceRule: PriceRuleInput!, $priceRuleDiscountCode: PriceRuleDiscountCodeInput) {
      priceRuleUpdate(id: $id, priceRule: $priceRule, priceRuleDiscountCode: $priceRuleDiscountCode) {
        priceRuleUserErrors {
          field
          message
          code
        }
        priceRule {
          id
          title
          allocationMethod
          target
          validityPeriod {
            start
            end
          }
        }
      }
    }`,
    "variables": {
      "id": "gid://shopify/PriceRule/1057371201",
      "priceRule": {
        "title": "New Title",
        "allocationMethod": "ACROSS",
        "target": "LINE_ITEM",
        "validityPeriod": {
          "start": "2016-08-29T12:00:00-04:00",
          "end": null
        }
      }
    },
  },
});
use Shopify\Clients\Graphql;

$client = new Graphql("your-development-store.myshopify.com", $accessToken);
$query = <<<QUERY
  mutation priceRuleUpdate($id: ID!, $priceRule: PriceRuleInput!, $priceRuleDiscountCode: PriceRuleDiscountCodeInput) {
    priceRuleUpdate(id: $id, priceRule: $priceRule, priceRuleDiscountCode: $priceRuleDiscountCode) {
      priceRuleUserErrors {
        field
        message
        code
      }
      priceRule {
        id
        title
        allocationMethod
        target
        validityPeriod {
          start
          end
        }
      }
    }
  }
QUERY;

$variables = [
  "id" => "gid://shopify/PriceRule/1057371201",
  "priceRule" => [
    "title" => "New Title",
    "allocationMethod" => "ACROSS",
    "target" => "LINE_ITEM",
    "validityPeriod" => [
      "start" => "2016-08-29T12:00:00-04:00",
      "end" => null,
    ],
  ],
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "id": "gid://shopify/PriceRule/1057371201",
  "priceRule": {
    "title": "New Title",
    "allocationMethod": "ACROSS",
    "target": "LINE_ITEM",
    "validityPeriod": {
      "start": "2016-08-29T12:00:00-04:00",
      "end": null
    }
  }
}
Hide code
Response
JSON
{
  "priceRuleUpdate": {
    "priceRuleUserErrors": [],
    "priceRule": {
      "id": "gid://shopify/PriceRule/1057371201",
      "title": "New Title",
      "allocationMethod": "ACROSS",
      "target": "LINE_ITEM",
      "validityPeriod": {
        "start": "2016-08-29T16:00:00Z",
        "end": null
      }
    }
  }
}