
Разработчикам, развертывающим Shopify для средних и крупных компаний, хорошо известно, насколько важно иметь отстроенные каналы коммуникации с клиентами. В этом вам поможет платформа WhatsApp Business, с помощью которой можно отправлять автоматизированные сообщения тысячам клиентам и легко масштабировать процесс по мере роста клиентской базы.
В этом руководстве описан процесс подключения WhatsApp к Shopify и отправки уведомлений WhatsApp клиентам на основе событий магазина, которые они активируют своими действиями, например отправляя товар в корзину или размещая заказ. Для этого мы будем использовать Cloud API на хостинге Meta.
Чтобы пройти этот курс, вам потребуется:
Выполнив последнее действие, вы получите временный маркер доступа. Он понадобится для дальнейшей работы с этим курсом, поэтому сохраните его.

Чтобы продолжить работу с курсом, убедитесь, что все требования выполнены.
Используя шаблоны сообщений WhatsApp, вы можете создавать сообщения разных форматов для отправки клиентам, давшим согласие на их получение в приложении.
Чтобы создать сообщение с уведомлением о заказе, выполните следующие действия:

Вы создали шаблон подтверждения заказа order_confirmation. Теперь его нужно настроить. Сообщение должно отображаться для клиента следующим образом:
Мы получили ваш заказ!
[Имя клиента], здравствуйте!
Благодарим за покупку.
Мы уже обрабатываем ваш заказ № 23190. Он будет отправлен в течение 2–3 рабочих дней.
Когда это произойдет, мы отправим вам сообщение.
В редакторе шаблона в разделе "Заголовок" выберите Текст. Строка "Мы получили ваш заказ!" будет заголовком, а остальной текст будет скопирован в раздел текста.
Далее под полем текста дважды нажмите Добавить переменную, чтобы добавить две переменные. Скопируйте и вставьте первую переменную — {{1}} — туда, где должно быть имя клиента. Затем скопируйте и вставьте вторую переменную — {{2}} — в то место, где указывается номер заказа.
Ваше сообщение будет выглядеть следующим образом. Его можно посмотреть на этой же странице.

Нажмите Отправить, чтобы сохранить шаблон сообщения.
Ваш шаблон готов. С помощью платформы WhatsApp Business создайте Webhooks в профиле администратора Shopify и добавьте приложение, которое автоматически отправляет сообщение клиенту при оформлении заказа.
Предположим, вы хотите отправлять автоматические сообщения клиентам каждый раз, когда они оформляют заказ в вашем магазине в Shopify. Для этого можно регулярно проверять, есть ли в магазине новые заказы. Однако постоянная отправка запросов API к магазину не так эффективна, особенно если новых заказов нет.
Гораздо эффективнее, если Webhooks будет отслеживать событие создания заказа в вашем магазине и уведомлять вас каждый раз, когда клиент размещает заказ.
Рассмотрим, как создать Webhooks создания заказа и связать его с сервером Express.
Для начала создайте папку проекта с именем "whatsapp-demo".
Затем запустите терминал, перейдите в каталог whatsapp-demo и выполните следующую команду, чтобы инициализировать проект Node.js:
npm init -y
Установите библиотеку express, которая используется для создания веб-сервера в Node.js, выполнив следующую команду:
npm i express
Вы настроили среду разработки. Теперь нужно создать сервер Express.
В папке whatsapp-demo создайте файл с именем test.js. Откройте его в своем обычном редакторе кода, а затем скопируйте и вставьте туда следующий код:
const express = require('express')
const app = express()
app.post('/webhooks/orders/create', (req, res) => {
console.log('Yes, We got an order!')
res.sendStatus(200)
})
app.listen(3000, () => console.log('Now running on port 3000!'))Этот код настраивает базовый сервер Express, который выдает сообщение в терминале сервера, когда Webhooks отправляет уведомление о событии создания заказа.
Прежде чем связывать его с Webhooks в Spotify, нужно настроить туннель.
Когда вы настраиваете Webhooks, Shopify запрашивает общедоступный URL-адрес, по которому он будет отправлять уведомление.
Если вы используете общедоступный сервер, укажите его URL. Если вы проходите этот курс на локальном компьютере, создайте туннель с общедоступным URL, использующим HTTPS.
Прежде всего необходимо установить ngrok. Для этого выполните следующую команду:
npm install -g ngrok
Затем запустите ещё одно окно терминала и выполните следующую команду, чтобы получить туннель с URL для локального сервера:
ngrok http 3000 Forwarding https://xxxx-xxx-xxx-xxx-xxx.ngrok.io
Этот URL понадобится на следующем шаге, сохраните его. Если вы перезапустите этот клиент, то получите новый URL, так что его нужно будет обновить везде, где он использовался.
Перейдите в профиль администратора магазина в Shopify и откройте Settings > Notifications (Настройки > Уведомления). Затем прокрутите вниз до раздела Webhooks и нажмите Create webhook (Создать Webhooks).

