FSP 1.0

FSP / Модули / core / rules

Нормативные правила FSP Core 1.0

Правила каталога услуг, категорий, параметров, метрик, габаритных профилей и целостности данных. Обязательны для соответствия модулю.

Строк: 31. Машиночитаемо: JSON · CSV

IDПравило
CAT-001Коды стандартных услуг неизменяемы после публикации.
CAT-002Одна строка прайса ФФ может включать несколько стандартных услуг.
CAT-003Материалы хранятся отдельно от операций.
CAT-004Для каждой услуги в каталоге хранится полный закрытый список допустимых billing_metric v1: код и название. Значение вне списка требует новой версии стандарта.
CAT-005Разделы каталога используются только для навигации и не определяют категорийную применимость услуги.
CAT-006Применимость услуги к товарной категории задаётся только на реестре «Связи категорий» по кодам услуги и категории.
SIZE-001Размерные классы принадлежат версионируемому профилю.
SIZE-002ФФ может использовать собственный профиль размеров.
SIZE-003Если товар совпал с несколькими классами профиля, выбирается класс с минимальным числовым priority. Если совпадений нет, возвращается SIZE_PROFILE_NO_MATCH.
MAP-001Категории WB/Ozon сопоставляются отдельными версионируемыми строками.
CAT-007Связь с категорией any распространяется на все дочерние категории; более специфичная связь не отменяет any.
CAT-008Каждый параметр услуги обязан существовать на реестре «Параметры», а связь — на реестре «Параметры услуг».
CAT-009Тип услуги хранится явно: base или industry. Положение строки и название раздела не являются типом.
SIZE-004Отсутствие обязательного входа размерного правила возвращает SIZE_PROFILE_INPUT_MISSING; null никогда не считается совпадением.
SIZE-005sum_sides_cm, max_side_cm, volume_m3, volumetric_weight_kg и chargeable_weight_kg вычисляются только по реестру «Расчётные метрики».
MAP-002Для пары source_system + source_category_id периоды active-маппингов не пересекаются; результат сопоставления должен быть единственным.
DATA-001Все id уникальны в пределах сущности; все ссылки обязаны существовать; публикация блокируется при любой ошибке на реестре «Проверки».
CAT-010Источник истины для допустимых billing_metric — реестр «Метрики услуг»; строковые списки каталога являются только витриной.
SIZE-006size_class_id всегда квалифицирован как <profile>:<version>:<class>; использование S/M/L без профиля запрещено.
SIZE-007Договорный размерный профиль и фактическая логика калькулятора хранятся раздельно; расхождение блокирует публикацию тарифа.
CAT-011Варианты материала, размера, маршрута и объёма не создают новую услугу: они задаются материалом, параметром, метрикой или условием цены.
SCOPE-001Позиции из реестра «Исключения» не добавляются в каталог и при импорте получают статус out_of_scope.
SCOPE-002Самовыкуп и стимулированный отзыв не получают код услуги и не входят в предложение оператора.
PROFILE-001Манифест публикуется по адресу /.well-known/fsp и является единственным источником сведений о поддерживаемых модулях. Договорённость вне манифеста не заменяет его.
PROFILE-002Объявлять модуль, чьи зависимости не объявлены, запрещено: манифест с таким набором модулей недействителен.
PROFILE-003Активны только модули, объявленные обеими сторонами. Для каждого общего модуля берётся пересечение версий и выбирается наибольшая; при пустом пересечении модуль исключается.
PROFILE-004Исключение модуля исключает все модули, которые от него зависят, и все расширения, чей родительский модуль исключён. Пересчёт повторяется до стабилизации.
PROFILE-005Итог согласования вычисляет и фиксирует принимающая сторона, возвращая его в ответе. При расхождении сторон действует итог принимающей.
PROFILE-006Для модуля с уровнями соответствия согласованным считается наименьший общий уровень. Требование уровня выше согласованного не исключает сторону из обмена, а возвращается кодом непокрытия.
PROFILE-007Имя расширения имеет вид x-<vendor>:<code> и обязано указывать родительский модуль. Расширение только добавляет поля и никогда не переопределяет поля стандарта.
PROFILE-008Неизвестное поле, модуль или расширение игнорируется и не является ошибкой обмена. Отсутствие у другой стороны объявленного модуля тоже не ошибка.