Clone
1
Feeds
s.zotov edited this page 2026-04-13 12:25:01 +05:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Товары и фиды

Поддерживаемые форматы

Проект Источник Формат Кодировка
AT Mindbox YML (Yandex Market Language) windows-1251
numizmatRU Mindbox YML windows-1251
КБ Mindbox YML UTF-8
z51 RetailCRM API UTF-8

Кэш фидов

  • Кэш в памяти vite-сервера, TTL 3 часа
  • feed-refresh сбрасывает кэш и возвращает diff (добавленные/удалённые)
  • При перезапуске контейнера кэш пуст — первый запрос загружает фид

Авто-подбор товаров (auto-assemble)

Алгоритм подбора монет из фида:

1. Фильтрация

  • Исключение аксессуаров, альбомов, значков (EXCLUDE_CATS)
  • Определение типа: getProductType() — монета/банкнота/копия/другое
  • Фильтр по цене (любая / своя min-max)
  • Исключение материалов (золото, серебро, платина)

2. Группировка

  • getStyleKey() — ключ стиля: регион + эпоха + материал + цена + диаметр
  • Серии имеют приоритет
  • Островные монетные дворы группируются по подтипу (wildlife/popculture/fantasy)

3. Подбор блоков

  • Layout mode: [3, 1, 3, 3] — схема блоков
  • Country round-robin — чередование стран
  • Scoring по similarity (серия, страна, эпоха, материал, диаметр, цена)
  • Проверка конфликтов (дубли по ключу/имени/номиналу+году)

4. Замена одной монеты

Каскадная замена с приоритетами:

  1. Та же серия
  2. Та же страна + материал + цена ±2x
  3. Та же страна
  4. Тот же регион + материал
  5. Тот же регион
  6. Любая с score ≥ 30

5. Пометка использованных

Сканирует письма за последние 25 дней, извлекает ID из Pug-контента:

  • Красный бейдж: 0-15 дней назад
  • Жёлтый бейдж: 16-25 дней назад

Определение типа товара (getProductType)

categoryId → BANKNOTE_CATS / COIN_CATS / COPY_CATS / EXCLUDE_CATS
  ↓ не найден
name regex → банкнот, купюр, марк, лотерейн, сертификат, ...
  ↓ не найден
material/weight check → если пустые → 'other' (не монета)
  ↓ есть
return 'coin'