Добавьте Webhooks создания заказа и укажите созданный ранее URL туннеля или общедоступный URL.

Запустите локальный сервер в другом терминале с узлом index.js и нажмите Send test notification (Отправить тестовое уведомление).

Если всё настроено правильно, в терминале сервера вы получите сообщение "Yes we got an order" (Да, есть новый заказ).
Итак, вы настроили подключение между своим магазином в Shopify и сервером Express. Теперь отправим шаблон сообщения WhatsApp клиенту после размещения заказа.
Установите Axios, выполнив в терминале следующую команду:
npm i axios
Axios понадобится для выполнения запроса POST, который отправляет клиенту сообщение WhatsApp.
После установки Axios создайте ещё один файл в папке проекта и назовите его customMessage.js. Затем импортируйте axios и express в этот файл, используя следующий код:
const axios = require('axios').default
const express = require('express')
const app = express()Теперь создайте маршрут для обработки уведомления о создании заказа от Shopify. Для этого выполните следующий код:
app.post('/webhooks/orders/create', async (req, res) => {
const body = await getRawBody(req);
const order = JSON.parse(body.toString());
console.log("Yes, We got an order!", order.customer.phone);
// Remaining code will go here
})Когда Shopify вызывает /webhooks/orders/create с заказом, сведения о заказе отправляются по маршруту, указанному в res, втором аргументе функции асинхронного обратного вызова и объекта JavaScript.
Теперь необходимо получить из сведений о заказе номер телефона, имя клиента и ID заказа, чтобы использовать их в параметрах запроса API:
const data = {
"messaging_product": "whatsapp",
"to": `${order.customer.phone}`,
"type": "template",
"template": {
"name": "order_confirmation",
"language": { "code": "en_GB" },
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": `${order.customer.first_name}`
},
{
"type": "text",
"text": `${order.id}`
}
]
}
]
}
} Показанный выше объект содержит все параметры, необходимые для выполнения запроса. Убедитесь, что имя шаблона, указанное в объекте, совпадает с именем шаблона, созданным в WhatsApp Business Manager.
Затем создайте объект config с вложенным объектом headers. Внутри объекта headers укажите в качестве значения поля Authorization маркер доступа WhatsApp (замените ACCESS_TOKEN своим маркером), а Content-Type присвойте значение application/json:
const config = {
headers: { Authorization: `Bearer <ACCESS_TOKEN>`, 'Content-Type': 'application/json'}
};Теперь создайте запрос POST с помощью Axios и передайте в качестве аргументов объекты config и data. Вложите методы then и catch, чтобы показать результат (или сообщение об ошибке, если объект promise не сработал):
if (order.customer.phone) {
return res.sendStatus(403);
} else {
axios
.post(
"https://graph.facebook.com/<API_VERSION>/<YOUR_WABA_ID>/messages",
data,
config
)
.then((result) => console.log(result))
.catch((err) => console.log(err));
return res.sendStatus(200);
}Замените YOUR_WABA_ID своим ID WhatsApp Business из панели приложения WhatsApp, а API_VERSION — значением совместимой версии Cloud API (по умолчанию это версия 15.0).
Приложение настроено!
Чтобы протестировать настройку, туннель ngrok должен по-прежнему работать, а вам необходимо запустить сервер Express в другом терминале:
node customMessages.js
Shopify поддерживает ещё более 50 Webhooks для других событий. Вы можете подписаться на добавление товаров в корзину, обновление корзины, создание коллекций товаров и их обновления, сбои при транзакциях и многие другие.
Чтобы использовать любой из этих Webhooks, следуйте описанной выше схеме: создайте новый Webhooks в профиле администратора Shopify и зарегистрируйте тему как маршрут на своем сервере Express.
Как вы могли убедиться, платформа WhatsApp Business помогает вам легко общаться с клиентами как вручную, так и программным путем на основании событий в магазине Shopify.
Интеграция WhatsApp в Shopify позволяет отправлять клиентам множество сообщений в режиме реального времени. Сообщения можно отправлять автоматически (например, на основании события) или вручную. Все это легко настраивается и масштабируется. WhatsApp и Shopify в сочетании помогают сделать общение с клиентами последовательным и эффективным.
Информацию о том, как интегрировать WhatsApp с проектами и приложениями, см. в наших руководствах для разработчиков.
Подпишитесь на ежемесячную рассылку Meta for Developers.