Интеграция с insales. Как настроить уведомления через webhook
Если ваш интернет-магазин работает на платформе insales, то вам не помешает узнать как можно настроить различные уведомления . Например, у меня была задача сделать так, чтобы всякий раз, когда обновляется заказ, происходила бы отправка информации на другую платформу. Для этой цели потребовалось воспользоваться вебхуками. Далее опишу, как я это делал на своем проекте.
1Создал приложение в админ-панели insales. Это нужно, чтобы обратиться к API insales и добавить обработчик webhook

подробнее здесь https://www.insales.ru/collection/doc-rabota-s-api-i-prilozheniya/product/kak-integrirovatsya-s-insales
2 скачал php скрипты по работе с API insales https://github.com/insales/insales_php_api
и положил на свой хост. Далее выполнил настройку в соответствии с инструкцией разработчика, но команду
composer require insales/api-client-php dev-master
заменил на
composer install
3 Создал новый php-файл, скопировал туда
require_once 'vendor/autoload.php';
и прописал ниже код
$password = "<password>";
$host ="yourshop.myinsales.ru";
$identity = "identity0fyouraplication";
Заменил все значения данными, которые получил на шаге 1.
4 Далее с помощью АПИ и php скриптов добавил обработчик вебхука на insales. Для этого ниже кода
$client = new InSalesAPIApiClient($identity, $password, $host);
разместил строчки
$response = $client->createWebhook([ 'webhook' => [ 'address' => 'https://yourhist/yourscript', 'topic' => 'orders/update', 'format_type' => 'json', ] ]);
В поле ‘address’ указал адрес, где расположен скрипт, который будет запускаться при срабатывании вебхука insales ( на обновление заказов). В данный скрипт скопировал вот этот код
$file = ‘проверка.txt’;
file_put_contents($file, date('Y-m-d H:i:s', time()));
чтобы в файл проверка.txt записывалось время, когда скрипт вызывается.
5 Выполнил проверку вебхука: поменял статус одного из заказов.
Через фтп зашел в файл проверка.txt и по записанному времени убедился, что вебхуком скрипт вызывался.
Еще добавил в скрипт код
$result = file_get_contents('php://input');
$order = json_decode($result,true);
чтобы получать массив с данными о обновлениях заказов вот в таком виде
ПРИМЕЧАНИЕ: сразу вебхук у меня не заработал. В тех.поддержке указали на то, что при вызове моего скрипта происходит редирект 301. Оказалось, что я намедни немного перемудрил и оставил в htaccess лишнею строчку.