Версия: 7.0.0
Дата: 2025-12-21
Тип: commercial
Продажа фейерверков и пиротехники через собственные сайты и маркетплейсы. Опт и розница.
PIM в NocoDB, автоматизация OZON, синхронизация треков.
Статус: management/STATUS.md
Задачи: management/TODO.md
В 1С три типа номенклатуры:
| Тип | Поле 1С | Что делать |
|---|---|---|
| Обычные товары | ТипНоменклатуры='Запас' AND ЭтоНабор=false |
✅ ГРУЗИМ В PIM |
| Наборы | ЭтоНабор=true |
❌ НЕ трогаем, НЕ грузим, НЕ редактируем |
| Услуги | ТипНоменклатуры='Услуга' |
❌ Игнорируем полностью |
Статистика: Из 500 товаров в 1С → грузим 366 (73%), игнорируем 134 (27%).
Подробнее: app/pim/1C_PIM_MASTER_MAPPING.md
Цветной дым, бенгальские огни и др. приходят от поставщика одним артикулом (коробка), а затем разбиваются:
Пример:
От поставщика: JF-DM30 (коробка 60 шт, все цвета)
↓ разбивка
В PIM: JF-DM30-красный-1шт, JF-DM30-красный-3шт, JF-DM30-красный-10шт
JF-DM30-синий-1шт, JF-DM30-синий-3шт, ...
Формат артикула: {базовый}-{цвет}-{количество}
Правила:
- Цена пересчитывается: (цена_коробки / шт_в_коробке) × количество
- Остаток пересчитывается: остаток_коробок × шт_в_коробке
- Добавляются поля: color, package_qty, base_article, is_split_product
Подробнее: data/PRODUCT_RULES.md
projects/pirotehnika/
├── CLAUDE.md ← Ты здесь
├── PROJECT.md ← Описание бизнеса
├── index.yaml ← Индекс проекта
│
├── motivation/ ← MOTIVATION: Цели и стратегия
│ └── goals/
│
├── business/ ← BUSINESS: Бизнес-направления
│ ├── retail/ ← Розница (B2C)
│ ├── wholesale/ ← Опт (B2B)
│ └── marketplaces/ ← Маркетплейсы (документация)
│
├── data/ ← DATA: Данные и PIM
│ ├── connectors/ ← Коннекторы к источникам
│ ├── nocodb/ ← NocoDB скрипты
│ └── scripts/ ← Скрипты обработки
│
├── app/ ← APP: Приложения
│ ├── site/ ← Сайты (5 розничных)
│ │ ├── pirotehnika.spb.ru/ ← OpenCart, основной
│ │ ├── feyerverk.spb.ru/ ← Webasyst, только Гордеев
│ │ ├── seeboom.ru/ ← TBD
│ │ ├── gipir.ru/ ← TBD
│ │ └── pirofey.ru/ → drupal-lab/pirofey
│ ├── bot/ ← Telegram боты
│ │ └── piroopt/ ← @piroopt_bot (оптовые продажи)
│ ├── ozon/ ← OZON интеграция
│ ├── mp1/ ← MP1 сервис (FastAPI)
│ ├── erp/ ← Odoo 18 ERP
│ └── mini-erp/ ← Mini-ERP (Streamlit) ⚠️ LEGACY
│
├── infra/ ← INFRA: Инфраструктура
│
├── design/ ← Архитектура и дизайн
└── management/ ← Статус, задачи
Drupal сайт pirofey.ru перенесён в drupal-lab/pirofey
| Слой | Путь | Описание |
|---|---|---|
| Код | $WORKSPACE/projects/pirotehnika/ |
Git |
| Данные | $DATASPACE/projects/pirotehnika/ |
S3 mount |
| База | NocoDB Пиротехника | PIM, заказы |
$DATASPACE/projects/pirotehnika/
├── prices/ ← Прайсы поставщиков (xlsx)
├── images/ ← Фото товаров
├── products/ ← Данные 1С (JSON)
├── exports/ ← Выгрузки
└── _inbox/ ← Входящие файлы
Подробнее: data/CLAUDE.md
| Сайт | Технология | Поставщики | Статус |
|---|---|---|---|
| pirotehnika.spb.ru | OpenCart | Все | ✅ Production |
| feyerverk.spb.ru | Webasyst | Только Гордеев | ✅ Production |
| pirofey.ru | Drupal | — | → drupal-lab |
| seeboom.ru | TBD | TBD | ⏳ TBD |
| gipir.ru | TBD | TBD | ⏳ TBD |
| Модуль | Слой | Технология | Описание |
|---|---|---|---|
| piroopt | app/bot | Telegram Bot | Оптовые продажи (@piroopt_bot) |
| ozon | app | Python | OZON интеграция |
| mp1 | app | FastAPI | Сервис маркетплейсов |
| erp | app | Odoo 18 | ERP система |
| mini-erp | app | Streamlit | Мини-ERP интерфейс ⚠️ LEGACY → FastAPI |
| ID | Client-Id | Назначение |
|---|---|---|
| O1 | 3318433 | Основной |
| O2 | 1763357 | Дополнительный |
| O3 | 1781120 | Аналитика |
| Сервис | Сервер |
|---|---|
| mp1, NocoDB | @dev-pro.server |
| pirotehnika.spb.ru | @beget-kondurov.server |
| feyerverk.spb.ru | @beget-feyerverk.server |
| erp | Beget VPS |
| Данные | $DATASPACE (S3) |
| Окружение | URL | Админка |
|---|---|---|
| prod | pirotehnika.spb.ru | /admin/ |
| dev | dev.pirotehnika.spb.ru | /admin/ |
ВАЖНО: После копирования PHP-файлов нужно:
ssh kondurov@kondurov.beget.tech
rm -rf /home/k/kondurov/dev.pirotehnika.spb.ru/public_html/system/storage/modification/*
rm -rf /home/k/kondurov/dev.pirotehnika.spb.ru/public_html/system/storage/cache/*
}):// UniShop2 settings
$this->load->model("extension/module/uni_settings");
$this->model_extension_module_uni_settings->getSetting();
// UniShop2 merged CSS/JS
$data = array_merge($data, $this->load->controller("extension/module/uni_new_data", ["type" => "header"]));
Почему: На dev OCMOD action.php не работает (0 bytes), поэтому модификации нужно вносить напрямую в файлы
Стандарт: architect/standards/structure/ORGANIZATION.md
Версия: 6.0.0