Перейти к содержимому

Включить отладку поставщиков

Пока опция включена, платформа пишет в базу журнал обращений технических адаптеров поставщиков: что отправлялось, что приходило, сколько длился запрос, был ли HTTP‑ответ и текст ошибки (если есть). Это серверные логи: их можно просматривать в панели позже, в отличие от отладки проценки в публичной части.

Записи создаются только при включённой отладке. Если переключатель выключить, новые строки не появляются.

Где находится переключатель

Настройки → Общие настройки → вкладка «Проценка» → блок «Отладка» → «Включить отладку поставщиков»

Где смотреть журнал

Настройки продаж → Поставщики → откройте нужного поставщика → вкладка «Отладка».

После шага проценки откройте поставщика, по которому хотите разобрать цепочку запросов.

Как пользоваться (кратко)

  1. Включите отладку поставщиков и нажмите Сохранить
  2. Выполните проценку по артикулу, который точно есть в наличии у этого поставщика — так в логах будут полноценные ответы API и корректные данные для разбора
  3. Откройте карточку поставщика и вкладку «Отладка»
  4. Отсортируйте по времени (по умолчанию сверху — последние записи), при необходимости отфильтруйте по «Успех»
  5. Нажмите «Подробнее» у строки, чтобы увидеть полные запрос и ответ в модальном окне

Таблица журнала: колонки и смысл

КолонкаЧто означает
IDУникальный номер записи в таблице storage_adapter_logs.
АдаптерПолное имя PHP‑класса адаптера (например Modules\StorageAdapters\Rossko\RosskoAdapter). По нему видно, какой модуль обслуживает поставщика.
ДействиеКороткий код этапа обработки (см. ниже).
УспехПризнак «ошибки нет»: в данных записи поле ошибки пустое. Если внутри цепочки заполнено текстовое поле ошибки — в колонке неуспех, даже если запись носит диагностический характер (см. ниже).
HTTPКод ответа HTTP от API поставщика при реальном запросе (см. ниже). Для записей без HTTP‑запроса может быть пусто.
Длительность, мсДлительность операции в миллисекундах там, где она измерялась (запрос к API, ожидание пакета параллельных запросов и т. д.).
СозданоВремя создания записи; в панели выводится с учётом часового пояса браузера.

Колонка «HTTP»: коды ответа

В колонку попадают обычные сетевые коды ответа (как в браузере: 200, 404 и т. д.) — их отдал сервер поставщика на запрос программы. Это не придумка платформы и не отдельная таблица «у каждого поставщика свои числа» — коды одинаковые по правилам интернета, но разные поставщики по-разному их используют (см. таблицу и блок «Важно» ниже).

Диапазон / примерКоротко, что это значит
2xx (часто 200)Связь с сервером поставщика прошла без сбоя — ответ доехал. Но одной цифры 200 мало: по ней не видно, нашёлся артикул или нет. Часто при 200 в ответе всё равно пусто или написано «не найдено» — откройте «Подробнее» и прочитайте ответ целиком.
4xx (например 404, 401, 403)Обычно что‑то не так с запросом или доступом (ключ, права, адрес). Подробности — в «Подробнее» и в тексте ошибки в записи.
5xx (например 500, 502, 503)Ошибка или перегрузка на стороне сервера поставщика (или промежуточного шлюза).

Важно: у одного поставщика «номера нет» может быть при 200 и пустом ответе, у другого — сразу 404. Одной таблицы «код → что случилось у всех» не существует: в колонке HTTP — грубо «ответ дошёл или нет», а нашлось ли что‑то по артикулу — только в «Подробнее» (и в ошибке, если адаптер её записал).

Если колонка HTTP пустая — для этой строки часто не было отдельного сетевого ответа (сводка по нескольким запросам, отбор «лучших» позиций и т. п.).

Колонка «Успех»

В коде платформы признак успеха выставляется так: успех = текст ошибки не задан (error пустой). Любая непустая строка в поле ошибки даёт неуспех в таблице — в том числе для служебных сообщений вроде «неуспешный HTTP‑код» или «параллельные запросы заняли больше ожидаемого времени», если они были записаны в поле ошибки.

Отдельные информационные записи (например сводка по «медленным» запросам дольше 3 секунд) могут быть с пустым error — у них будет успех, хотя в response есть поясняющий текст.

«Подробнее»

В модальном окне — что отправляли поставщику и что он прислал (часто длинный текст в «техническом» виде), плюс при необходимости ошибка, код HTTP, время. Точный вид зависит от версии платформы.

Значения поля «Действие» (action)

Набор кодов задаётся в коде адаптеров и общей логики. Ниже — типичные группы; у конкретного поставщика могут встречаться и другие строки, если адаптер логирует свои этапы.

Запрос брендов и запрос позиций

  • brands — этап подбора брендов по артикулу (или аналогичный запрос к API в терминах данного адаптера).
  • parts — этап запроса позиций / цен по артикулу (и связанным параметрам), когда ответ уже привязан к выбранным брендам или к логике адаптера.

Это основные «пользовательские» типы записей при разборе проценки.

Параллельные запросы по списку брендов (общая логика BaseAdapter)

Если адаптер использует параллельный опрос нескольких брендов, в журнале могут появляться:

КодНазначение (по смыслу записи)
parts_parallel_startСтарт пакета: сколько промисов создано, какие бренды в пакете.
parts_parallel_resultsСводка после завершения ожидания: сколько запросов выполнено/отклонено, сколько времени заняло ожидание.
parts_parallel_batchИтоговое время ожидания всего пакета (мс).
parts_parallelРезультат по одному бренду: URL, параметры, число позиций после разбора, HTTP‑код; либо текст ошибки (сеть, JSON, не‑2xx и т. д.).
parts_parallel_no_promisesНе удалось создать ни одного HTTP‑запроса (пакет пустой на выходе).
parts_parallel_emptyПосле ожидания результатов нет или они в неожиданном виде.
parts_parallel_errorИсключение на этапе ожидания всех промисов (критическая ошибка пакета).
parts_parallel_slowЛибо предупреждение о слишком долгом общем ожидании (в поле ошибки может быть пояснение), либо информация о запросах дольше 3 секунд по отдельным брендам — смотрите, заполнено ли поле ошибки и тело response.

Ограничение выдачи по настройкам проценки

  • parts_top_items_selected — сработало ограничение «Возвращать только лучшие позиции»: в запросе/ответе фиксируются числа «сколько аналогов было» и «сколько оставлено после отбора топ‑N».

Прочие коды

Отдельные адаптеры могут писать, например, auth_token — получение токена авторизации перед основными запросами. Точный смысл всегда можно уточнить в «Подробнее» по полям request / response.

Очистка журнала

Накопленные записи можно удалить массово: Система → Очистка системы — действие, которое очищает логи запросов поставщиков (таблица storage_adapter_logs). Имеет смысл перед этим убедиться, что нужные данные сохранены или диагностика завершена.

Когда включать

  • при подключении нового поставщика;
  • при ошибках, пустой выдаче, подозрении на таймауты или неверный ответ API;
  • для сравнения длительности запросов между поставщиками.

Внимание

Запись каждой операции увеличивает объём данных в базе и нагрузку. Не оставляйте отладку включённой постоянно в продакшене — только на время диагностики.

Связанные настройки

База знаний для EMS-платформы PlatParts.