Anchor to section titled 'undefined'

bulkProductResourceFeedbackCreate
mutation

Requires write_resource_feedbacks access scope. Also: App must be configured to use the Storefront API or as a Sales Channel.

Creates product feedback for multiple products.


An array of inputs to create the feedback. Limited to 50.


Was this section helpful?

The list of errors that occurred from executing the mutation.


Was this section helpful?

Examples

Hide code
Copy
mutation($feedbackInput: [ProductResourceFeedbackInput!]!) {
  bulkProductResourceFeedbackCreate(feedbackInput: $feedbackInput) {
    userErrors {
      field
      message
    }
    feedback {
      productId
      state
      feedbackGeneratedAt
      productUpdatedAt
      messages
    }
  }
}
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($feedbackInput: [ProductResourceFeedbackInput!]!) { bulkProductResourceFeedbackCreate(feedbackInput: $feedbackInput) { userErrors { field message } feedback { productId state feedbackGeneratedAt productUpdatedAt messages } } }",
 "variables": {
    "feedbackInput": [
      {
        "productId": "gid://shopify/Product/172561227",
        "state": "REQUIRES_ACTION",
        "feedbackGeneratedAt": "2021-05-01T23:00:00Z",
        "productUpdatedAt": "2021-04-28T16:00:00Z",
        "messages": [
          "Needs a description."
        ]
      },
      {
        "productId": "gid://shopify/Product/788638954",
        "state": "REQUIRES_ACTION",
        "feedbackGeneratedAt": "2021-05-01T23:00:00Z",
        "productUpdatedAt": "2021-04-28T16:00:00Z",
        "messages": [
          "Needs an image."
        ]
      }
    ]
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  mutation($feedbackInput: [ProductResourceFeedbackInput!]!) {
    bulkProductResourceFeedbackCreate(feedbackInput: $feedbackInput) {
      userErrors {
        field
        message
      }
      feedback {
        productId
        state
        feedbackGeneratedAt
        productUpdatedAt
        messages
      }
    }
  }`,
  {
    variables: {
      "feedbackInput": [
        {
          "productId": "gid://shopify/Product/172561227",
          "state": "REQUIRES_ACTION",
          "feedbackGeneratedAt": "2021-05-01T23:00:00Z",
          "productUpdatedAt": "2021-04-28T16:00:00Z",
          "messages": [
            "Needs a description."
          ]
        },
        {
          "productId": "gid://shopify/Product/788638954",
          "state": "REQUIRES_ACTION",
          "feedbackGeneratedAt": "2021-05-01T23:00:00Z",
          "productUpdatedAt": "2021-04-28T16:00:00Z",
          "messages": [
            "Needs an image."
          ]
        }
      ]
    },
  },
);

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($feedbackInput: [ProductResourceFeedbackInput!]!) {
    bulkProductResourceFeedbackCreate(feedbackInput: $feedbackInput) {
      userErrors {
        field
        message
      }
      feedback {
        productId
        state
        feedbackGeneratedAt
        productUpdatedAt
        messages
      }
    }
  }
QUERY

variables = {
  "feedbackInput": [{"productId"=>"gid://shopify/Product/172561227", "state"=>"REQUIRES_ACTION", "feedbackGeneratedAt"=>"2021-05-01T23:00:00Z", "productUpdatedAt"=>"2021-04-28T16:00:00Z", "messages"=>["Needs a description."]}, {"productId"=>"gid://shopify/Product/788638954", "state"=>"REQUIRES_ACTION", "feedbackGeneratedAt"=>"2021-05-01T23:00:00Z", "productUpdatedAt"=>"2021-04-28T16:00:00Z", "messages"=>["Needs an image."]}]
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `mutation($feedbackInput: [ProductResourceFeedbackInput!]!) {
      bulkProductResourceFeedbackCreate(feedbackInput: $feedbackInput) {
        userErrors {
          field
          message
        }
        feedback {
          productId
          state
          feedbackGeneratedAt
          productUpdatedAt
          messages
        }
      }
    }`,
    "variables": {
      "feedbackInput": [
        {
          "productId": "gid://shopify/Product/172561227",
          "state": "REQUIRES_ACTION",
          "feedbackGeneratedAt": "2021-05-01T23:00:00Z",
          "productUpdatedAt": "2021-04-28T16:00:00Z",
          "messages": [
            "Needs a description."
          ]
        },
        {
          "productId": "gid://shopify/Product/788638954",
          "state": "REQUIRES_ACTION",
          "feedbackGeneratedAt": "2021-05-01T23:00:00Z",
          "productUpdatedAt": "2021-04-28T16:00:00Z",
          "messages": [
            "Needs an image."
          ]
        }
      ]
    },
  },
});
use Shopify\Clients\Graphql;

$client = new Graphql("your-development-store.myshopify.com", $accessToken);
$query = <<<QUERY
  mutation($feedbackInput: [ProductResourceFeedbackInput!]!) {
    bulkProductResourceFeedbackCreate(feedbackInput: $feedbackInput) {
      userErrors {
        field
        message
      }
      feedback {
        productId
        state
        feedbackGeneratedAt
        productUpdatedAt
        messages
      }
    }
  }
QUERY;

$variables = [
  "feedbackInput" => [{"productId"=>"gid://shopify/Product/172561227", "state"=>"REQUIRES_ACTION", "feedbackGeneratedAt"=>"2021-05-01T23:00:00Z", "productUpdatedAt"=>"2021-04-28T16:00:00Z", "messages"=>["Needs a description."]}, {"productId"=>"gid://shopify/Product/788638954", "state"=>"REQUIRES_ACTION", "feedbackGeneratedAt"=>"2021-05-01T23:00:00Z", "productUpdatedAt"=>"2021-04-28T16:00:00Z", "messages"=>["Needs an image."]}],
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "feedbackInput": [
    {
      "productId": "gid://shopify/Product/172561227",
      "state": "REQUIRES_ACTION",
      "feedbackGeneratedAt": "2021-05-01T23:00:00Z",
      "productUpdatedAt": "2021-04-28T16:00:00Z",
      "messages": [
        "Needs a description."
      ]
    },
    {
      "productId": "gid://shopify/Product/788638954",
      "state": "REQUIRES_ACTION",
      "feedbackGeneratedAt": "2021-05-01T23:00:00Z",
      "productUpdatedAt": "2021-04-28T16:00:00Z",
      "messages": [
        "Needs an image."
      ]
    }
  ]
}
Hide code
Response
JSON
{
  "bulkProductResourceFeedbackCreate": {
    "userErrors": [],
    "feedback": [
      {
        "productId": "gid://shopify/Product/172561227",
        "state": "REQUIRES_ACTION",
        "feedbackGeneratedAt": "2021-05-01T23:00:00Z",
        "productUpdatedAt": "2021-04-28T16:00:00Z",
        "messages": [
          "Needs a description."
        ]
      },
      {
        "productId": "gid://shopify/Product/788638954",
        "state": "REQUIRES_ACTION",
        "feedbackGeneratedAt": "2021-05-01T23:00:00Z",
        "productUpdatedAt": "2021-04-28T16:00:00Z",
        "messages": [
          "Needs an image."
        ]
      }
    ]
  }
}