subscription Contract Atomic Createmutation
mutation
2024-04
Requires
write_own_subscription_contracts
access scope. Also: The user must have manage_orders_information permission.
Creates a Subscription Contract.
Arguments
The properties of the new Subscription Contract.
Was this section helpful?
SubscriptionContractAtomicCreatePayload returns
The new Subscription Contract object.
The list of errors that occurred from executing the mutation.
Was this section helpful?
Examples
Hide code
DescriptionCopy
mutation($customerId: ID!, $paymentMethodId: ID!, $variantId: ID!) { subscriptionContractAtomicCreate(input: {customerId: $customerId, nextBillingDate: "2025-06-01", currencyCode: USD, lines: [{line: {productVariantId: $variantId, quantity: 20, currentPrice: 25.0}}], contract: {status: ACTIVE, paymentMethodId: $paymentMethodId, billingPolicy: {interval: MONTH, intervalCount: 1, minCycles: 3}, deliveryPolicy: {interval: MONTH, intervalCount: 1}, deliveryPrice: 14.99, deliveryMethod: {shipping: {address: {firstName: "John", lastName: "King", address1: "1483 rue Mossoro", city: "Montreal", province: "Quebec", country: "Canada", zip: "H2S1Z5"}}}}}) { contract { id lines(first: 10) { nodes { id quantity } } } userErrors { field message } } }
curl -X POST \ https://your-development-store.myshopify.com/admin/api/2024-04/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "mutation($customerId: ID!, $paymentMethodId: ID!, $variantId: ID!) { subscriptionContractAtomicCreate(input: {customerId: $customerId, nextBillingDate: \"2025-06-01\", currencyCode: USD, lines: [{line: {productVariantId: $variantId, quantity: 20, currentPrice: 25.0}}], contract: {status: ACTIVE, paymentMethodId: $paymentMethodId, billingPolicy: {interval: MONTH, intervalCount: 1, minCycles: 3}, deliveryPolicy: {interval: MONTH, intervalCount: 1}, deliveryPrice: 14.99, deliveryMethod: {shipping: {address: {firstName: \"John\", lastName: \"King\", address1: \"1483 rue Mossoro\", city: \"Montreal\", province: \"Quebec\", country: \"Canada\", zip: \"H2S1Z5\"}}}}}) { contract { id lines(first: 10) { nodes { id quantity } } } userErrors { field message } } }", "variables": { "customerId": "gid://shopify/Customer/544365967", "paymentMethodId": "gid://shopify/CustomerPaymentMethod/b7cc6e3267aace169e516ed48be72dff", "variantId": "gid://shopify/ProductVariant/30322695" } }'
const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql mutation($customerId: ID!, $paymentMethodId: ID!, $variantId: ID!) { subscriptionContractAtomicCreate(input: {customerId: $customerId, nextBillingDate: "2025-06-01", currencyCode: USD, lines: [{line: {productVariantId: $variantId, quantity: 20, currentPrice: 25.0}}], contract: {status: ACTIVE, paymentMethodId: $paymentMethodId, billingPolicy: {interval: MONTH, intervalCount: 1, minCycles: 3}, deliveryPolicy: {interval: MONTH, intervalCount: 1}, deliveryPrice: 14.99, deliveryMethod: {shipping: {address: {firstName: "John", lastName: "King", address1: "1483 rue Mossoro", city: "Montreal", province: "Quebec", country: "Canada", zip: "H2S1Z5"}}}}}) { contract { id lines(first: 10) { nodes { id quantity } } } userErrors { field message } } }`, { variables: { "customerId": "gid://shopify/Customer/544365967", "paymentMethodId": "gid://shopify/CustomerPaymentMethod/b7cc6e3267aace169e516ed48be72dff", "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($customerId: ID!, $paymentMethodId: ID!, $variantId: ID!) { subscriptionContractAtomicCreate(input: {customerId: $customerId, nextBillingDate: "2025-06-01", currencyCode: USD, lines: [{line: {productVariantId: $variantId, quantity: 20, currentPrice: 25.0}}], contract: {status: ACTIVE, paymentMethodId: $paymentMethodId, billingPolicy: {interval: MONTH, intervalCount: 1, minCycles: 3}, deliveryPolicy: {interval: MONTH, intervalCount: 1}, deliveryPrice: 14.99, deliveryMethod: {shipping: {address: {firstName: "John", lastName: "King", address1: "1483 rue Mossoro", city: "Montreal", province: "Quebec", country: "Canada", zip: "H2S1Z5"}}}}}) { contract { id lines(first: 10) { nodes { id quantity } } } userErrors { field message } } } QUERY variables = { "customerId": "gid://shopify/Customer/544365967", "paymentMethodId": "gid://shopify/CustomerPaymentMethod/b7cc6e3267aace169e516ed48be72dff", "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($customerId: ID!, $paymentMethodId: ID!, $variantId: ID!) { subscriptionContractAtomicCreate(input: {customerId: $customerId, nextBillingDate: "2025-06-01", currencyCode: USD, lines: [{line: {productVariantId: $variantId, quantity: 20, currentPrice: 25.0}}], contract: {status: ACTIVE, paymentMethodId: $paymentMethodId, billingPolicy: {interval: MONTH, intervalCount: 1, minCycles: 3}, deliveryPolicy: {interval: MONTH, intervalCount: 1}, deliveryPrice: 14.99, deliveryMethod: {shipping: {address: {firstName: "John", lastName: "King", address1: "1483 rue Mossoro", city: "Montreal", province: "Quebec", country: "Canada", zip: "H2S1Z5"}}}}}) { contract { id lines(first: 10) { nodes { id quantity } } } userErrors { field message } } }`, "variables": { "customerId": "gid://shopify/Customer/544365967", "paymentMethodId": "gid://shopify/CustomerPaymentMethod/b7cc6e3267aace169e516ed48be72dff", "variantId": "gid://shopify/ProductVariant/30322695" }, }, });
use Shopify\Clients\Graphql; $client = new Graphql("your-development-store.myshopify.com", $accessToken); $query = <<<QUERY mutation($customerId: ID!, $paymentMethodId: ID!, $variantId: ID!) { subscriptionContractAtomicCreate(input: {customerId: $customerId, nextBillingDate: "2025-06-01", currencyCode: USD, lines: [{line: {productVariantId: $variantId, quantity: 20, currentPrice: 25.0}}], contract: {status: ACTIVE, paymentMethodId: $paymentMethodId, billingPolicy: {interval: MONTH, intervalCount: 1, minCycles: 3}, deliveryPolicy: {interval: MONTH, intervalCount: 1}, deliveryPrice: 14.99, deliveryMethod: {shipping: {address: {firstName: "John", lastName: "King", address1: "1483 rue Mossoro", city: "Montreal", province: "Quebec", country: "Canada", zip: "H2S1Z5"}}}}}) { contract { id lines(first: 10) { nodes { id quantity } } } userErrors { field message } } } QUERY; $variables = [ "customerId" => "gid://shopify/Customer/544365967", "paymentMethodId" => "gid://shopify/CustomerPaymentMethod/b7cc6e3267aace169e516ed48be72dff", "variantId" => "gid://shopify/ProductVariant/30322695", ]; $response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{ "customerId": "gid://shopify/Customer/544365967", "paymentMethodId": "gid://shopify/CustomerPaymentMethod/b7cc6e3267aace169e516ed48be72dff", "variantId": "gid://shopify/ProductVariant/30322695" }
Hide code
Response
JSON
{ "subscriptionContractAtomicCreate": { "contract": { "id": "gid://shopify/SubscriptionContract/975257121", "lines": { "nodes": [ { "id": "gid://shopify/SubscriptionLine/93b63eb2-70d1-43db-98a8-031a9b1c8042", "quantity": 20 } ] } }, "userErrors": [] } }