Описание
openclaw-marketplace-ru — скилл управления продажами для OpenClaw: три площадки сразу — Ozon, Wildberries и Яндекс Маркет в одном интерфейсе, заказы — мониторинг и уведомления, цены — отслеживание изменений, остатки — контроль склада по всем площадкам. Для селлеров на OpenClaw, ведущих несколько площадок и не желающих переключаться между кабинетами.
Что умеет:
— следить за заказами на трёх площадках;
— отслеживать цены;
— контролировать остатки;
— работать из одного интерфейса OpenClaw.
Полная документация ниже — автоматически из репозитория smvlx/openclaw-marketplace-ru (ветка main). Оригинальные материалы проекта распространяются на условиях его лицензии.
OpenClaw Marketplace RU
AI-ассистент для управления продажами на российских маркетплейсах через OpenClaw.
Поддерживаемые платформы
| Платформа | Заказы | Цены | Остатки | Особенности |
|---|---|---|---|---|
| Ozon | FBS/FBO | Рубли | По складам | Seller API v3/v4 |
| Wildberries | FBS | Копейки → рубли | По складам | Dual status, 409=10x penalty |
| Яндекс Маркет | FBS | Рубли (RUR) | По кампаниям | Карантин цен, 100+ субстатусов |
Возможности
- Мониторинг заказов — новые заказы, статусы, дедлайны отгрузки на всех площадках
- Управление ценами — просмотр и обновление цен с подтверждением, валидацией (±50%), rollback
- Управление остатками — контроль остатков на складах, алерты о низких запасах
- Audit log — полная история всех изменений цен и остатков с возможностью отката
- Мульти-платформа — единый интерфейс для всех маркетплейсов,
--platformпереключает площадку - Mock режим — тестирование без реального API (
--mock) - AI-автоматизация — утренние дайджесты, мониторинг, умные рекомендации через OpenClaw
Требования
- OpenClaw 0.8.0 или выше
- jq — JSON processor
- curl — HTTP клиент
- bash 3.2+ (macOS default) или 4.0+
Установка зависимостей
# macOS
brew install jq curl
# Ubuntu/Debian
sudo apt-get install jq curl
# Alpine Linux
apk add jq curl bash
Установка
Через OpenClaw Skills (рекомендуется)
openclaw skills add https://github.com/smvlx/openclaw-marketplace-ru
Ручная установка
git clone https://github.com/smvlx/openclaw-marketplace-ru.git
cd openclaw-marketplace-ru
# Добавить tools в PATH
export PATH="$PWD/tools:$PATH"
# Или создать симлинки
sudo ln -s $PWD/tools/mp-* /usr/local/bin/
Настройка
Каждая платформа настраивается отдельно через mp-setup:
mp-setup --platform ozon # Ozon Seller API
mp-setup --platform wb # Wildberries
mp-setup --platform ymarket # Яндекс Маркет
Без --platform по умолчанию настраивается Ozon.
Ozon
- Личный кабинет Ozon Seller → Настройки → API ключи
- Создайте ключ с правами Admin или Content + Analytics
- Запустите
mp-setup --platform ozon, введите Client ID (число) и API Key
Wildberries
- Кабинет WB → Настройки → API токены
- Создайте токен с категориями: Marketplace, Content, Analytics
- Запустите
mp-setup --platform wb, введите API Token
Разные эндпоинты WB требуют токены разных категорий. Один токен с нужными категориями покрывает все операции.
Яндекс Маркет
- Кабинет Яндекс Маркет → Настройки → API и модули
- Создайте токен (макс. 30 на кабинет)
- Запустите
mp-setup --platform ymarket, введите API Key
Изменения scope токена вступают в силу через ~10 минут. Business ID и Campaign ID определяются автоматически при первом подключении.
Проверка подключения
mp-test --platform ozon
mp-test --platform wb
mp-test --platform ymarket
Credentials хранятся в ~/.openclaw/marketplace/ с правами 0600:
ozon.env— Ozon credentialswb.env— Wildberries credentialsymarket.env— Яндекс Маркет credentials
Использование
Все команды принимают --platform ozon|wb|ymarket (по умолчанию ozon) и --mock для тестирования.
Заказы
# Показать заказы
mp-orders list --platform ozon
mp-orders list --platform wb
mp-orders list --platform ymarket
# Статус конкретного заказа
mp-orders status 12345678-0001-1 # Ozon: posting number
mp-orders status 987654321 --platform wb # WB: числовой ID
mp-orders status 77001122 --platform ymarket # YM: order ID
# Статистика
mp-orders stats --platform wb
# Mock режим
mp-orders list --mock
Цены
# Получить цену
mp-prices get TWS-PRO-001
mp-prices get 12345678 --platform wb # WB: nmID (число)
mp-prices get TWS-PRO-001 --platform ymarket
# Обновить цену (с подтверждением)
mp-prices update TWS-PRO-001 2500
mp-prices update 12345678 1999 --platform wb # ввод в рублях, конвертация в копейки автоматически
mp-prices update TWS-PRO-001 2500 --platform ymarket
# Со старой ценой (Ozon: зачёркнутая цена)
mp-prices update TWS-PRO-001 2500 --old-price 2999
# Автоподтверждение (только для изменений ≤50%)
mp-prices update TWS-PRO-001 2500 --yes
# Показать все цены
mp-prices list --platform wb
# Яндекс Маркет: карантин цен (при изменении >5%)
mp-prices confirm-quarantine --platform ymarket
Защита от ошибок:
- Изменение > ±50% требует дополнительного подтверждения
--yesне работает для изменений > 50% (нужен--force)- Цена не может быть 0
Остатки
# Все остатки
mp-stocks list
mp-stocks list --platform wb
mp-stocks list --platform ymarket
# Товары с низкими остатками
mp-stocks list --low # < 10 шт (по умолчанию)
mp-stocks list --low --threshold 5 # < 5 шт
# Конкретный товар
mp-stocks get TWS-PRO-001
# Обновить остаток
mp-stocks update TWS-PRO-001 100
mp-stocks update 2000000000011 50 --platform wb --warehouse 507921 # WB требует warehouse ID
mp-stocks update TWS-PRO-001 100 --platform ymarket
WB: для обновления остатков обязателен
--warehouse <id>. Список складов:mp-stocks list --platform wb.Яндекс Маркет: SKU чувствителен к регистру и отступам.
Audit Log и Rollback
Все изменения цен и остатков записываются в audit log:
# История изменений
mp-prices history # Последние 20 записей
mp-prices history --sku TWS-PRO-001 # История SKU
mp-prices history --last 50 # Последние 50
mp-stocks history # История остатков
# Rollback
mp-prices rollback --last # Откатить последний batch
mp-prices rollback 20260216-143022-a1b2c3d4 # По конкретному ID
mp-stocks rollback --last --mock # Тест в mock режиме
Формат audit log: TIMESTAMP|USER|PLATFORM|BATCH_ID|ACTION|SKU|OLD_VALUE|NEW_VALUE|STATUS
Важно:
- Rollback всегда требует ручного подтверждения
- Нельзя откатить batch с ошибками (все записи должны быть
success) - Нельзя откатить rollback (защита от цикличности)
- Ротация: записи старше 90 дней удаляются автоматически
Утренний дайджест
# Все платформы
./examples/morning-digest.sh --platform all
# Конкретная платформа
./examples/morning-digest.sh --platform wb
# Тест
./examples/morning-digest.sh --platform all --mock
Примеры для AI-ассистента
👤 Покажи заказы на всех площадках
🤖 [Запускает mp-orders для каждой платформы]
📦 Ozon: 3 заказа (2 ожидают сборки)
📦 WB: 5 заказов (3 новых)
📦 Яндекс: 2 заказа (1 в обработке)
👤 Подними цену на TWS-PRO-001 до 2500 на Ozon
🤖 Текущая цена: 1999 ₽ → Новая: 2500 ₽ (+25.06%)
Подтвердить? (y/N)
👤 Какие товары заканчиваются на WB?
🤖 [Запускает mp-stocks list --low --platform wb]
⚠️ 2 товара с низкими остатками...
Batch Rate Limiting
Массовые операции автоматически разбиваются на чанки:
- Chunk size: 10 (настраивается через
BATCH_SIZE) - Delay: 1 секунда между чанками (
BATCH_DELAY) - Rate limit handling: Exponential backoff (5s → 15s → 30s)
- Progress:
[30/100] Обработано... ETA: 7s
Тестирование
# Smoke tests (все платформы, mock режим)
bash tests/smoke-test.sh
Все 22 теста покрывают: заказы, цены, остатки для каждой платформы, платформо-специфичные особенности, обратную совместимость и help тексты.
Безопасность
- Credentials хранятся локально в
~/.openclaw/marketplace/*.envс правами 0600 - Валидация при загрузке — credentials файлы проверяются на отсутствие shell-инъекций перед source
- Маскировка в логах — API ключи никогда не логируются в открытом виде
- curl stderr подавлен — ошибки curl не могут случайно утечь с токенами
- JSON через jq — все JSON данные для API строятся через
jq -n, исключая инъекции - Audit log с flock — атомарная запись и ротация через flock
- Не коммитить в git —
.gitignoreисключает*.env,logs/,*.log
Архитектура
tools/ # 5 CLI entry points
mp-setup # Настройка credentials
mp-test # Проверка подключения
mp-orders # Управление заказами
mp-prices # Управление ценами
mp-stocks # Управление остатками
lib/common/ # Общие модули
platform.sh # Диспетчер платформ, валидация, загрузка credentials
logger.sh # Логирование с маскировкой
http.sh # HTTP retry, batch executor
audit.sh # Audit log, rollback
formatter.sh # JSON→текст, валидация цен, конвертация валют
lib/ozon/ # Ozon Seller API
lib/wb/ # Wildberries API
lib/ymarket/ # Яндекс Маркет Partner API
auth.sh # Credentials: загрузка, сохранение, проверка
http.sh # HTTP клиент с platform-specific headers
orders.sh # Заказы
prices.sh # Цены
stocks.sh # Остатки
Каждая платформа реализует одинаковый набор из 5 модулей. CLI tools используют диспетчер platform.sh для вызова нужной реализации.
Troubleshooting
Credentials не настроены
ERROR: Ozon credentials не настроены
ERROR: WB API токен не настроен
ERROR: Яндекс Маркет API ключ не настроен
Решение: mp-setup --platform <ozon|wb|ymarket>
401 — Неверные credentials
Причины: неправильный ключ, ключ деактивирован.
Решение: создайте новый ключ в ЛК площадки и обновите через mp-setup.
403 — Доступ запрещён
Причина: ключ не имеет нужных прав/категорий.
Решение:
- Ozon: пересоздайте ключ с правами Admin или Content + Analytics
- WB: проверьте что токен имеет нужные категории (Marketplace, Content, Analytics)
- YM: проверьте scope токена (изменения вступают через ~10 минут)
429 / 420 — Rate limit
Причина: слишком много запросов.
Решение: система автоматически повторяет запрос с exponential backoff. Если не помогает — подождите 60 секунд.
WB: код 409 считается за 10 запросов к лимиту.
YM: использует код 420 (не 429) для rate limit.
jq: command not found
brew install jq # macOS
sudo apt install jq # Ubuntu/Debian
Документация API
Roadmap
- [x] v0.1.0 — Ozon MVP: заказы, цены, остатки (FBS)
- [x] v0.2.0 — Wildberries: заказы, цены, остатки, dual status
- [x] v0.3.0 — Яндекс Маркет: заказы, цены, остатки, карантин цен
- [x] v0.4.0 — Интеграция: audit log, rollback, smoke tests, мульти-платформа CLI
- [x] v0.5.0 — Security audit: safe credentials, jq JSON, bash 3.2 compat
- [ ] v0.6.0 — Финансовые отчёты, аналитика продаж
- [ ] v0.7.0 — Отзывы и ответы на отзывы
- [ ] v1.0.0 — Кросс-маркетплейс сравнение и аналитика
Вклад в проект
Contributions are welcome!
- Fork репозиторий
- Создайте feature branch (
git checkout -b feature/amazing-feature) - Commit изменения (
git commit -m 'Add amazing feature') - Push в branch (
git push origin feature/amazing-feature) - Создайте Pull Request
Лицензия
MIT License — см. LICENSE
Автор
Alex (@smvlx)
Благодарности
- OpenClaw — AI platform
- Ozon, Wildberries, Яндекс Маркет — маркетплейсы
Нужна помощь? Создайте issue или напишите в discussions.