projects/org/pirotehnika/CLAUDE.md

Пиротехника

Версия: 7.0.0
Дата: 2025-12-21
Тип: commercial


Что это

Продажа фейерверков и пиротехники через собственные сайты и маркетплейсы. Опт и розница.


Текущий фокус

PIM в NocoDB, автоматизация OZON, синхронизация треков.

Статус: management/STATUS.md
Задачи: management/TODO.md


⚠️ КРИТИЧЕСКОЕ: Правила работы с товарами

Правило 1: Типы номенклатуры 1С

В 1С три типа номенклатуры:

Тип Поле 1С Что делать
Обычные товары ТипНоменклатуры='Запас' AND ЭтоНабор=false ГРУЗИМ В PIM
Наборы ЭтоНабор=true ❌ НЕ трогаем, НЕ грузим, НЕ редактируем
Услуги ТипНоменклатуры='Услуга' ❌ Игнорируем полностью

Статистика: Из 500 товаров в 1С → грузим 366 (73%), игнорируем 134 (27%).

Подробнее: app/pim/1C_PIM_MASTER_MAPPING.md

Правило 2: Разбивка товаров по цветам/упаковкам

Цветной дым, бенгальские огни и др. приходят от поставщика одним артикулом (коробка), а затем разбиваются:

Пример:

От поставщика: 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 структура

$DATASPACE/projects/pirotehnika/
├── prices/                  Прайсы поставщиков (xlsx)
├── images/                  Фото товаров
├── products/                Данные 1С (JSON)
├── exports/                 Выгрузки
└── _inbox/                  Входящие файлы

Подробнее: data/CLAUDE.md


Модули

Розничные сайты (business/retail)

Сайт Технология Поставщики Статус
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

OZON Аккаунты

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)

OpenCart pirotehnika.spb.ru

Окружения

Окружение URL Админка
prod pirotehnika.spb.ru /admin/
dev dev.pirotehnika.spb.ru /admin/

После копирования файлов с prod на dev

ВАЖНО: После копирования PHP-файлов нужно:

  1. Сбросить OCMOD модификации:
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/*
  1. Добавить UniShop2 в startup.php (в конец перед }):
// UniShop2 settings
$this->load->model("extension/module/uni_settings");
$this->model_extension_module_uni_settings->getSetting();
  1. Добавить в header.php (перед return):
// 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