Mercado Eletrônico в GLPI: заявки на закупку прямо из заявки

Как модуль Mercado Eletrônico из NexTool превращает заявку GLPI в заявку на закупку в ME: синхронизированный каталог, однократное согласование, хронология через webhook и сверка по принципу inbox-first, которой мы научились при сопровождении.

В этой статьеРазделов: 8

Закупать прямо из заявки, ничего не вводя повторно на портале закупок. Модуль Mercado Eletrônico из NexTool связывает GLPI с платформой закупок Mercado Eletrônico (ME) и превращает заявку в заявку на закупку — с синхронизированным каталогом, однократным согласованием и автоматическим отслеживанием цикла вплоть до заказа, и всё это внутри GLPI.

Проблема

Когда ИТ или отдел снабжения получает запрос на закупку через заявку, традиционный процесс ручной и дублирующийся: специалист регистрирует заявку в GLPI, открывает портал Mercado Eletrônico, заново вводит позиции, выбирает поставщика и согласующего, а затем возвращается к заявке, чтобы записать номер. Каждая заявка на закупку проходит через два инструмента и нередко через два согласования. Результат — переделки, опечатки и, что больнее всего при аудите, потеря прослеживаемости между заявкой, с которой началась закупка, и вышедшим заказом. Когда кто-то спрашивает: «этот заказ на R$ 8 тыс. действительно согласовал тот, кто должен был?», ответ теряется между двумя системами.

Как работает Mercado Eletrônico

Модуль добавляет в заявку вкладку Requisição ME и обеспечивает связь с ME от начала до конца:

  • Синхронизированный каталог — товары, группы, поставщики, филиалы и пользователи ME импортируются в GLPI, с поиском по всем полям.
  • Заявка на закупку прямо в заявке — каскад «Группа → Товар», согласующий, филиал доставки, категория и количество, с расчётом ориентировочной суммы в реальном времени.
  • Однократное согласование — тот, у кого есть право «Отправлять уже согласованную заявку на закупку», отправляет её в ME уже согласованной, исключая второе ручное согласование; без этого права она поступает в ME в статусе ожидания согласования.
  • Автоматическое подтверждение — статус возвращается из ME через webhook, а процедура сверки поддерживает всё в синхронизированном состоянии; когда ME отклоняет заявку на закупку из-за отсутствия прав на группу товаров, заявка показывает причину, заявка на закупку возвращается на исправление и повторную отправку, а группа помечается в каталоге как заблокированная.
  • Хронология в заявке — предзаказ, котировка и заказ отображаются как этапы прямо в заявке, без открытия портала ME.

Что модуль даёт сверх штатного GLPI

В GLPI есть надёжный учёт поставщиков, договоров и бюджетов, но он не взаимодействует с внешней платформой закупок. Именно этот мост и строит модуль:

ПотребностьШтатный GLPIС модулем Mercado Eletrônico
Оформить закупку из заявкиРучная пометка в тексте заявки, без структурыВкладка Requisição ME с позициями, согласующим и ориентировочной суммой
Каталог товаров и поставщиковРучной учёт поставщиков; без каталога MEСинхронизированный каталог ME (товары, группы, поставщики, филиалы)
Отправить заявку на закупку на платформу закупокЗаново вводить всё на портале MEОтправка прямо из заявки, без повторного ввода
Отслеживать предзаказ, котировку и заказВручную проверять портал MEАвтоматическая хронология в заявке через webhook
Группа без права на закупкуОтказ виден только на портале MEОтказ отображается в заявке с причиной, а группа помечается в каталоге как заблокированная

От заявки до заказа, не выходя из GLPI

После отправки заявка на закупку проходит цикл ME — предзаказ, котировка и заказ. Модуль автоматически отслеживает каждый этап через webhooks Mercado Eletrônico и строит хронологию прямо в заявке: специалист видит, сформирован ли предзаказ, на какой стадии котировка и когда был выпущен заказ. Каждое событие, присылаемое ME, проходит следующие этапы, прежде чем попасть в заявку:

