Интеграция с 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 \InSales\API\ApiClient($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 лишнею строчку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *