Skip to main content

Webhooks

Webhooks allow extensions to stay in sync with the Fynd Commerce data or perform actions after a specific event occurs in a store. Webhooks are a performant alternative to continuously polling for changes to store data.

Reference

Refer to Webhooks for the full list of available webhook events and configuration details.

Register for Webhook Events​

Webhook events help you handle tasks when certain events occur on platform. You can subscribe to such events by passing webhook_config in setupFdk function.

let fdkExtension = setupFdk({
api_key: process.env.EXTENSION_API_KEY,
api_secret: process.env.EXTENSION_API_SECRET,
callbacks: {
auth: async function (data) { return '/' },
uninstall: async function (data) { },
},
storage: new RedisStorage(redis),
access_mode: 'offline',

webhook_config: {
api_path: '/api/webhooks',
notification_email: 'test@abc.com',
subscribe_on_install: false,
subscribed_saleschannel: 'specific',
event_map: {
'company/location/update': {
version: '1',
handler: handleLocationUpdate,
},
'application/coupon/create': {
version: '1',
topic: 'coupon_create_kafka_topic',
provider: 'kafka'
}
}
},
});

A POST API path on the given api_path to receive webhook call. The API must call the fdkExtension.webhookRegistry.processWebhook() method with the request object. This method validates the payload with a signature and calls individual handlers for the event passed in the webhook config.

const fdkExtension = setupFdk({ ... });

app.post('/api/webhooks', async (req, res, next) => {
try {
await fdkExtension.webhookRegistry.processWebhook(req);
return res.status(200).json({"success": true});
}
catch(err) {
logger.error(err);
return res.status(500).json({"success": false});
}
});

How Webhook Registery Subscribes to Webhooks on Fynd Commerce​

After the webhook config is passed to setupFdk, whenever an extension is launched to a company where an extension is installed or to be installed, webhook config data is used to create a webhook subscriber on the Fynd Commerce for that company.

note

Any update to the webhook config will not automatically update subscriber data on Fynd Commerce for a company until the extension is opened at least once after the update.


Was this section helpful?