Fullstack-разработчик (Symfony / Битрикс) с опытом DevOps.

Петр Сальников spbcod

Рейтинг: 30
Верифицирован через Сбер ID
Всего отзывов: 0
  • Работ в портфолио: 42
  • Типовых услуг: 11
  • Работ на продажу: 0
  • Возраст: 50 лет
  • Стаж работы: 27 лет
  • Зарегистрирован: 26.02.2023
  • Образование: Cпециалитет
  • Стоимость услуг (руб): 1 000 за час 200 000 за месяц
Был на сайте:

Разработка кастомного модуля для 1С-Битрикс, обеспечивающего полную двустороннюю интеграцию с API Яндекс.Маркета

Описание

Интернет-магазин на 1С-Битрикс активно продает через Яндекс.Маркет (модели FBS/DBS). До внедрения модуля менеджеры вручную:
- забирали заказы из личного кабинета Маркета и вбивали их в админку Битрикса,
- отслеживали возвраты и корректировали остатки,
- обновляли цены и наличие товаров.

Это занимало часы ежедневно, приводило к ошибкам (задвоения заказов, продажи отсутствующих товаров) и замедляло обработку заказов.

Требовалось разработать решение, которое:
- Автоматически принимает заказы с Яндекс.Маркета и создает их в Битриксе
- Синхронизирует остатки и цены в реальном времени (при изменении в Битриксе → обновление на Маркете)
- Обрабатывает возвраты и отмены заказов
- Передает статусы заказов обратно на Маркет (подтверждение, отгрузка, доставка)
- Ведет логирование всех операций для отладки

Решение

Создал кастомный модуль для 1С-Битрикс (D7), который работает как мост между API Яндекс.Маркета и внутренней логикой магазина:

/local/modules/custom.market.integration/
├── lib/
│ ├── ApiClient.php # Базовый класс для работы с API Маркета
│ ├── OrderHandler.php # Обработка входящих заказов
│ ├── StockHandler.php # Синхронизация остатков
│ ├── PriceHandler.php # Обновление цен
│ ├── ReturnHandler.php # Обработка возвратов
│ ├── StatusHandler.php # Отправка статусов заказов
│ ├── Logger.php # Логирование всех транзакций
│ └── EventHandler.php # Обработчики событий Битрикс
├── install/
│ └── index.php # Установщик модуля
├── options.php # Страница настроек
└── cron/ # Скрипты для запуска по расписанию
├── sync_orders.php
├── sync_stocks.php
└── sync_prices.php

2. Настройка авторизации и подключения к API
Интеграция с Яндекс.Маркет использует авторизацию через API-ключи (новый стандарт вместо устаревших OAuth токенов) .

В настройках модуля администратор указывает:
- ID кампании (берется из кабинета Маркета)
- API-ключ с полным доступом
- Модель работы (FBS/DBS)
- Склады для учета остатков

3. Автоматический прием заказов (Orders)
Самый критичный функционал — заказы должны попадать в систему мгновенно.

Реализовал механизм:
А. Push-уведомления (телеграмм):
CRON-задание каждые 5 минут запрашивает новые заказы через API

Что сохраняется в заказе:
- Адрес доставки и способ получения
- Состав заказа (товары, количество, цена)
- Служебные поля: ID заказа на Маркете, метод оплаты, комментарии

4. Синхронизация остатков (Stocks)
Критически важно, чтобы на Маркете не продавались товары, которых нет в наличии.

Реализовал механизм:
- При изменении остатка товара в Битриксе (через событие OnBeforeProductUpdate) автоматически отправляются новые данные на Маркет
- Периодическая полная синхронизация по CRON (для подстраховки)
- Поддержка множественных складов — можно суммировать остатки с нескольких складов или передавать данные с конкретного склада, указанного в настройках.

5. Синхронизация цен (Prices)
- Чтобы избежать продаж по старым ценам, настроил автоматическое обновление цен.
- При изменении цены в Битриксе (событие OnPriceUpdate) — мгновенная отправка на Маркет
- Поддержка разных типов цен (розничная, оптовая, со скидкой)
- Возможность настройки минимальной цены для софинансирования (если магазин участвует в акциях Маркета)

6. Обработка возвратов и отмен (Returns/Refunds)
- Возвраты — сложная тема, но без автоматизации здесь тоже не обойтись .

Реализовал:
- Автоматическое восстановление остатков при возврате товара
- Синхронизация статусов возврата (оформлен, принят, завершен, отклонен)

7. Отправка статусов заказов
- Чтобы покупатель на Маркете видел актуальный статус заказа, настроил обратную передачу статусов

8. Административный интерфейс
Создал удобную страницу настроек модуля.


9. Отказоустойчивость и логирование
- Чтобы исключить потерю заказов и данных, реализовал:
- Очередь неотправленных: если API Маркета временно недоступен, данные сохраняются и отправляются позже
- Повторные попытки: при временных ошибках (5xx) — до 3 повторных попыток с экспоненциальной задержкой

Результат

Для бизнеса
✅ Полная автоматизация: заказы с Маркета появляются в админке Битрикса за 1-2 секунды после оформления
✅ Исключение ошибок: пропали дубли заказов, продажи отсутствующих товаров
✅ Экономия времени: менеджеры экономят 2-3 часа ежедневно на ручном вводе
✅ Актуальные остатки: риск "овербукинга" (продажи больше, чем есть) сведен к нулю
✅ Прозрачность: все операции логируются, легко найти проблему при сбое

Технические результаты
✅ Разработан кастомный модуль для 1С-Битрикс (D7) с чистой архитектурой
✅ Реализована интеграция с API Яндекс.Маркета v2 (авторизация по API-ключам)
✅ Автоматический прием заказов через push-уведомления + pull-синхронизация
✅ Двусторонняя синхронизация остатков и цен (при изменении в Битриксе → обновление на Маркете)
✅ Обработка возвратов и отмен заказов
✅ Передача статусов заказов обратно на Маркет
✅ Подробное логирование и отказоустойчивость

Ссылки на примеры реализации

 aquazon.ru

Презентация проекта

Скриншот 25-02-2026 100703.jpg
Скриншот 25-02-2026 100717.jpg

Оценили проект:

0