Версия: 1.0
Дата: 2025-12-26
От производителя приходит один артикул - упаковка/коробка с дымом.
После разбивки появляется несколько артикулов - по цветам и количествам.
Базовый артикул → Производные артикулы
Формат производного артикула:
{базовый_артикул}-{цвет}-{количество}
Пример:
JF-DM30 (базовый)
↓
JF-DM30-красный-1шт
JF-DM30-красный-3шт
JF-DM30-красный-5шт
JF-DM30-красный-10шт
JF-DM30-синий-1шт
JF-DM30-синий-3шт
...
Стандартные цвета для разбивки:
- красный
- синий
- жёлтый
- зелёный
- розовый
- фиолетовый
- бирюзовый
- оранжевый
- белый
- чёрный
Стандартные фасовки:
- 1шт (штучно)
- 3шт (малая упаковка)
- 5шт (средняя упаковка)
- 10шт (большая упаковка)
JF DM30 (30 секунд, 4,5×11 см)
JF-DM30-красный-1шт → Цветной дым красный 4,5×11 см. 30 сек. - 1 шт.
JF-DM30-красный-3шт → Цветной дым красный 4,5×11 см. 30 сек. - 3 шт.
JF-DM30-красный-5шт → Цветной дым красный 4,5×11 см. 30 сек. - 5 шт.
JF-DM30-красный-10шт → Цветной дым красный 4,5×11 см. 30 сек. - 10 шт.
JF-DM30-синий-1шт → Цветной дым синий 4,5×11 см. 30 сек. - 1 шт.
...
JF DM60 (60 секунд, 4×13 см)
JF-DM60-super-розовый-10шт → Цветной дым с чекой розовый 4×13 см. 90 сек. - 10 шт.
JF-DM60-super-B → (базовый, без разбивки)
JF DM60SHG (высокая версия)
JF DM60SHG розовый → Дым цветной розовый (артикул с пробелом!)
JF DM60SHG → Дым цветной DM60SHG (базовый)
Правила импорта:
Базовый артикул (от поставщика):
- Имеет цену за коробку
- Имеет остаток в коробках
- Содержит все цвета
Производные артикулы (разбитые):
- Создаются автоматически или вручную
- Цена = (цена_базового / количество_в_коробке) × количество
- Остаток = остаток_базового × количество_в_коробке
- Добавляется характеристика: color = {цвет}
- Добавляется характеристика: package_qty = {количество}
Пример расчёта:
Базовый: JF-DM30 (коробка 60 шт, цена 6000 руб, остаток 10 коробок)
↓
Производные:
JF-DM30-красный-1шт → 100 руб (6000/60×1), 600 шт (10×60)
JF-DM30-красный-3шт → 300 руб (6000/60×3), 200 шт (10×60/3)
JF-DM30-красный-10шт → 1000 руб (6000/60×10), 60 шт (10×60/10)
Проблема артикулов:
- В PIM: JF DM60SHG розовый (с пробелом)
- На сайте: JF DM60SHG (без цвета)
Решение:
1. Базовый артикул на сайте должен быть без цвета
2. Цвет передаётся через параметры/модификации товара
3. Или создавать отдельные товары для каждого цвета
Шаблон названия:
Цветной дым [с чекой] {цвет} {размер} {длительность} - {количество} шт. {артикул}
Примеры:
- Цветной дым красный 4,5×11 см. 30 сек. - 1 шт. JF-DM30-красный-1шт
- Цветной дым с чекой розовый 4×13 см. 90 сек. - 10 шт. JF-DM60-super-розовый-10шт
Иерархия:
Пиротехника
└── Дымы
├── Цветной дым 30 сек
├── Цветной дым 60 сек
├── Цветной дым с чекой
└── Цветной дым профессиональный
Подобная разбивка применяется для:
Базовый: JF-B07 (коробка 100 шт)
↓
JF-B07-x02 → Бенгальские огни 2 шт
JF-B07-x10 → Бенгальские огни 10 шт
JF-B07-x50 → Бенгальские огни 50 шт
Базовый: PS K0201 (блок 1000 шт)
↓
PS K0201 → Петарда Корсар 2 (20 шт в упаковке)
PS K0201-x5 → Петарда Корсар 2 (5 упаковок = 100 шт)
| Поле | Описание | Пример |
|---|---|---|
article |
Полный артикул с цветом и количеством | JF-DM30-красный-10шт |
base_article |
Базовый артикул (для связи) | JF-DM30 |
color |
Цвет товара | красный |
package_qty |
Количество в упаковке | 10 |
is_split_product |
Признак разбитого товара | true |
parent_ref_key |
Ref_Key базового товара | {uuid} |
-- Все разбитые товары дыма
SELECT article, name, color, package_qty, base_price
FROM pim_products
WHERE article LIKE 'JF-DM%'
AND article LIKE '%-%-' -- содержит два дефиса (цвет и количество)
ORDER BY article;
-- Группировка по базовому артикулу
SELECT
REGEXP_REPLACE(article, '-(.*?)-(.*?)$', '') as base_article,
COUNT(*) as variants,
STRING_AGG(DISTINCT color, ', ') as colors
FROM pim_products
WHERE article LIKE 'JF-DM%'
GROUP BY base_article;
Расположение: data/scripts/split_smoke_products.py
Функции:
1. Найти базовые артикулы дыма
2. Создать производные артикулы для всех цветов
3. Рассчитать цены и остатки
4. Создать записи в PIM
Запуск:
python3 data/scripts/split_smoke_products.py --article "JF-DM30"
| Дата | Версия | Изменения |
|---|---|---|
| 2025-12-26 | 1.0 | Первая версия правил |
См. также:
- PIM структура
- Импорт из 1С
- Синхронизация с сайтами