{{ crumbSection }}
{{ crumbView }}
{{ crumb3 }}
⌘K
{{ title }}
{{ subtitle }}
{{ headerMeta }}
Последствия
{{ pending.title }}
{{ w.k }}
{{ w.v }}
{{ pageLabel }}
Выбрано {{ pickedCount }}
bulk-операция идемпотентна по (import_run_id, batch_id)
В демо-наборе нет товаров, попадающих в эту выборку. Счётчик слева показывает размер выборки на полном каталоге.
{{ cur.name }}
{{ cur.code }}·{{ cur.type }}·{{ cur.schema }}
{{ cur.kind }}
{{ cur.lifecycle }}
golden_version
{{ cur.gv }}
Готовность
Variant axes · product_variant_axes
position {{ a.pos }}
{{ a.name }}
{{ a.code }}
Проверка инварианта 17
UNIQUE(parent_product_id, variant_signature) — попытка создать дубликат комбинации осей
{{ k.k }}
{{ k.v }}
{{ k.s }}
Область
{{ attrScope }}
{{ attrScopeCode }}
Домен выбирается в структуре слева
owner
{{ c.label }}
value_type
{{ c.label }}
MeasurementParser
Pure Ruby компонент: строка источника → amount + unit_id → канонизация. Значение считается в BigDecimal, Float запрещён.
{{ p.k }}
{{ p.v }}
ProductTypeRevalidationRun
run
{{ r.id }}
запущен
{{ r.at }}
scope
{{ r.scope }}
товаров
{{ r.products }}
батчи
{{ r.batches }}
результат
{{ r.done }}
Category ≠ ProductType
Категория отвечает только за классификацию и не владеет атрибутами. Схему определяет ProductType, поэтому перенос товара между категориями не меняет ни набор атрибутов, ни Golden-значения.
product_classifications
· product_id
· category_id
· is_primary
· product_id
· category_id
· is_primary
CardLayout
{{ layName }}
{{ layBind }}
{{ layMeta }}
{{ k.k }}
{{ k.v }}
{{ k.s }}
{{ mapMeta }}
Изменение policy — единственный законный повод для re-resolution
Публикация схемы re-resolution не запускает. Пересчёт значений идёт только через explicit ResolutionRebuildRun батчами по 10k товаров, и сохраняются только фактически изменившиеся значения.
{{ s.id }}
authority
{{ s.auth }}
records
{{ s.records }}
claims
{{ s.claims }}
last
{{ s.last }}