Решение владельца 09.10: полный перенос магазина из МойСклада в ALL MARKET с историей. - scripts/migration/ms_inventory.py — read-only инвентаризация источника. - docs/migration-source-inventory.md: орг «FOOD MARKET», ~31k товаров, 627 контрагентов, ~110k документов (97 707 чеков, 7 125 приёмок, 3 068 списаний…), 7 558 строк остатков, 1 склад/точка/орг, касса наличных, 1 тип цены; gap-анализ модели + цели сверки. - docs/migration-design.md: идемпотентность по msId, хронология документов, МСК→UTC, тиыны, резюмируемость, порядок этапов, сверка, дельта, runbook. - docs/migration-progress.md: план Part 1–7. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
33 lines
3 KiB
Markdown
33 lines
3 KiB
Markdown
# Перенос магазина МойСклад → ALL MARKET (с историей) — прогресс
|
||
|
||
Решение владельца 09.10: перенести ВСЁ из МойСклада с историей, перейти на ALL MARKET.
|
||
Фискализации нет и в МойСкладе (не блокер), маркировка не используется.
|
||
|
||
**Источник:** аккаунт МойСклад, орг **«FOOD MARKET»** (id `bb8f74d4-5eb6-11ef-0a80-106e00048af9`).
|
||
Токен — `~/.food-market-secrets/moysklad.env` (ТОЛЬКО ЧТЕНИЕ; в МойСклад ничего не писать).
|
||
Опыт API — `~/.fm-watchdog/ms-api-lessons.txt`; код-образцы — `~/ref/fm-server-moysklad`, `~/ref/sklad`.
|
||
Существующий импортёр (справочники) — `src/food-market.infrastructure/Integrations/MoySklad/`.
|
||
|
||
Легенда: [x] готово · [~] частично · [ ] не начато.
|
||
|
||
## План
|
||
1. [ ] Инвентаризация источника (скрипт) → `docs/migration-source-inventory.md`.
|
||
2. [ ] Мигратор MoySklad→ALL MARKET (Hangfire, идемпотентный по msId/externalId): справочники →
|
||
документы в хронологии с номерами/датами(МСК→)/авторами/статусами/связями/комментариями;
|
||
суммы из тиынов; прогресс + журнал ошибок.
|
||
3. [ ] Новая орг на стенде (имя = орг МойСклада), простой режим; Демо/«Магазин у дома» не трогать.
|
||
4. [ ] Сверка (авто) → `docs/migration-reconciliation.md`: остатки по товар×склад, долги
|
||
контрагентов, остатки счетов/касс, выручка+чеки по месяцам, число документов по типам.
|
||
5. [ ] Дельта-досинхронизация (updated>= МСК + удалённые) до дня перехода.
|
||
6. [ ] Производительность/надёжность: замер, идемпотентность, продолжение после падения.
|
||
7. [ ] Runbook «день перехода» + откат.
|
||
|
||
## Ключевые факты API (из ms-api-lessons + проверки)
|
||
- База `https://api.moysklad.ru/api/remap/1.2`, `Authorization: Bearer`, `Accept-Encoding: gzip` обязателен.
|
||
- Время moment/фильтров — МОСКОВСКОЕ (UTC+3), формат `yyyy-MM-dd HH:mm:ss`.
|
||
- Суммы — в ТИЫНАХ (÷100). Лимит 45 запросов/3с; таймаут ≥120с; expand только при limit≤100.
|
||
- `report/stock/all` НЕ отдаёт нулевые остатки; номера документов повторяются по годам — ключ только id.
|
||
|
||
## Что НЕ трогаем
|
||
Прод, shared-postgres, global.json, gateway nginx, sklad. В МойСклад — только чтение.
|