Have your say in Community Polls: What was/is your greatest motivation to start your own business?
Our Partner & Developer boards on the community are moving to a brand new home: the .dev community forums! While you can still access past discussions here, for all your future app and storefront building questions, head over to the new forums.

updateCustomer mutation using GraphQL, getting "CustomerInput! was provided invalid value"

updateCustomer mutation using GraphQL, getting "CustomerInput! was provided invalid value"

epodietz
Excursionist
13 2 1

I was able to do updateCustomer in the GraphQL playground, but when I try to do it in node.js (see below) I get the following error:

 

Error updating customer: RequestError: Variable $input of type CustomerInput! was provided invalid value

    at Request.<anonymous> (c:\nodejs\node_modules\got\dist\source\as-promise\index.js:113:42)

    at afterResponse (c:\nodejs\node_modules\shopify-api-node\index.js:296:15)

    at Request.<anonymous> (c:\nodejs\node_modules\got\dist\source\as-promise\index.js:87:42)

    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

       {name: 'RequestError', code: 'ERR_GOT_REQUEST_ERROR', timings: {…}, locations: Array(1), path: undefined, …}

 

 

const Shopify = require('shopify-api-node');

 

const shopify = new Shopify({

    shopName: 'myStoreAt.myshopify.com',

    accessToken:'xxx'

});

 

const updateCustomer = async () => {

    const query = `

        mutation customerUpdate($input: CustomerInput!) {

        customerUpdate(input: $input) {

            userErrors { field, message }

            customer { id, firstName, lastName }

          }

    } `

 

const variables= {

    "input": {

        "id": 'gid://shopify/Customer/1018520244',

        "firstName": 'Frank',

        "lastName": 'Jones'

        }

};

      try {

          const response = await shopify.graphql(query);

          console.log(JSON.stringify(response, null, 2));

      } catch (error) {

          console.log('Error updating customer:', error);

      }

    } 

  updateCustomer();

Replies 2 (2)

erik_lindberg_s
Shopify Partner
20 3 6

I would structure my GraphQl request as shown in the documentation and not assign "variables" as a constant but as a key within the query. Like this:

 

const data = await client.query({
  data: {
    "query": `mutation customerUpdate($input: CustomerInput!) {
      customerUpdate(input: $input) {
        userErrors {
          field
          message
        }
        customer {
          id
          firstName
          lastName
        }
      }
    }`,
    "variables": {
      "input": {
        "id": "gid://shopify/Customer/1018520244",
        "firstName": "Tobi",
        "lastName": "Lutke"
      }
    },
  },
});

You can see the documentation here. https://shopify.dev/docs/api/admin-graphql/2023-10/mutations/customerupdate

 

SBD_
Shopify Staff
1831 273 421