3.5.3. Интеграция с производителями: различия между версиями
Перейти к навигации
Перейти к поиску
Нет описания правки |
Нет описания правки |
||
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 5: | Строка 5: | ||
2. Эндпоинт для загрузки данных | 2. Эндпоинт для загрузки данных | ||
POST /manufacturer/products?token={access_token} | |||
POST /manufacturer/products?token={access_token} | |||
3. Аутентификация | 3. Аутентификация | ||
Передача токена доступа через query-параметр: | Передача токена доступа через query-параметр: | ||
token: Уникальный токен доступа, выданный производителю | |||
token: Уникальный токен доступа, выданный производителю | |||
4. Логика обработки данных | 4. Логика обработки данных | ||
Полная синхронизация: система обрабатывает переданные данные как полный список товаров производителя. Все товары, которые не были переданы в текущем запросе, считаются удаленными/неактивными. | Полная синхронизация: система обрабатывает переданные данные как полный список товаров производителя. Все товары, которые не были переданы в текущем запросе, считаются удаленными/неактивными. | ||
5. Параметры запроса | 5. Параметры запроса | ||
{| class="wikitable" | |||
|+ Таблица 1 – Query-параметры | |||
! Параметр !! Тип !! Обязательность !! Описание | |||
|- | |||
| token || string || + || Токен доступа для авторизации | |||
|} | |||
{| class="wikitable" | |||
|+ Таблица 2 – Тело запроса (JSON) | |||
! Поле !! Тип !! Обязательность !! Описание | |||
|- | |||
| manufacturer_inn || string || + || ИНН организации-производителя (10 или 12 цифр) | |||
|- | |||
| manufacturer_name || string || + || Наименование организации-производителя | |||
|- | |||
| 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. Параметры запроса
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| token | string | + | Токен доступа для авторизации |
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| manufacturer_inn | string | + | ИНН организации-производителя (10 или 12 цифр) |
| manufacturer_name | string | + | Наименование организации-производителя |
| data | array | + | Массив объектов с данными о товарах |
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| 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"
}