subscription Contract Product Changemutation
Requires write
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.
Arguments
The properties of the Product changes.
The gid of the Subscription Line to update.
The ID of the subscription contract.
SubscriptionContractProductChangePayload returns
The new Subscription Contract object.
The updated Subscription Line.
The list of errors that occurred from executing the mutation.
Code examples for MUTATION: subscriptionContractProductChange
Query Reference for MUTATION: subscriptionContractProductChange
"mutation subscriptionContractProductChange($input: SubscriptionContractProductChangeInput!, $lineId: ID!, $subscriptionContractId: ID!) {\n subscriptionContractProductChange(input: $input, lineId: $lineId, subscriptionContractId: $subscriptionContractId) {\n contract {\n # SubscriptionContract fields\n }\n lineUpdated {\n # SubscriptionLine fields\n }\n userErrors {\n field\n message\n }\n }\n}"
Input Reference for MUTATION: subscriptionContractProductChange
"{\n \"input\": {\n \"currentPrice\": \"29.99\",\n \"productVariantId\": \"gid://shopify/<objectName>/10079785100\"\n },\n \"lineId\": \"gid://shopify/<objectName>/10079785100\",\n \"subscriptionContractId\": \"gid://shopify/<objectName>/10079785100\"\n}"
Schema Reference for MUTATION: subscriptionContractProductChange
"input SubscriptionContractProductChangeInput {\n currentPrice: Decimal\n productVariantId: ID\n}\n"
Display Examples for MUTATION: subscriptionContractProductChange
[ { "example": { "type_name": "subscriptioncontractproductchange", "title": "Update both product and price in a subscription contract", "description": "Swaps a product and changes the price of a line in a subscription contract.\n", "query_string": "mutation($contractId: ID!, $lineId: ID!, $variantId: ID!) {\n subscriptionContractProductChange(subscriptionContractId: $contractId, lineId: $lineId, input: {productVariantId: $variantId, currentPrice: 500}) {\n contract {\n id\n updatedAt\n }\n lineUpdated {\n id\n currentPrice {\n amount\n }\n variantId\n }\n userErrors {\n field\n message\n code\n }\n }\n}", "variables": { "contractId": "gid://shopify/SubscriptionContract/593791907", "lineId": "gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55", "variantId": "gid://shopify/ProductVariant/30322695" }, "response": { "data": { "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": [] } } }, "api_name": "admin", "minimum_api_version": "2023-10", "maximum_api_version": "unstable", "location": "/components/sales/subscriptions/test/unit/graph_api/admin/mutations/subscription_contract_product_change_test.rb", "curl_example": "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-10/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"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 } } }\",\n \"variables\": {\n \"contractId\": \"gid://shopify/SubscriptionContract/593791907\",\n \"lineId\": \"gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55\",\n \"variantId\": \"gid://shopify/ProductVariant/30322695\"\n }\n}'\n", "remix_example": "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n mutation($contractId: ID!, $lineId: ID!, $variantId: ID!) {\n subscriptionContractProductChange(subscriptionContractId: $contractId, lineId: $lineId, input: {productVariantId: $variantId, currentPrice: 500}) {\n contract {\n id\n updatedAt\n }\n lineUpdated {\n id\n currentPrice {\n amount\n }\n variantId\n }\n userErrors {\n field\n message\n code\n }\n }\n }`,\n {\n variables: {\n \"contractId\": \"gid://shopify/SubscriptionContract/593791907\",\n \"lineId\": \"gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55\",\n \"variantId\": \"gid://shopify/ProductVariant/30322695\"\n },\n },\n);\n\nconst data = await response.json();\n", "ruby_example": "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n mutation($contractId: ID!, $lineId: ID!, $variantId: ID!) {\n subscriptionContractProductChange(subscriptionContractId: $contractId, lineId: $lineId, input: {productVariantId: $variantId, currentPrice: 500}) {\n contract {\n id\n updatedAt\n }\n lineUpdated {\n id\n currentPrice {\n amount\n }\n variantId\n }\n userErrors {\n field\n message\n code\n }\n }\n }\nQUERY\n\nvariables = {\n \"contractId\": \"gid://shopify/SubscriptionContract/593791907\",\n \"lineId\": \"gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55\",\n \"variantId\": \"gid://shopify/ProductVariant/30322695\"\n}\n\nresponse = client.query(query: query, variables: variables)\n", "node_example": "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `mutation($contractId: ID!, $lineId: ID!, $variantId: ID!) {\n subscriptionContractProductChange(subscriptionContractId: $contractId, lineId: $lineId, input: {productVariantId: $variantId, currentPrice: 500}) {\n contract {\n id\n updatedAt\n }\n lineUpdated {\n id\n currentPrice {\n amount\n }\n variantId\n }\n userErrors {\n field\n message\n code\n }\n }\n }`,\n \"variables\": {\n \"contractId\": \"gid://shopify/SubscriptionContract/593791907\",\n \"lineId\": \"gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55\",\n \"variantId\": \"gid://shopify/ProductVariant/30322695\"\n },\n },\n});\n", "php_example": "use Shopify\\Clients\\Graphql;\n\n$client = new Graphql(\"your-development-store.myshopify.com\", $accessToken);\n$query = <<<QUERY\n mutation($contractId: ID!, $lineId: ID!, $variantId: ID!) {\n subscriptionContractProductChange(subscriptionContractId: $contractId, lineId: $lineId, input: {productVariantId: $variantId, currentPrice: 500}) {\n contract {\n id\n updatedAt\n }\n lineUpdated {\n id\n currentPrice {\n amount\n }\n variantId\n }\n userErrors {\n field\n message\n code\n }\n }\n }\nQUERY;\n\n$variables = [\n \"contractId\" => \"gid://shopify/SubscriptionContract/593791907\",\n \"lineId\" => \"gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55\",\n \"variantId\" => \"gid://shopify/ProductVariant/30322695\",\n];\n\n$response = $client->query([\"query\" => $query, \"variables\" => $variables]);\n" }, "titleStringKey": "variables", "inputVariableEntries": [ { "arg": { "name": "lineId", "description": "The gid of the Subscription Line to update.", "type": { "kind": "SCALAR", "name": "ID", "list": false, "non_null": true }, "defaultValue": null, "typeSignature": "ID!", "isDeprecated": false, "deprecationReason": null, "kind": "ARGUMENT" }, "key": "lineId", "argValue": " \"gid://shopify/SubscriptionLine/25476bfc-b794-4ff5-b41f-7a00eb252d55\"", "typeKind": "MUTATION" } ] } ]