# sellingPlanGroupCreate - admin - MUTATION
Version: unstable

## Description
Creates a Selling Plan Group.

### Access Scopes
`write_products` access scope as well as any of `write_own_subscription_contracts`, `write_purchase_options` access scopes. Also: The user must have `manage_orders_information` permissions.


## Arguments
* [input](/docs/api/admin/unstable/input-objects/SellingPlanGroupInput): SellingPlanGroupInput! - The properties of the new Selling Plan Group.
* [resources](/docs/api/admin/unstable/input-objects/SellingPlanGroupResourceInput): SellingPlanGroupResourceInput - The resources this Selling Plan Group should be applied to.


## Returns
* [sellingPlanGroup](/docs/api/admin/unstable/objects/SellingPlanGroup): SellingPlanGroup The created selling plan group object.
* [userErrors](/docs/api/admin/unstable/objects/SellingPlanGroupUserError): SellingPlanGroupUserError! The list of errors that occurred from executing the mutation.


## Examples
### Create a TBYB selling plan group
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/unstable/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) { sellingPlanGroupCreate(input: $input, resources: $resources) { sellingPlanGroup { id sellingPlans(first: 1) { edges { node { id } } } } userErrors { field message } } }\",\n \"variables\": {\n    \"input\": {\n      \"name\": \"TBYB\",\n      \"merchantCode\": \"tbyb\",\n      \"options\": [\n        \"Try before you buy\"\n      ],\n      \"sellingPlansToCreate\": [\n        {\n          \"name\": \"TBYB\",\n          \"options\": \"Try free for 14 days\",\n          \"category\": \"TRY_BEFORE_YOU_BUY\",\n          \"billingPolicy\": {\n            \"fixed\": {\n              \"checkoutCharge\": {\n                \"type\": \"PRICE\",\n                \"value\": {\n                  \"fixedValue\": 0\n                }\n              },\n              \"remainingBalanceChargeTrigger\": \"TIME_AFTER_CHECKOUT\",\n              \"remainingBalanceChargeTimeAfterCheckout\": \"P14D\"\n            }\n          },\n          \"inventoryPolicy\": {\n            \"reserve\": \"ON_SALE\"\n          },\n          \"deliveryPolicy\": {\n            \"fixed\": {\n              \"fulfillmentTrigger\": \"ASAP\"\n            }\n          }\n        }\n      ]\n    },\n    \"resources\": {\n      \"productIds\": [\n        \"gid://shopify/Product/121709582\"\n      ],\n      \"productVariantIds\": []\n    }\n  }\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n  data: {\n    \"query\": `mutation createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) {\n      sellingPlanGroupCreate(input: $input, resources: $resources) {\n        sellingPlanGroup {\n          id\n          sellingPlans(first: 1) {\n            edges {\n              node {\n                id\n              }\n            }\n          }\n        }\n        userErrors {\n          field\n          message\n        }\n      }\n    }`,\n    \"variables\": {\n      \"input\": {\n        \"name\": \"TBYB\",\n        \"merchantCode\": \"tbyb\",\n        \"options\": [\n          \"Try before you buy\"\n        ],\n        \"sellingPlansToCreate\": [\n          {\n            \"name\": \"TBYB\",\n            \"options\": \"Try free for 14 days\",\n            \"category\": \"TRY_BEFORE_YOU_BUY\",\n            \"billingPolicy\": {\n              \"fixed\": {\n                \"checkoutCharge\": {\n                  \"type\": \"PRICE\",\n                  \"value\": {\n                    \"fixedValue\": 0\n                  }\n                },\n                \"remainingBalanceChargeTrigger\": \"TIME_AFTER_CHECKOUT\",\n                \"remainingBalanceChargeTimeAfterCheckout\": \"P14D\"\n              }\n            },\n            \"inventoryPolicy\": {\n              \"reserve\": \"ON_SALE\"\n            },\n            \"deliveryPolicy\": {\n              \"fixed\": {\n                \"fulfillmentTrigger\": \"ASAP\"\n              }\n            }\n          }\n        ]\n      },\n      \"resources\": {\n        \"productIds\": [\n          \"gid://shopify/Product/121709582\"\n        ],\n        \"productVariantIds\": []\n      }\n    },\n  },\n});\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 createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) {\n    sellingPlanGroupCreate(input: $input, resources: $resources) {\n      sellingPlanGroup {\n        id\n        sellingPlans(first: 1) {\n          edges {\n            node {\n              id\n            }\n          }\n        }\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }\nQUERY\n\nvariables = {\n  \"input\": {\n    \"name\": \"TBYB\",\n    \"merchantCode\": \"tbyb\",\n    \"options\": [\"Try before you buy\"],\n    \"sellingPlansToCreate\": [{\"name\"=>\"TBYB\", \"options\"=>\"Try free for 14 days\", \"category\"=>\"TRY_BEFORE_YOU_BUY\", \"billingPolicy\"=>{\"fixed\"=>{\"checkoutCharge\"=>{\"type\"=>\"PRICE\", \"value\"=>{\"fixedValue\"=>0}}, \"remainingBalanceChargeTrigger\"=>\"TIME_AFTER_CHECKOUT\", \"remainingBalanceChargeTimeAfterCheckout\"=>\"P14D\"}}, \"inventoryPolicy\"=>{\"reserve\"=>\"ON_SALE\"}, \"deliveryPolicy\"=>{\"fixed\"=>{\"fulfillmentTrigger\"=>\"ASAP\"}}}]\n  },\n  \"resources\": {\n    \"productIds\": [\"gid://shopify/Product/121709582\"],\n    \"productVariantIds\": []\n  }\n}\n\nresponse = client.query(query: query, variables: variables)\n" 
Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n  `#graphql\n  mutation createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) {\n    sellingPlanGroupCreate(input: $input, resources: $resources) {\n      sellingPlanGroup {\n        id\n        sellingPlans(first: 1) {\n          edges {\n            node {\n              id\n            }\n          }\n        }\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }`,\n  {\n    variables: {\n      \"input\": {\n        \"name\": \"TBYB\",\n        \"merchantCode\": \"tbyb\",\n        \"options\": [\n          \"Try before you buy\"\n        ],\n        \"sellingPlansToCreate\": [\n          {\n            \"name\": \"TBYB\",\n            \"options\": \"Try free for 14 days\",\n            \"category\": \"TRY_BEFORE_YOU_BUY\",\n            \"billingPolicy\": {\n              \"fixed\": {\n                \"checkoutCharge\": {\n                  \"type\": \"PRICE\",\n                  \"value\": {\n                    \"fixedValue\": 0\n                  }\n                },\n                \"remainingBalanceChargeTrigger\": \"TIME_AFTER_CHECKOUT\",\n                \"remainingBalanceChargeTimeAfterCheckout\": \"P14D\"\n              }\n            },\n            \"inventoryPolicy\": {\n              \"reserve\": \"ON_SALE\"\n            },\n            \"deliveryPolicy\": {\n              \"fixed\": {\n                \"fulfillmentTrigger\": \"ASAP\"\n              }\n            }\n          }\n        ]\n      },\n      \"resources\": {\n        \"productIds\": [\n          \"gid://shopify/Product/121709582\"\n        ],\n        \"productVariantIds\": []\n      }\n    },\n  },\n);\n\nconst data = await response.json();\n"
Graphql query: "mutation createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) {\n  sellingPlanGroupCreate(input: $input, resources: $resources) {\n    sellingPlanGroup {\n      id\n      sellingPlans(first: 1) {\n        edges {\n          node {\n            id\n          }\n        }\n      }\n    }\n    userErrors {\n      field\n      message\n    }\n  }\n}"
#### Graphql Input
{
  "input": {
    "name": "TBYB",
    "merchantCode": "tbyb",
    "options": [
      "Try before you buy"
    ],
    "sellingPlansToCreate": [
      {
        "name": "TBYB",
        "options": "Try free for 14 days",
        "category": "TRY_BEFORE_YOU_BUY",
        "billingPolicy": {
          "fixed": {
            "checkoutCharge": {
              "type": "PRICE",
              "value": {
                "fixedValue": 0
              }
            },
            "remainingBalanceChargeTrigger": "TIME_AFTER_CHECKOUT",
            "remainingBalanceChargeTimeAfterCheckout": "P14D"
          }
        },
        "inventoryPolicy": {
          "reserve": "ON_SALE"
        },
        "deliveryPolicy": {
          "fixed": {
            "fulfillmentTrigger": "ASAP"
          }
        }
      }
    ]
  },
  "resources": {
    "productIds": [
      "gid://shopify/Product/121709582"
    ],
    "productVariantIds": []
  }
}
#### Graphql Response
{
  "data": {
    "sellingPlanGroupCreate": {
      "sellingPlanGroup": {
        "id": "gid://shopify/SellingPlanGroup/1039518935",
        "sellingPlans": {
          "edges": [
            {
              "node": {
                "id": "gid://shopify/SellingPlan/1070277430"
              }
            }
          ]
        }
      },
      "userErrors": []
    }
  }
}

### Create a prepaid selling plan group with anchor dates
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/unstable/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) { sellingPlanGroupCreate(input: $input, resources: $resources) { sellingPlanGroup { id sellingPlans(first: 1) { edges { node { id } } } } userErrors { field message } } }\",\n \"variables\": {\n    \"input\": {\n      \"name\": \"Delivered every week and billed every three weeks\",\n      \"merchantCode\": \"prepaid-weekly\",\n      \"options\": [\n        \"1 week\"\n      ],\n      \"sellingPlansToCreate\": [\n        {\n          \"name\": \"Delivered every week\",\n          \"options\": \"1 Week(s)\",\n          \"category\": \"SUBSCRIPTION\",\n          \"billingPolicy\": {\n            \"recurring\": {\n              \"interval\": \"WEEK\",\n              \"intervalCount\": 3,\n              \"anchors\": [\n                {\n                  \"cutoffDay\": 2,\n                  \"day\": 4,\n                  \"type\": \"WEEKDAY\"\n                }\n              ]\n            }\n          },\n          \"pricingPolicies\": [\n            {\n              \"fixed\": {\n                \"adjustmentType\": \"PERCENTAGE\",\n                \"adjustmentValue\": {\n                  \"percentage\": 25.0\n                }\n              }\n            }\n          ],\n          \"deliveryPolicy\": {\n            \"recurring\": {\n              \"interval\": \"WEEK\",\n              \"intervalCount\": 1,\n              \"anchors\": [\n                {\n                  \"cutoffDay\": 2,\n                  \"day\": 4,\n                  \"type\": \"WEEKDAY\"\n                }\n              ]\n            }\n          }\n        }\n      ]\n    },\n    \"resources\": {\n      \"productIds\": [\n        \"gid://shopify/Product/121709582\"\n      ],\n      \"productVariantIds\": []\n    }\n  }\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n  data: {\n    \"query\": `mutation createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) {\n      sellingPlanGroupCreate(input: $input, resources: $resources) {\n        sellingPlanGroup {\n          id\n          sellingPlans(first: 1) {\n            edges {\n              node {\n                id\n              }\n            }\n          }\n        }\n        userErrors {\n          field\n          message\n        }\n      }\n    }`,\n    \"variables\": {\n      \"input\": {\n        \"name\": \"Delivered every week and billed every three weeks\",\n        \"merchantCode\": \"prepaid-weekly\",\n        \"options\": [\n          \"1 week\"\n        ],\n        \"sellingPlansToCreate\": [\n          {\n            \"name\": \"Delivered every week\",\n            \"options\": \"1 Week(s)\",\n            \"category\": \"SUBSCRIPTION\",\n            \"billingPolicy\": {\n              \"recurring\": {\n                \"interval\": \"WEEK\",\n                \"intervalCount\": 3,\n                \"anchors\": [\n                  {\n                    \"cutoffDay\": 2,\n                    \"day\": 4,\n                    \"type\": \"WEEKDAY\"\n                  }\n                ]\n              }\n            },\n            \"pricingPolicies\": [\n              {\n                \"fixed\": {\n                  \"adjustmentType\": \"PERCENTAGE\",\n                  \"adjustmentValue\": {\n                    \"percentage\": 25.0\n                  }\n                }\n              }\n            ],\n            \"deliveryPolicy\": {\n              \"recurring\": {\n                \"interval\": \"WEEK\",\n                \"intervalCount\": 1,\n                \"anchors\": [\n                  {\n                    \"cutoffDay\": 2,\n                    \"day\": 4,\n                    \"type\": \"WEEKDAY\"\n                  }\n                ]\n              }\n            }\n          }\n        ]\n      },\n      \"resources\": {\n        \"productIds\": [\n          \"gid://shopify/Product/121709582\"\n        ],\n        \"productVariantIds\": []\n      }\n    },\n  },\n});\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 createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) {\n    sellingPlanGroupCreate(input: $input, resources: $resources) {\n      sellingPlanGroup {\n        id\n        sellingPlans(first: 1) {\n          edges {\n            node {\n              id\n            }\n          }\n        }\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }\nQUERY\n\nvariables = {\n  \"input\": {\n    \"name\": \"Delivered every week and billed every three weeks\",\n    \"merchantCode\": \"prepaid-weekly\",\n    \"options\": [\"1 week\"],\n    \"sellingPlansToCreate\": [{\"name\"=>\"Delivered every week\", \"options\"=>\"1 Week(s)\", \"category\"=>\"SUBSCRIPTION\", \"billingPolicy\"=>{\"recurring\"=>{\"interval\"=>\"WEEK\", \"intervalCount\"=>3, \"anchors\"=>[{\"cutoffDay\"=>2, \"day\"=>4, \"type\"=>\"WEEKDAY\"}]}}, \"pricingPolicies\"=>[{\"fixed\"=>{\"adjustmentType\"=>\"PERCENTAGE\", \"adjustmentValue\"=>{\"percentage\"=>25.0}}}], \"deliveryPolicy\"=>{\"recurring\"=>{\"interval\"=>\"WEEK\", \"intervalCount\"=>1, \"anchors\"=>[{\"cutoffDay\"=>2, \"day\"=>4, \"type\"=>\"WEEKDAY\"}]}}}]\n  },\n  \"resources\": {\n    \"productIds\": [\"gid://shopify/Product/121709582\"],\n    \"productVariantIds\": []\n  }\n}\n\nresponse = client.query(query: query, variables: variables)\n" 
Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n  `#graphql\n  mutation createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) {\n    sellingPlanGroupCreate(input: $input, resources: $resources) {\n      sellingPlanGroup {\n        id\n        sellingPlans(first: 1) {\n          edges {\n            node {\n              id\n            }\n          }\n        }\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }`,\n  {\n    variables: {\n      \"input\": {\n        \"name\": \"Delivered every week and billed every three weeks\",\n        \"merchantCode\": \"prepaid-weekly\",\n        \"options\": [\n          \"1 week\"\n        ],\n        \"sellingPlansToCreate\": [\n          {\n            \"name\": \"Delivered every week\",\n            \"options\": \"1 Week(s)\",\n            \"category\": \"SUBSCRIPTION\",\n            \"billingPolicy\": {\n              \"recurring\": {\n                \"interval\": \"WEEK\",\n                \"intervalCount\": 3,\n                \"anchors\": [\n                  {\n                    \"cutoffDay\": 2,\n                    \"day\": 4,\n                    \"type\": \"WEEKDAY\"\n                  }\n                ]\n              }\n            },\n            \"pricingPolicies\": [\n              {\n                \"fixed\": {\n                  \"adjustmentType\": \"PERCENTAGE\",\n                  \"adjustmentValue\": {\n                    \"percentage\": 25.0\n                  }\n                }\n              }\n            ],\n            \"deliveryPolicy\": {\n              \"recurring\": {\n                \"interval\": \"WEEK\",\n                \"intervalCount\": 1,\n                \"anchors\": [\n                  {\n                    \"cutoffDay\": 2,\n                    \"day\": 4,\n                    \"type\": \"WEEKDAY\"\n                  }\n                ]\n              }\n            }\n          }\n        ]\n      },\n      \"resources\": {\n        \"productIds\": [\n          \"gid://shopify/Product/121709582\"\n        ],\n        \"productVariantIds\": []\n      }\n    },\n  },\n);\n\nconst data = await response.json();\n"
Graphql query: "mutation createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) {\n  sellingPlanGroupCreate(input: $input, resources: $resources) {\n    sellingPlanGroup {\n      id\n      sellingPlans(first: 1) {\n        edges {\n          node {\n            id\n          }\n        }\n      }\n    }\n    userErrors {\n      field\n      message\n    }\n  }\n}"
#### Graphql Input
{
  "input": {
    "name": "Delivered every week and billed every three weeks",
    "merchantCode": "prepaid-weekly",
    "options": [
      "1 week"
    ],
    "sellingPlansToCreate": [
      {
        "name": "Delivered every week",
        "options": "1 Week(s)",
        "category": "SUBSCRIPTION",
        "billingPolicy": {
          "recurring": {
            "interval": "WEEK",
            "intervalCount": 3,
            "anchors": [
              {
                "cutoffDay": 2,
                "day": 4,
                "type": "WEEKDAY"
              }
            ]
          }
        },
        "pricingPolicies": [
          {
            "fixed": {
              "adjustmentType": "PERCENTAGE",
              "adjustmentValue": {
                "percentage": 25.0
              }
            }
          }
        ],
        "deliveryPolicy": {
          "recurring": {
            "interval": "WEEK",
            "intervalCount": 1,
            "anchors": [
              {
                "cutoffDay": 2,
                "day": 4,
                "type": "WEEKDAY"
              }
            ]
          }
        }
      }
    ]
  },
  "resources": {
    "productIds": [
      "gid://shopify/Product/121709582"
    ],
    "productVariantIds": []
  }
}
#### Graphql Response
{
  "data": {
    "sellingPlanGroupCreate": {
      "sellingPlanGroup": {
        "id": "gid://shopify/SellingPlanGroup/1039518936",
        "sellingPlans": {
          "edges": [
            {
              "node": {
                "id": "gid://shopify/SellingPlan/1070277431"
              }
            }
          ]
        }
      },
      "userErrors": []
    }
  }
}

### Create a selling plan group with metafields
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/unstable/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) { sellingPlanGroupCreate(input: $input, resources: $resources) { sellingPlanGroup { id sellingPlans(first: 1) { edges { node { id metafields(first: 1) { edges { node { id namespace key value } } } } } } } userErrors { field message } } }\",\n \"variables\": {\n    \"input\": {\n      \"name\": \"Subscribe and save\",\n      \"merchantCode\": \"subscribe-and-save\",\n      \"appId\": \"groovy\",\n      \"options\": [\n        \"Delivery every\",\n        \"Delivery interval\",\n        \"Fun every\"\n      ],\n      \"position\": 1,\n      \"description\": \"Subscribe and save group\",\n      \"sellingPlansToCreate\": [\n        {\n          \"name\": \"Pay every month deliver every month\",\n          \"options\": [\n            \"1\",\n            \"month\",\n            \"day\"\n          ],\n          \"metafields\": [\n            {\n              \"namespace\": \"for_testing\",\n              \"key\": \"my_key\",\n              \"value\": \"selling plan metafield\",\n              \"type\": \"single_line_text_field\"\n            }\n          ],\n          \"position\": 1,\n          \"category\": \"SUBSCRIPTION\",\n          \"billingPolicy\": {\n            \"recurring\": {\n              \"interval\": \"MONTH\",\n              \"intervalCount\": 1,\n              \"anchors\": [\n                {\n                  \"type\": \"MONTHDAY\",\n                  \"day\": 26\n                }\n              ]\n            }\n          },\n          \"deliveryPolicy\": {\n            \"recurring\": {\n              \"interval\": \"MONTH\",\n              \"intervalCount\": 1,\n              \"anchors\": [\n                {\n                  \"type\": \"MONTHDAY\",\n                  \"day\": 26\n                }\n              ],\n              \"cutoff\": 5,\n              \"intent\": \"FULFILLMENT_BEGIN\",\n              \"preAnchorBehavior\": \"ASAP\"\n            }\n          },\n          \"inventoryPolicy\": {\n            \"reserve\": \"ON_SALE\"\n          },\n          \"pricingPolicies\": [\n            {\n              \"fixed\": {\n                \"adjustmentType\": \"PERCENTAGE\",\n                \"adjustmentValue\": {\n                  \"percentage\": 25.0\n                }\n              }\n            },\n            {\n              \"recurring\": {\n                \"afterCycle\": 3,\n                \"adjustmentType\": \"PERCENTAGE\",\n                \"adjustmentValue\": {\n                  \"percentage\": 26.0\n                }\n              }\n            }\n          ]\n        }\n      ]\n    },\n    \"resources\": {}\n  }\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n  data: {\n    \"query\": `mutation createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) {\n      sellingPlanGroupCreate(input: $input, resources: $resources) {\n        sellingPlanGroup {\n          id\n          sellingPlans(first: 1) {\n            edges {\n              node {\n                id\n                metafields(first: 1) {\n                  edges {\n                    node {\n                      id\n                      namespace\n                      key\n                      value\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n        userErrors {\n          field\n          message\n        }\n      }\n    }`,\n    \"variables\": {\n      \"input\": {\n        \"name\": \"Subscribe and save\",\n        \"merchantCode\": \"subscribe-and-save\",\n        \"appId\": \"groovy\",\n        \"options\": [\n          \"Delivery every\",\n          \"Delivery interval\",\n          \"Fun every\"\n        ],\n        \"position\": 1,\n        \"description\": \"Subscribe and save group\",\n        \"sellingPlansToCreate\": [\n          {\n            \"name\": \"Pay every month deliver every month\",\n            \"options\": [\n              \"1\",\n              \"month\",\n              \"day\"\n            ],\n            \"metafields\": [\n              {\n                \"namespace\": \"for_testing\",\n                \"key\": \"my_key\",\n                \"value\": \"selling plan metafield\",\n                \"type\": \"single_line_text_field\"\n              }\n            ],\n            \"position\": 1,\n            \"category\": \"SUBSCRIPTION\",\n            \"billingPolicy\": {\n              \"recurring\": {\n                \"interval\": \"MONTH\",\n                \"intervalCount\": 1,\n                \"anchors\": [\n                  {\n                    \"type\": \"MONTHDAY\",\n                    \"day\": 26\n                  }\n                ]\n              }\n            },\n            \"deliveryPolicy\": {\n              \"recurring\": {\n                \"interval\": \"MONTH\",\n                \"intervalCount\": 1,\n                \"anchors\": [\n                  {\n                    \"type\": \"MONTHDAY\",\n                    \"day\": 26\n                  }\n                ],\n                \"cutoff\": 5,\n                \"intent\": \"FULFILLMENT_BEGIN\",\n                \"preAnchorBehavior\": \"ASAP\"\n              }\n            },\n            \"inventoryPolicy\": {\n              \"reserve\": \"ON_SALE\"\n            },\n            \"pricingPolicies\": [\n              {\n                \"fixed\": {\n                  \"adjustmentType\": \"PERCENTAGE\",\n                  \"adjustmentValue\": {\n                    \"percentage\": 25.0\n                  }\n                }\n              },\n              {\n                \"recurring\": {\n                  \"afterCycle\": 3,\n                  \"adjustmentType\": \"PERCENTAGE\",\n                  \"adjustmentValue\": {\n                    \"percentage\": 26.0\n                  }\n                }\n              }\n            ]\n          }\n        ]\n      },\n      \"resources\": {}\n    },\n  },\n});\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 createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) {\n    sellingPlanGroupCreate(input: $input, resources: $resources) {\n      sellingPlanGroup {\n        id\n        sellingPlans(first: 1) {\n          edges {\n            node {\n              id\n              metafields(first: 1) {\n                edges {\n                  node {\n                    id\n                    namespace\n                    key\n                    value\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }\nQUERY\n\nvariables = {\n  \"input\": {\n    \"name\": \"Subscribe and save\",\n    \"merchantCode\": \"subscribe-and-save\",\n    \"appId\": \"groovy\",\n    \"options\": [\"Delivery every\", \"Delivery interval\", \"Fun every\"],\n    \"position\": 1,\n    \"description\": \"Subscribe and save group\",\n    \"sellingPlansToCreate\": [{\"name\"=>\"Pay every month deliver every month\", \"options\"=>[\"1\", \"month\", \"day\"], \"metafields\"=>[{\"namespace\"=>\"for_testing\", \"key\"=>\"my_key\", \"value\"=>\"selling plan metafield\", \"type\"=>\"single_line_text_field\"}], \"position\"=>1, \"category\"=>\"SUBSCRIPTION\", \"billingPolicy\"=>{\"recurring\"=>{\"interval\"=>\"MONTH\", \"intervalCount\"=>1, \"anchors\"=>[{\"type\"=>\"MONTHDAY\", \"day\"=>26}]}}, \"deliveryPolicy\"=>{\"recurring\"=>{\"interval\"=>\"MONTH\", \"intervalCount\"=>1, \"anchors\"=>[{\"type\"=>\"MONTHDAY\", \"day\"=>26}], \"cutoff\"=>5, \"intent\"=>\"FULFILLMENT_BEGIN\", \"preAnchorBehavior\"=>\"ASAP\"}}, \"inventoryPolicy\"=>{\"reserve\"=>\"ON_SALE\"}, \"pricingPolicies\"=>[{\"fixed\"=>{\"adjustmentType\"=>\"PERCENTAGE\", \"adjustmentValue\"=>{\"percentage\"=>25.0}}}, {\"recurring\"=>{\"afterCycle\"=>3, \"adjustmentType\"=>\"PERCENTAGE\", \"adjustmentValue\"=>{\"percentage\"=>26.0}}}]}]\n  },\n  \"resources\": {\n\n  }\n}\n\nresponse = client.query(query: query, variables: variables)\n" 
Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n  `#graphql\n  mutation createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) {\n    sellingPlanGroupCreate(input: $input, resources: $resources) {\n      sellingPlanGroup {\n        id\n        sellingPlans(first: 1) {\n          edges {\n            node {\n              id\n              metafields(first: 1) {\n                edges {\n                  node {\n                    id\n                    namespace\n                    key\n                    value\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }`,\n  {\n    variables: {\n      \"input\": {\n        \"name\": \"Subscribe and save\",\n        \"merchantCode\": \"subscribe-and-save\",\n        \"appId\": \"groovy\",\n        \"options\": [\n          \"Delivery every\",\n          \"Delivery interval\",\n          \"Fun every\"\n        ],\n        \"position\": 1,\n        \"description\": \"Subscribe and save group\",\n        \"sellingPlansToCreate\": [\n          {\n            \"name\": \"Pay every month deliver every month\",\n            \"options\": [\n              \"1\",\n              \"month\",\n              \"day\"\n            ],\n            \"metafields\": [\n              {\n                \"namespace\": \"for_testing\",\n                \"key\": \"my_key\",\n                \"value\": \"selling plan metafield\",\n                \"type\": \"single_line_text_field\"\n              }\n            ],\n            \"position\": 1,\n            \"category\": \"SUBSCRIPTION\",\n            \"billingPolicy\": {\n              \"recurring\": {\n                \"interval\": \"MONTH\",\n                \"intervalCount\": 1,\n                \"anchors\": [\n                  {\n                    \"type\": \"MONTHDAY\",\n                    \"day\": 26\n                  }\n                ]\n              }\n            },\n            \"deliveryPolicy\": {\n              \"recurring\": {\n                \"interval\": \"MONTH\",\n                \"intervalCount\": 1,\n                \"anchors\": [\n                  {\n                    \"type\": \"MONTHDAY\",\n                    \"day\": 26\n                  }\n                ],\n                \"cutoff\": 5,\n                \"intent\": \"FULFILLMENT_BEGIN\",\n                \"preAnchorBehavior\": \"ASAP\"\n              }\n            },\n            \"inventoryPolicy\": {\n              \"reserve\": \"ON_SALE\"\n            },\n            \"pricingPolicies\": [\n              {\n                \"fixed\": {\n                  \"adjustmentType\": \"PERCENTAGE\",\n                  \"adjustmentValue\": {\n                    \"percentage\": 25.0\n                  }\n                }\n              },\n              {\n                \"recurring\": {\n                  \"afterCycle\": 3,\n                  \"adjustmentType\": \"PERCENTAGE\",\n                  \"adjustmentValue\": {\n                    \"percentage\": 26.0\n                  }\n                }\n              }\n            ]\n          }\n        ]\n      },\n      \"resources\": {}\n    },\n  },\n);\n\nconst data = await response.json();\n"
Graphql query: "mutation createSellingPlanGroup($input: SellingPlanGroupInput!, $resources: SellingPlanGroupResourceInput) {\n  sellingPlanGroupCreate(input: $input, resources: $resources) {\n    sellingPlanGroup {\n      id\n      sellingPlans(first: 1) {\n        edges {\n          node {\n            id\n            metafields(first: 1) {\n              edges {\n                node {\n                  id\n                  namespace\n                  key\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    userErrors {\n      field\n      message\n    }\n  }\n}"
#### Graphql Input
{
  "input": {
    "name": "Subscribe and save",
    "merchantCode": "subscribe-and-save",
    "appId": "groovy",
    "options": [
      "Delivery every",
      "Delivery interval",
      "Fun every"
    ],
    "position": 1,
    "description": "Subscribe and save group",
    "sellingPlansToCreate": [
      {
        "name": "Pay every month deliver every month",
        "options": [
          "1",
          "month",
          "day"
        ],
        "metafields": [
          {
            "namespace": "for_testing",
            "key": "my_key",
            "value": "selling plan metafield",
            "type": "single_line_text_field"
          }
        ],
        "position": 1,
        "category": "SUBSCRIPTION",
        "billingPolicy": {
          "recurring": {
            "interval": "MONTH",
            "intervalCount": 1,
            "anchors": [
              {
                "type": "MONTHDAY",
                "day": 26
              }
            ]
          }
        },
        "deliveryPolicy": {
          "recurring": {
            "interval": "MONTH",
            "intervalCount": 1,
            "anchors": [
              {
                "type": "MONTHDAY",
                "day": 26
              }
            ],
            "cutoff": 5,
            "intent": "FULFILLMENT_BEGIN",
            "preAnchorBehavior": "ASAP"
          }
        },
        "inventoryPolicy": {
          "reserve": "ON_SALE"
        },
        "pricingPolicies": [
          {
            "fixed": {
              "adjustmentType": "PERCENTAGE",
              "adjustmentValue": {
                "percentage": 25.0
              }
            }
          },
          {
            "recurring": {
              "afterCycle": 3,
              "adjustmentType": "PERCENTAGE",
              "adjustmentValue": {
                "percentage": 26.0
              }
            }
          }
        ]
      }
    ]
  },
  "resources": {}
}
#### Graphql Response
{
  "data": {
    "sellingPlanGroupCreate": {
      "sellingPlanGroup": {
        "id": "gid://shopify/SellingPlanGroup/1039518934",
        "sellingPlans": {
          "edges": [
            {
              "node": {
                "id": "gid://shopify/SellingPlan/1070277429",
                "metafields": {
                  "edges": [
                    {
                      "node": {
                        "id": "gid://shopify/Metafield/1069228936",
                        "namespace": "for_testing",
                        "key": "my_key",
                        "value": "selling plan metafield"
                      }
                    }
                  ]
                }
              }
            }
          ]
        }
      },
      "userErrors": []
    }
  }
}