Интеграция Ozon
с Drupal Commerce:
каталог, заказы и остатки

Собственный модуль связывает каталог магазина с Ozon: учитывает FBS-заказы, рассчитывает доступный остаток и помогает контролировать обмен данными.

Как устроено решение
COMMERCE ↔ OZON
Магазин и маркетплейс.
Связанные данные.
01Drupal CommerceТовары · локальные остатки
02Собственный модульСопоставление · расчёт · очередь
03Ozon Seller APIКаталог · FBS-заказы · остатки

Схема решения. Без данных клиента.

Платформа
Drupal 11 + Commerce
Моя работа
Архитектура и разработка
Формат
Кастомная интеграция Ozon
Статус
Ежедневная эксплуатация
01 / Задача

Один каталог для разных каналов продаж

Интеграция интернет-магазина с Ozon нужна, когда продажи на сайте и маркетплейсе используют связанные товары и общий учёт остатков. Если обновлять данные вручную, сотрудникам приходится искать соответствия между карточками и отдельно учитывать каждое отправление.

Для действующего магазина на Drupal 11 и Drupal Commerce я разработал собственный модуль обмена с Ozon Seller API. Он связывает товары, получает FBS-отправления и передаёт доступное количество на маркетплейс. Система развёрнута и используется ежедневно.

Технологии этого решения

Магазин, каталог и собственный модуль интеграции с Ozon Seller API.

Drupal
Drupal

Drupal 11: данные, роли и интеграции

Drupal Commerce
Drupal Commerce

Каталог, вариации и остатки

Ozon Seller API
Ozon Seller API

Каталог, FBS-заказы и остатки

PHP
PHP

Сервис API, очереди и обработка заказов

02 / Каталог

Сначала найти соответствие товара

У товара на сайте и карточки на Ozon могут быть разные идентификаторы. Интеграция хранит явную связь между вариацией Drupal Commerce, артикулом и идентификаторами Ozon. По ней система определяет, к какому товару относится отправление и какой остаток нужно передать для конкретной карточки.

Из Ozon в магазин

Внешний каталог можно загрузить и использовать для создания товаров магазина. Для уже сопоставленных карточек доступно выборочное обновление данных из Ozon.

Из магазина в Ozon

Для связанных товаров рассчитывается доступный остаток, после чего он может быть отправлен на выбранный склад Ozon. Настройки определяют, разрешена ли такая отправка.

Эти потоки решают разные задачи: интеграция не заявлена как двусторонняя синхронизация всех полей. Когда соответствия нет, сначала нужно связать карточку с товаром магазина.

03 / Заказы

FBS-заказы и повторный импорт

Модуль получает отправления Ozon по модели FBS и сохраняет их в системе магазина. Для разрешённых статусов он может учитывать состав отправления в локальных остатках: позиции находятся по сохранённым соответствиям, затем формируется план списания.

  1. Отправление получено

    Условный заказ содержит товар A, связанный с вариацией магазина. Система сохраняет внешнее отправление и при подходящем статусе применяет изменение остатка.

  2. Тот же заказ пришёл снова

    При повторном импорте система находит ранее сохранённое отправление и проверяет отметку обработки. Если остаток уже списан, повторного списания не происходит.

  3. Параллельная обработка

    Блокировка отправления помогает не запустить обработку одного и того же списания одновременно. Ошибки фиксируются для проверки.

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

04 / Остатки

Что именно отправляется на Ozon

Перед обновлением интеграция определяет локальный остаток товара и учитывает настроенный буфер. Так на маркетплейс передаётся рассчитанное доступное количество, а не просто значение из карточки без поправок.

Проверка до отправки

Предварительный просмотр показывает расчёт. Пробный запуск позволяет пройти сценарий без передачи остатка во внешний API.

Управление и журнал

Для автоматического и ручного обновления предусмотрены отдельные настройки. Изменения могут обрабатываться через очередь; запрос и результат операции фиксируются в журнале.

Синхронизация помогает согласовывать данные, но скорость обмена, внешние ошибки и параллельные продажи требуют отдельного контроля. Нельзя обещать полное отсутствие продаж сверх остатка при любых обстоятельствах.

05 / Контент

Обновлять нужное, сохраняя остальное

Для сопоставленных товаров предусмотрена выборочная загрузка данных из Ozon в Drupal: описаний, характеристик, rich content, изображений, видео и габаритов. Можно выбирать группы данных и использовать режим заполнения только пустых полей. Это помогает не перезаписывать подготовленный в магазине контент без необходимости.

Разработка учитывает направление обмена: передача остатков на Ozon и получение контента в магазин — отдельные процессы с разными правилами. Публикация произвольных карточек из Drupal на маркетплейс и обмен ценами в рамках этого кейса не заявляются.

Каталог, заказы и остатки — части одного процесса.
06 / Результат

Рабочий процесс для магазина и маркетплейса

Магазин получил работающий процесс: товары сопоставлены с внешними карточками, FBS-отправления учитываются в локальных остатках, а рассчитанное доступное количество передаётся в Ozon при разрешённых настройках. Журнал и предварительная проверка помогают команде разбираться в обмене.

Подход подходит магазинам, которым нужно связать собственный каталог и продажи на маркетплейсе с учётом их правил работы. Объём интеграции определяется после разбора данных, складов и обработки заказов; универсального набора для каждого бизнеса здесь нет.

Отдельно описаны интеграция Ozon Доставки для заказов сайта и интеграция СДЭК с Drupal Commerce. Если нужен магазин целиком, можно обсудить разработку интернет-магазина.

07 / Вопросы

Об интеграции магазина с Ozon

Чем интеграция с Ozon Seller API отличается от Ozon Доставки?

В этом кейсе Seller API связывает магазин с продажами на маркетплейсе: каталогом, FBS-отправлениями и остатками. Отдельная интеграция Ozon Доставки отвечает за доставку заказов самого сайта.

Можно ли учитывать заказы Ozon в остатках магазина?

Да. Модуль получает FBS-отправления и при разрешённом статусе может списывать соответствующие товары из локального остатка. Для этого нужны корректные сопоставления товаров.

Как исключается повторное списание при повторном импорте?

Система сохраняет отправление и отметку применения остатка. Перед списанием она проверяет эту отметку под блокировкой; уже обработанное отправление повторно не списывается.

Можно ли выбирать, какие данные каталога обновлять?

Да. Для сопоставленных товаров можно выбрать группы данных, загружаемых из Ozon, и при необходимости обновлять только пустые поля. Состав доступных полей зависит от данных и структуры магазина.

Следующий шаг / Ваш магазин

Каталог и продажи
работают согласованно.

Если нужно связать магазин с Ozon, учитывать заказы и управлять остатками — расскажите, как устроены ваши продажи сейчас.

Контакты

Если у вас есть вопросы или предложения, напишите мне на почту или в мессенджеры. Я всегда на связи и готов помочь вам!

Card

Обычно отвечаю в течение нескольких часов. Если срочно – пишите в Telegram!