Anchor to section titled 'undefined'

subscriptionContractProductChange
mutation

Requires write_own_subscription_contracts access scope. Also: The user must have manage_orders_information permission.

Allows for the easy change of a Product in a Contract or a Product price change.


The properties of the Product changes.

Anchor to lineId
lineId
required

The gid of the Subscription Line to update.

Anchor to subscriptionContractId
subscriptionContractId
required

The ID of the subscription contract.


Was this section helpful?

The new Subscription Contract object.

The updated Subscription Line.

The list of errors that occurred from executing the mutation.


Was this section helpful?

Examples

Hide code
DescriptionCopy
mutation($contractId: ID!, $lineId: ID!, $variantId: ID!) {
  subscriptionContractProductChange(subscriptionContractId: $contractId, lineId: $lineId, input: {productVariantId: $variantId, currentPrice: 500}) {
    contract {
      id
      updatedAt
    }
    lineUpdated {
      id
      currentPrice {
        amount
      }
      variantId
    }
    userErrors {
      field
      message
      code
    }
  }
}
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($contractId: ID!, $lineId: ID!, $variantId: ID!) { subscriptionContractProductChange(subscriptionContractId: $contractId, lineId: $lineId, input: {productVariantId: $variantId, currentPrice: 500}) { contract { id updatedAt } lineUpdated { id currentPrice { amount } variantId } userErrors { field message code } } }",
 "variables": {
    "contractId": "gid://shopify/SubscriptionContract/593791907",
    "lineId": "gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55",
    "variantId": "gid://shopify/ProductVariant/30322695"
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  mutation($contractId: ID!, $lineId: ID!, $variantId: ID!) {
    subscriptionContractProductChange(subscriptionContractId: $contractId, lineId: $lineId, input: {productVariantId: $variantId, currentPrice: 500}) {
      contract {
        id
        updatedAt
      }
      lineUpdated {
        id
        currentPrice {
          amount
        }
        variantId
      }
      userErrors {
        field
        message
        code
      }
    }
  }`,
  {
    variables: {
      "contractId": "gid://shopify/SubscriptionContract/593791907",
      "lineId": "gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55",
      "variantId": "gid://shopify/ProductVariant/30322695"
    },
  },
);

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($contractId: ID!, $lineId: ID!, $variantId: ID!) {
    subscriptionContractProductChange(subscriptionContractId: $contractId, lineId: $lineId, input: {productVariantId: $variantId, currentPrice: 500}) {
      contract {
        id
        updatedAt
      }
      lineUpdated {
        id
        currentPrice {
          amount
        }
        variantId
      }
      userErrors {
        field
        message
        code
      }
    }
  }
QUERY

variables = {
  "contractId": "gid://shopify/SubscriptionContract/593791907",
  "lineId": "gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55",
  "variantId": "gid://shopify/ProductVariant/30322695"
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `mutation($contractId: ID!, $lineId: ID!, $variantId: ID!) {
      subscriptionContractProductChange(subscriptionContractId: $contractId, lineId: $lineId, input: {productVariantId: $variantId, currentPrice: 500}) {
        contract {
          id
          updatedAt
        }
        lineUpdated {
          id
          currentPrice {
            amount
          }
          variantId
        }
        userErrors {
          field
          message
          code
        }
      }
    }`,
    "variables": {
      "contractId": "gid://shopify/SubscriptionContract/593791907",
      "lineId": "gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55",
      "variantId": "gid://shopify/ProductVariant/30322695"
    },
  },
});
use Shopify\Clients\Graphql;

$client = new Graphql("your-development-store.myshopify.com", $accessToken);
$query = <<<QUERY
  mutation($contractId: ID!, $lineId: ID!, $variantId: ID!) {
    subscriptionContractProductChange(subscriptionContractId: $contractId, lineId: $lineId, input: {productVariantId: $variantId, currentPrice: 500}) {
      contract {
        id
        updatedAt
      }
      lineUpdated {
        id
        currentPrice {
          amount
        }
        variantId
      }
      userErrors {
        field
        message
        code
      }
    }
  }
QUERY;

$variables = [
  "contractId" => "gid://shopify/SubscriptionContract/593791907",
  "lineId" => "gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55",
  "variantId" => "gid://shopify/ProductVariant/30322695",
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "contractId": "gid://shopify/SubscriptionContract/593791907",
  "lineId": "gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55",
  "variantId": "gid://shopify/ProductVariant/30322695"
}
Hide code
Response
JSON
{
  "subscriptionContractProductChange": {
    "contract": {
      "id": "gid://shopify/SubscriptionContract/593791907",
      "updatedAt": "2024-09-12T01:09:12Z"
    },
    "lineUpdated": {
      "id": "gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55",
      "currentPrice": {
        "amount": "500.0"
      },
      "variantId": "gid://shopify/ProductVariant/30322695"
    },
    "userErrors": []
  }
}