# publishablePublishToCurrentChannel - admin-graphql - MUTATION
Version: 2025-01

## Description
Publishes a resource to current channel. If the resource is a product, then it's visible in the channel only if the product status is `active`. Products that are sold exclusively on subscription (`requiresSellingPlan: true`) can be published only on online stores.

### Access Scopes
`write_publications` access scope. Also: The user must have a permission to create and edit products.


## Arguments
* [id](/docs/api/admin-graphql/2025-01/scalars/ID): ID! - The resource to create or update publications for.


## Returns
* [publishable](/docs/api/admin-graphql/2025-01/interfaces/Publishable): Publishable Resource that has been published.
* [shop](/docs/api/admin-graphql/2025-01/objects/Shop): Shop! The user's shop.
* [userErrors](/docs/api/admin-graphql/2025-01/objects/UserError): UserError! The list of errors that occurred from executing the mutation.


## Examples
### Publish a product to the current channel
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2025-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation publishablePublishToCurrentChannel($id: ID!) { publishablePublishToCurrentChannel(id: $id) { publishable { availablePublicationsCount { count } resourcePublicationsCount { count } } shop { publicationCount } userErrors { field message } } }\",\n \"variables\": {\n    \"id\": \"gid://shopify/Product/921728736\"\n  }\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n  data: {\n    \"query\": `mutation publishablePublishToCurrentChannel($id: ID!) {\n      publishablePublishToCurrentChannel(id: $id) {\n        publishable {\n          availablePublicationsCount {\n            count\n          }\n          resourcePublicationsCount {\n            count\n          }\n        }\n        shop {\n          publicationCount\n        }\n        userErrors {\n          field\n          message\n        }\n      }\n    }`,\n    \"variables\": {\n      \"id\": \"gid://shopify/Product/921728736\"\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 publishablePublishToCurrentChannel($id: ID!) {\n    publishablePublishToCurrentChannel(id: $id) {\n      publishable {\n        availablePublicationsCount {\n          count\n        }\n        resourcePublicationsCount {\n          count\n        }\n      }\n      shop {\n        publicationCount\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }\nQUERY\n\nvariables = {\n  \"id\": \"gid://shopify/Product/921728736\"\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 publishablePublishToCurrentChannel($id: ID!) {\n    publishablePublishToCurrentChannel(id: $id) {\n      publishable {\n        availablePublicationsCount {\n          count\n        }\n        resourcePublicationsCount {\n          count\n        }\n      }\n      shop {\n        publicationCount\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }`,\n  {\n    variables: {\n      \"id\": \"gid://shopify/Product/921728736\"\n    },\n  },\n);\n\nconst data = await response.json();\n"
Graphql query: "mutation publishablePublishToCurrentChannel($id: ID!) {\n  publishablePublishToCurrentChannel(id: $id) {\n    publishable {\n      availablePublicationsCount {\n        count\n      }\n      resourcePublicationsCount {\n        count\n      }\n    }\n    shop {\n      publicationCount\n    }\n    userErrors {\n      field\n      message\n    }\n  }\n}"
#### Graphql Input
{
  "id": "gid://shopify/Product/921728736"
}
#### Graphql Response
{
  "data": {
    "publishablePublishToCurrentChannel": {
      "publishable": {
        "availablePublicationsCount": {
          "count": 2
        },
        "resourcePublicationsCount": {
          "count": 2
        }
      },
      "shop": {
        "publicationCount": 3
      },
      "userErrors": []
    }
  }
}

