Watch a live product demo 👀 See how Sanity powers richer commerce experiences

Getting Shopify webhook to work with sanity but the function in the Netlify environment catches an error.

2 replies
Last updated: Nov 18, 2020
Hello! I'm trying to get a Shopify webhook to work with sanity, using a Netlify environment and a Gatsby frontend. This is from a Github repo from lucasvocos. So far everything is connected and everything deploys fine but when I use Shopify to either send a test request or update a product, the function in the Netlify environment catches an error. I'm pretty sure Netlify has all the permissions and variables it needs. Function and error posted below.

https://github.com/lucasvocos/gatsby-sanity-shopify/blob/main/web/functions/shopify.js
I believe the error comes from line #56 in the function: How can I debug this?

client
      .transaction()
      .createIfNotExists(product)
      .patch(data.id.toString(), patch => patch.set(product))
      .commit()
ERROR:

Sanity error 4: ClientError: The mutation(s) failed: mutation failed on document "788032119674292900": Insufficient permissions; permission "create" required
    at onResponse (/var/task/src/node_modules/@sanity/client/lib/http/request.js:27:13)
    at /var/task/src/node_modules/get-it/lib-node/util/middlewareReducer.js:10:22
    at Array.reduce (<anonymous>)
    at applyMiddleware (/var/task/src/node_modules/get-it/lib-node/util/middlewareReducer.js:9:29)
    at onResponse (/var/task/src/node_modules/get-it/lib-node/index.js:81:22)
    at /var/task/src/node_modules/get-it/lib-node/index.js:48:55
    at callback (/var/task/src/node_modules/get-it/lib-node/request/node-request.js:57:46)
    at /var/task/src/node_modules/get-it/lib-node/request/node-request.js:141:14
    at DestroyableTransform.<anonymous> (/var/task/src/node_modules/simple-concat/index.js:7:13)
    at Object.onceWrapper (events.js:420:28) {
  response: {
    body: { error: [Object] },
    url: '***************************************',
    method: 'POST',
    headers: {
      'content-type': 'application/json; charset=utf-8',
      'content-length': '349',
      'x-sanity-shard': '*********************',
      'x-served-by': '*************',
      date: '********************',
      vary: 'Origin',
      xkey: 'project-************, project-******************',
      via: '1.1 google',
      'alt-svc': 'clear',
      connection: 'close'
    },
    statusCode: 403,
    statusMessage: 'Forbidden'
  }

Nov 17, 2020, 11:57 PM
The error looks to be coming from the promise after the client.commit() on line #61
Nov 18, 2020, 1:23 AM
I solved it. Whoooops.
Nov 18, 2020, 2:55 AM

Sanity.io – build remarkable experiences at scale

Sanity is a customizable solution that treats content as data to power your digital business. Free to get started, and pay-as-you-go on all plans.

Categorized in

Related answers

Get more help in the community Slack

TopicCategoriesFeaturedRepliesLast Updated
After adding the subtitle and running this code npm run graphql-deploy It does nothingSep 15, 2020
how to limit a reference to just one entry in Studio reference input side versus the default as-many-entries-as-you-fill-in-an-array...Sep 18, 2020
Is it possible to fetch more than one "_type" using GROQ?Nov 2, 2020
I want to add a view with the Structure builder (S.view.component) where I list similar documents based on the title. What...Sep 23, 2020
Is there a structure builder example where the format of each preview for the document list is modified?Feb 3, 2021
I have an array of references to a country schema type but it always just returns NULL values for meJan 30, 2021
Hi, I need help with a query for getting the url of an image asset. Here is what I've been trying, but I only get the _ref...Dec 1, 2020
Sanity UI looks brilliant :smiley: Is something like the current date picker possible at the moment? I’m not sure if anicon...Dec 21, 2020
Hey everyone. I have been coding and may have potentially accidentally deleted something. Does anyone know how to resolve...Dec 26, 2020
Hello everyone and happy new year :raised_hands::skin-tone-2:, I have a problem with outputting Portable Text :disappointed:...Jan 1, 2021

Related contributions

Clean Next.js + Sanity app
- Template

Official(made by Sanity team)

A clean example of Next.js with embedded Sanity ready for recomposition.

Cody Olsen
Go to Clean Next.js + Sanity app

Blog with Built-in Content Editing
- Template

Official(made by Sanity team)

A Sanity-powered blog with built-in content editing and instant previews.

Go to Blog with Built-in Content Editing