# what GLPI does with each event ME sends
1. checks Basic Auth: user and password of this instance's credential (without them, rejects with 401)
2. checks the HMAC signature (X-ME-WEBHOOK-SIGNATURE), only if the verification token is configured
3. ignores repeated events (X-ME-EVENT-ID) and stores the raw event in the inbox
4. answers 200 in under 10 s, within the ME deadline
5. the "tracking" task (every 2 min) fetches the pre-order, quotation or order by ID from the ME API
   and updates the ticket timeline

Деталь, которая проявляется только при эксплуатации интеграции в продуктиве: эндпоинты списков API Mercado Eletrônico (/pre-orders и /orders) игнорируют значительную часть фильтров запроса, которые предлагает документация. Мы обнаружили это при сопровождении, увидев, что сверка приносит записи, которые должны были быть отфильтрованы. Решение — рассматривать интеграцию как входящий ящик: вместо того чтобы доверять удалённому фильтру, модуль сохраняет каждое полученное событие, запрашивает ресурс по его собственному ID в API ME и сопоставляет его с заявкой локально — по номеру заявки на закупку, который приходит в событии или в позициях предзаказа. Кроме того, каждый webhook должен пройти Basic Auth с пользователем и паролем учётных данных этой инсталляции, а подпись HMAC можно требовать как дополнительный уровень: webhook без действительных учётных данных отклоняется, потому что статус закупки нельзя подделать любым запросом, нашедшим URL.

Как включить

  1. Установите NexTool в ваш GLPI 11.
  2. Откройте Настройки > NexTool > Модули и активируйте Mercado Eletrônico.
  3. На вкладке Интеграции укажите учётные данные API ME и проверьте подключение.
  4. Определите область действия (организации и категории заявок), в которой можно создавать заявки на закупку.
  5. Зарегистрируйте webhooks цикла одним кликом и проверьте URL обратного вызова, настроенный в ME.

Кому подходит

Компаниям, которые используют Mercado Eletrônico как платформу закупок и обрабатывают запросы через службу поддержки в GLPI, — ИТ, снабжению и административно-хозяйственным службам, которые хотят исключить двойной ввод и хранить заявку и закупку прослеживаемыми в одном месте.

Когда НЕ использовать: если компания не использует Mercado Eletrônico как платформу, модуль неприменим — он специфичен для ME, а не является универсальным каталогом закупок. Если запрос на закупку возникает не из заявки, интеграция не добавляет прослеживаемости. А если вам нужно лишь вести учёт поставщиков, договоров и внутренних бюджетов, штатного учёта GLPI достаточно, без внешней интеграции.

Совместимость

  • GLPI: 11.0+
  • План: лицензируемый (по запросу)
  • Плагин: NexTool 6.15.0+
  • Mercado Eletrônico: API v1 (тестовая и продуктивная среды)

Следующий шаг

Mercado Eletrônico входит в NexTool — экосистему модулей для расширения GLPI без доработок кода. Посмотрите страницу модуля или свяжитесь с командой, чтобы получить демонстрацию.


Проверено командой NexTool Solutions.

Часто задаваемые вопросы

Добавляет в заявку вкладку для создания заявок на закупку прямо на платформе Mercado Eletrônico (ME) с синхронизированным каталогом, однократным согласованием и автоматическим отслеживанием статуса вплоть до заказа — без повторного ввода данных на портале ME.

Нет, если у отправителя есть право «Отправлять уже согласованную заявку на закупку»: заявка уходит в ME уже согласованной, что исключает второе ручное согласование, существующее в традиционном процессе с двумя системами. Без этого права она поступает в ME в статусе ожидания согласования.

Через webhooks ME. Модуль получает события по предзаказу, котировке и заказу, аутентифицирует каждое событие через Basic Auth (подпись HMAC — дополнительный необязательный уровень), строит хронологию в заявке и поддерживает синхронизацию статуса; автоматические задачи каждые несколько минут снова обращаются к ME, чтобы подтвердить заявку на закупку и обновить открытые предзаказы и заказы.

Да. Товары, группы, поставщики, филиалы и пользователи ME синхронизируются в GLPI, с поиском по всем полям и каскадом «Группа → Товар» при формировании заявки на закупку.

Модуль совместим с GLPI 11.0+ и требует плагин NexTool 6.15.0 или выше. Это лицензируемый модуль (по запросу), работающий с API v1 Mercado Eletrônico в тестовой и продуктивной средах.

Нужна помощь?