База знаний EMS-платформы PlatParts Руководство по настройке EMS-платформы PlatParts
Актуальная (latest)

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

На этой странице 15

Пока опция включена, платформа пишет в базу журнал обращений технических адаптеров поставщиков: что отправлялось, что приходило, сколько длился запрос, был ли 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;
  • для сравнения длительности запросов между поставщиками.
Внимание

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

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