Created
November 21, 2016 08:06
-
-
Save magician11/08a226555161d633e21fc2bcf374e708 to your computer and use it in GitHub Desktop.
How to listen to Shopify webhook event data with Node.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* eslint-disable no-console */ | |
const express = require('express'); | |
const bodyParser = require('body-parser'); | |
const app = express(); | |
/* | |
Shopify issues a HTTP POST request. | |
- https://help.shopify.com/api/tutorials/webhooks#receive-webhook | |
*/ | |
app.use(bodyParser.json()); | |
app.use(bodyParser.urlencoded({ | |
extended: true, | |
})); | |
/* | |
In your Shopify store under.. | |
Settings->Notifications | |
Click "Create a webhook" | |
- Choose your event | |
- Leave the format as JSON | |
- set the URL with your IP address to your server so it's something like http://123.345.11.22:3800/your-path | |
Then update the path "your-path" below to match, as well as the port number below. | |
*/ | |
app.post('/your-path', (req, res) => { | |
// let Shopify know we received the order details ok | |
res.send('OK'); | |
// the body of the data received | |
const theData = req.body; | |
console.log(theData); | |
}); | |
const portToListenOn = 3800; | |
/* | |
On your server run | |
node listen-for-shopify-webhooks.js | |
*/ | |
app.listen(portToListenOn, () => { | |
console.log(`Listening for Shopify webhook event data on port ${portToListenOn}. Started ${new Date().toString()}`); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Well subscribing to webhooks sends the payload to a server.
Depending on your what you're trying to do, I'd try and get the data directly from the frontend. If they only way the front-end data can get this data is by waiting for the server to receive it, then you could write that data to a database like Firestore, and have your front-end listen for changes to that database.