3.5.3. Интеграция с производителями: различия между версиями

Материал из SATURN WIKI
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
 
Строка 37: Строка 37:
| data || array || + || Массив объектов с данными о товарах
| data || array || + || Массив объектов с данными о товарах
|}
|}
{| class="wikitable"
|+ Таблица 3 – Объект в массиве data
! Поле !! Тип !! Обязательность !! Описание
|-
| product_name || string || + || Наименование продукции
|-
| gtin || string || + || Код GTIN (14 цифр)
|-
| sgr_number || string || + || Номер СГР (Свидетельство о гос. регистрации)
|-
| packaging || number || - || Фасовка (в л, кг)
|-
| packaging_unit || string || - || Единица измерения фасовки (л, кг)
|}
6. Пример запроса
curl -X POST "https://fgis-saturn.ru/backend/manufacturer/products?token=abc123def456ghi789" \
  -H "Content-Type: application/json" \
  -d '{
    "manufacturer_inn": "7712345678",
    "manufacturer_name": "ОРГАНИЗАЦИЯ",
    "data": [
      {
        "product_name": "Метаксил СП 1кг",
        "gtin": "4606696006416",
        "sgr_number": "021-02-4273-1",
        "packaging": 1,
        "packaging_unit": "кг"
      },
      {
        "product_name": "Ракурс СК 10л",
        "gtin": "4606696010611",
        "sgr_number": "021-02-4515-0",
        "packaging": 10,
        "packaging_unit": "л"
      },
      {
        "product_name": "Торнадо 500 ВР 10л",
        "gtin": "4606696006676",
        "sgr_number": "021-03-4288-0",
        "packaging": 10,
        "packaging_unit": "л"
      }
    ]
  }'
7. Примеры ответов
Успешная обработка (200 OK)
json
{
  "status": "success",
  "message": "Данные успешно синхронизированы",
  "processed_count": 3,
  "total_products_active": 3,
  "request_id": "req_123456789",
  "sync_timestamp": "2024-01-15T12:30:45Z"
}
Ошибка авторизации (401 Unauthorized)
json
{
  "status": "error",
  "message": "Неверный или отсутствующий токен доступа",
  "code": "INVALID_TOKEN"
}
Ошибка валидации (400 Bad Request)
json
{
  "status": "error",
  "message": "Ошибка валидации данных",
  "errors": [
    {
      "field": "manufacturer_inn",
      "message": "Поле ИНН обязательно для заполнения"
    }
  ]
}
Ошибка сервера (500 Internal Server Error)
json
{
  "status": "error",
  "message": "Внутренняя ошибка сервера",
  "code": "INTERNAL_ERROR"
}

Текущая версия от 12:43, 5 ноября 2025

Спецификация для реализации интеграции ФГИС Сатурн с производителями пестицидов и агрохимикатов для обеспечения регулярной актуализации информации в части сопоставления кодов GTIN и номеров государственной регистрации пестицидов и агрохимикатов

1. Базовый URL

https://fgis-saturn.ru/backend/

2. Эндпоинт для загрузки данных

POST /manufacturer/products?token={access_token}

3. Аутентификация

Передача токена доступа через query-параметр:

token: Уникальный токен доступа, выданный производителю

4. Логика обработки данных

Полная синхронизация: система обрабатывает переданные данные как полный список товаров производителя. Все товары, которые не были переданы в текущем запросе, считаются удаленными/неактивными.

5. Параметры запроса

Таблица 1 – Query-параметры
Параметр Тип Обязательность Описание
token string + Токен доступа для авторизации
Таблица 2 – Тело запроса (JSON)
Поле Тип Обязательность Описание
manufacturer_inn string + ИНН организации-производителя (10 или 12 цифр)
manufacturer_name string + Наименование организации-производителя
data array + Массив объектов с данными о товарах
Таблица 3 – Объект в массиве data
Поле Тип Обязательность Описание
product_name string + Наименование продукции
gtin string + Код GTIN (14 цифр)
sgr_number string + Номер СГР (Свидетельство о гос. регистрации)
packaging number - Фасовка (в л, кг)
packaging_unit string - Единица измерения фасовки (л, кг)

6. Пример запроса

curl -X POST "https://fgis-saturn.ru/backend/manufacturer/products?token=abc123def456ghi789" \
 -H "Content-Type: application/json" \
 -d '{
   "manufacturer_inn": "7712345678",
   "manufacturer_name": "ОРГАНИЗАЦИЯ", 
   "data": [
     {
       "product_name": "Метаксил СП 1кг",
       "gtin": "4606696006416",
       "sgr_number": "021-02-4273-1",
       "packaging": 1,
       "packaging_unit": "кг"
     },
     {
       "product_name": "Ракурс СК 10л",
       "gtin": "4606696010611",
       "sgr_number": "021-02-4515-0", 
       "packaging": 10,
       "packaging_unit": "л"
     },
     {
       "product_name": "Торнадо 500 ВР 10л",
       "gtin": "4606696006676",
       "sgr_number": "021-03-4288-0",
       "packaging": 10,
       "packaging_unit": "л"
     }
   ]
 }'

7. Примеры ответов

Успешная обработка (200 OK)

json
{
 "status": "success",
 "message": "Данные успешно синхронизированы",
 "processed_count": 3,
 "total_products_active": 3,
 "request_id": "req_123456789",
 "sync_timestamp": "2024-01-15T12:30:45Z"
}

Ошибка авторизации (401 Unauthorized)

json
{
 "status": "error", 
 "message": "Неверный или отсутствующий токен доступа",
 "code": "INVALID_TOKEN"
}

Ошибка валидации (400 Bad Request)

json
{
 "status": "error",
 "message": "Ошибка валидации данных",
 "errors": [
   {
     "field": "manufacturer_inn", 
     "message": "Поле ИНН обязательно для заполнения"
   }
 ]
}
Ошибка сервера (500 Internal Server Error)
json
{
 "status": "error",
 "message": "Внутренняя ошибка сервера",
 "code": "INTERNAL_ERROR"
}