### Publish a publication to the current channel
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2025-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation publishablePublishToCurrentChannel($id: ID!) { publishablePublishToCurrentChannel(id: $id) { publishable { availablePublicationsCount { count } resourcePublicationsCount { count } } shop { publicationCount } userErrors { field message } } }\",\n \"variables\": {\n    \"id\": \"gid://shopify/Collection/841564295\"\n  }\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n  data: {\n    \"query\": `mutation publishablePublishToCurrentChannel($id: ID!) {\n      publishablePublishToCurrentChannel(id: $id) {\n        publishable {\n          availablePublicationsCount {\n            count\n          }\n          resourcePublicationsCount {\n            count\n          }\n        }\n        shop {\n          publicationCount\n        }\n        userErrors {\n          field\n          message\n        }\n      }\n    }`,\n    \"variables\": {\n      \"id\": \"gid://shopify/Collection/841564295\"\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 publishablePublishToCurrentChannel($id: ID!) {\n    publishablePublishToCurrentChannel(id: $id) {\n      publishable {\n        availablePublicationsCount {\n          count\n        }\n        resourcePublicationsCount {\n          count\n        }\n      }\n      shop {\n        publicationCount\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }\nQUERY\n\nvariables = {\n  \"id\": \"gid://shopify/Collection/841564295\"\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 publishablePublishToCurrentChannel($id: ID!) {\n    publishablePublishToCurrentChannel(id: $id) {\n      publishable {\n        availablePublicationsCount {\n          count\n        }\n        resourcePublicationsCount {\n          count\n        }\n      }\n      shop {\n        publicationCount\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }`,\n  {\n    variables: {\n      \"id\": \"gid://shopify/Collection/841564295\"\n    },\n  },\n);\n\nconst data = await response.json();\n"
Graphql query: "mutation publishablePublishToCurrentChannel($id: ID!) {\n  publishablePublishToCurrentChannel(id: $id) {\n    publishable {\n      availablePublicationsCount {\n        count\n      }\n      resourcePublicationsCount {\n        count\n      }\n    }\n    shop {\n      publicationCount\n    }\n    userErrors {\n      field\n      message\n    }\n  }\n}"
#### Graphql Input
{
  "id": "gid://shopify/Collection/841564295"
}
#### Graphql Response
{
  "data": {
    "publishablePublishToCurrentChannel": {
      "publishable": {
        "availablePublicationsCount": {
          "count": 2
        },
        "resourcePublicationsCount": {
          "count": 2
        }
      },
      "shop": {
        "publicationCount": 3
      },
      "userErrors": []
    }
  }
}

### Publishing a product that does not exist
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2025-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation publishablePublishToCurrentChannel($id: ID!) { publishablePublishToCurrentChannel(id: $id) { publishable { availablePublicationsCount { count } resourcePublicationsCount { count } } shop { publicationCount } userErrors { field message } } }\",\n \"variables\": {\n    \"id\": \"gid://shopify/Product/non-existent_product_id\"\n  }\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n  data: {\n    \"query\": `mutation publishablePublishToCurrentChannel($id: ID!) {\n      publishablePublishToCurrentChannel(id: $id) {\n        publishable {\n          availablePublicationsCount {\n            count\n          }\n          resourcePublicationsCount {\n            count\n          }\n        }\n        shop {\n          publicationCount\n        }\n        userErrors {\n          field\n          message\n        }\n      }\n    }`,\n    \"variables\": {\n      \"id\": \"gid://shopify/Product/non-existent_product_id\"\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 publishablePublishToCurrentChannel($id: ID!) {\n    publishablePublishToCurrentChannel(id: $id) {\n      publishable {\n        availablePublicationsCount {\n          count\n        }\n        resourcePublicationsCount {\n          count\n        }\n      }\n      shop {\n        publicationCount\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }\nQUERY\n\nvariables = {\n  \"id\": \"gid://shopify/Product/non-existent_product_id\"\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 publishablePublishToCurrentChannel($id: ID!) {\n    publishablePublishToCurrentChannel(id: $id) {\n      publishable {\n        availablePublicationsCount {\n          count\n        }\n        resourcePublicationsCount {\n          count\n        }\n      }\n      shop {\n        publicationCount\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }`,\n  {\n    variables: {\n      \"id\": \"gid://shopify/Product/non-existent_product_id\"\n    },\n  },\n);\n\nconst data = await response.json();\n"
Graphql query: "mutation publishablePublishToCurrentChannel($id: ID!) {\n  publishablePublishToCurrentChannel(id: $id) {\n    publishable {\n      availablePublicationsCount {\n        count\n      }\n      resourcePublicationsCount {\n        count\n      }\n    }\n    shop {\n      publicationCount\n    }\n    userErrors {\n      field\n      message\n    }\n  }\n}"
#### Graphql Input
{
  "id": "gid://shopify/Product/non-existent_product_id"
}
#### Graphql Response
{
  "data": {
    "publishablePublishToCurrentChannel": {
      "publishable": null,
      "shop": {
        "publicationCount": 3
      },
      "userErrors": [
        {
          "field": [
            "id"
          ],
          "message": "Resource does not exist"
        }
      ]
    }
  }
}