Публикация

подписчиков: 3 Подписаться
0
Avatar

Отправка post при изменении статуса заказа

Всем большой мой привет!

Прошу не кидать камнями и по возможности не отправлять лишний раз читать документацию.

Вообще, использовать апи МС не собирался, чтобы не заниматься потом сплошной отладкой, но возникла острая необходимость реализации одного решения на основе апи или триггера

Если я правильно понял, то в МС нет триггеров как таковых. Что нужно?

Нужно, чтобы при изменении статуса заказа в МС генерился POST запрос с данными заказа (номер заказа в частности) и отправлялся на мой сервер в скрипт.

Смотрю, что документация довольно обширная. Подскажите, как это можно реализовать проще?

admin

Войдите в службу, чтобы оставить комментарий.

Комментариев: 9

0
Avatar

Добрый день!

 

В АПИ есть триггеры-вебхуки на изменение сущностей - подробнее https://online.moysklad.ru/api/remap/1.1/doc/index.html#веб-хуки . Они позволяют подписаться на изменение конкретных типов сущностей. При срабатывании веб-хуков вам будет приходить href сущности, по которому можно получить ее актуальное состояние.

Екатерина Евтухова 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Эээ. А с примерами? Так, чтобы понятно было. Я ранее не работал с вебхуками пт апи. На пальцах какой принцип работы. Я один раз вношу требование на отслеживание изменения статуса заказа и потом скриптом обрабатываю входящие запросы?

admin 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Добрый день.

Вы правы.

Используя запрос на создание вебхука, вы указываете какая сущность будет отслеживаться (например, заказ покупателя), тип изменения (создание, обновление, удаление), url на который будет отправляться веб-хук.

В данном случае подойдет веб-хук на изменение. При любом изменении заказ (не только его статуса) на указанный url будет отправляться запрос, в котором будет ссылка на измененный заказ. По ней вы сможете получить актуальное состояние заказа и произвести необходимые действия.

Dtrufanov 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Поправьте меня, если я ошибся.

Для того чтобы реализовать механизм получения нового статуса заказа мне нужно:

Создать ЕДИНОРАЗОВО для всех заказов веб хук на изменение статуса заказа, а именно:

отправить всего один раз запрос (можно ли его создать при помощи postman например?)
скриптом ожидать ссылку на измененный заказ
сделать запрос текущего статуса по пришедшей ссылке
получить и вытащить из ответа на предыдущий запрос нового статуса

admin 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Да, для отдельной сущности, например, для заказов покупателей, веб-хук нужно создать один раз. Но это будет не веб-хук на изменение статуса заказа, а вообще на любое изменение заказа.

Можно сделать это с помощью postman

Скрипт должен ожидать post запрос, пример отправляемых данных можно увидеть в документации.

В запросе придет ссылка на весь заказ, то есть сделав запрос по ней вы получите заказ целиком, в том числе и его текущий статус. Но я еще раз повторю, веб-хук вешается на любое изменение, не только статуса.

Dtrufanov 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

"Но я еще раз повторю, веб-хук вешается на любое изменение, не только статуса."

Тогда это не решает моей задачи т.к. вести учет последнего статуса при поступлении 20-30 заказов в день без базы тяжелова-то.

Может, есть какой-то метод, который отслеживает изменения конкретного параметра заказа? Ну, или можно настроить веб-хук как-то, чтобы отправка запроса на мой скрипт происходила только в случае изменения статуса заказа?

admin 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Может, подскажите, какое в в моем случае может подойти решение кроме заведения отдельной базы по изменению статусов по каждому заказу?

admin 0 проголосовали
Действия с комментариями Постоянная ссылка
1
Avatar

Возможно, вам подойдет решение с промежуточным статусом. Этот статус выставляется в основном интерфейсе. Ваш скрипт получает веб-хук, запрашивает заказ. Если он имеет определенный статус, то выполняется нужное действие, а также меняется статус. При всех остальных изменениях заказа, скрипт увидит другой статус и никаких действий совершать не будет.

Dtrufanov 1 голос
Действия с комментариями Постоянная ссылка