Скопируем URL вебхука после создания шага, нажав на ссылку во всплывающем баннере:
В кабинете Rubitime в разделе “API” вставим скопированный на шаге 1 URL в соответствующее поле, сохраним настройки:
Чтобы не расходовать лишние транзакции в APInita, из отправляемых событий можно оставить только “Обновление записи (event-update-record)”, остальные две галочки снять.
Включаем сценарий:
В Rubitime создадим запись на нужную для интеграции услугу. Видим, что модуль сработал:
Открываем просмотр модуля, выходные данные. Мы получили данные о записи, из которых нас интересуют ключи: status (статус записи) и service_id (номер услуги). Если мы в Rubitime изменим статус этой записи на “завершен”, то получим { “status”: 2 }.
Выключаем сценарий для получения возможности редактирования. Следующим после модуля входящих данных поместим модуль IF:
Назовем его “проверка услуги и статуса записи” и пропишем следующее условие:
{{ s1.body.data.service_id == 46761 and s1.body.data.status == 2}}
, где “46761” - это ID услуги, полученный на шаге 1.3 (подставьте свое значение), а “2” - это статус услуги “Завершен”.
В настройках системы МойСклад создадим токен, скопируем его, желательно сразу вставить в блокнот, чтобы не потерять.
Переходим в APInita в раздел “Подключения”. Создадим новое подключение с названием “МойСклад” (может быть любым), тип подключения: API ключ, Authorization: Bearer. Вставляем в поле ранее скопированный токен, сохраняем.
Подключение после сохранения имеет статус “подключено”:
Чтобы в дальнейшем проводить списание конкретных товаров по конкретному складу и организации, нужно сначала узнать их ID в системе МойСклад.
Для этого отправим последовательно несколько запросов методом GET, тип (формат) данных application/json
В заголовке запроса передаем: "Accept-Encoding: gzip"
Подключение, созданное в пункте 3.
Далее нам нужно будет последовательно подставить в запрос следующие URL:
Для удобства создадим отдельный сценарий в APInita, назовем его “получение сущностей”, добавим модуль HTTP (назовем его так же) и заполним необходимые поля:
3.2.1.
Вставляем первый URL: https://api.moysklad.ru/api/remap/1.2/entity/organization Сохраняем модуль. Однократно запускаем сценарий:
Открываем модуль, смотрим на выходные данные:
Здесь мы получаем метаданные о каждой организации в виде вложенных массивов. У нас в примере организация одна, поэтому мы сразу видим ее в первом элементе массива rows (0). Если организаций несколько, то находим нужный нам элемент массива, который содержит название нужной организации в ключе “name”. Выделяем и копируем в блокнот значение ключа “id”.
3.2.2.
Переходим снова на редактирование шага, вставляем второй URL: https://api.moysklad.ru/api/remap/1.2/entity/store Сохраняем модуль, однократно запускаем сценарий, смотрим на выходные данные:
Находим элемент массива, который содержит название нужного склада в ключе “name”. Выделяем и копируем в блокнот значение ключа “id”.
3.2.3.
Переходим снова на редактирование шага, вставляем третий URL: https://api.moysklad.ru/api/remap/1.2/entity/product Сохраняем модуль, однократно запускаем сценарий, смотрим на выходные данные:
Здесь последовательно находим нужные элементы массива, которые содержат название нужного товара в ключе “name”. Выделяем и копируем в блокнот значение ключа “id” - для каждого товара свой ID (в нашем примере при оказании услуги расходуется две товарных позиции, оба ID сохраняем в блокнот).
Записав в блокнот ID всех нужных сущностей, выходим из сценария “получение сущностей”.
Теперь, чтобы создать в системе МойСклад списание товаров, отправим HTTP-запрос на URL: https://api.moysklad.ru/api/remap/1.2/entity/loss методом POST, тип (формат) данных text/plain.
В заголовке запроса передаем:
В теле запроса передаем следующий JSON-объект:
{
"store":{
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/store/6d0d7175-045f-11ef-0a80-0f130003d3dc",
"metadataHref": "https://api.moysklad.ru/api/remap/1.2/entity/store/metadata",
"type": "store",
"mediaType": "application/json"
}
},
"organization": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/organization/09072925-03a3-11ef-0a80-08b60008fc32",
"metadataHref": "https://api.moysklad.ru/api/remap/1.2/entity/organization/metadata",
"type": "organization",
"mediaType": "application/json"
}
},
"positions": [
{
"quantity": 1,
"reason": "расход",
"assortment": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/product/5be5f354-046d-11ef-0a80-014d0006d236",
"metadataHref": "https://api.moysklad.ru/api/remap/1.2/entity/product/metadata",
"type": "product",
"mediaType": "application/json"
}
}
},
{
"quantity": 1,
"reason": "расход",
"assortment": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/product/9baa7362-0485-11ef-0a80-1433000be89d",
"metadataHref": "https://api.moysklad.ru/api/remap/1.2/entity/product/metadata",
"type": "product",
"mediaType": "application/json"
}
}
}
]
}
В нашем примере товарных позиций две - соответственно, вложенный массив содержит два элемента.
Возвращаемся в сценарий “списание расходников по стрижке”. Следующим после модуля IF добавим модуль HTTP:
Назовем его “создание списания”, заполним необходимые поля:
Сохраняем модуль, включаем сценарий.
Проверим работу интеграции. В Rubitime создадим запись на услугу “стрижка”, ID которой обрабатывается на шаге 2. Изменим статус записи на “Завершен”. Видим, что сценарий сработал (рядом с модулями загораются зеленые точки, сигнализирующие об успешной передаче данных).
В системе МойСклад создалось списание заданных товаров:
Оставить комментарий