OCM Маркетплейс
Версия 1.0.0: руководство описывает все разделы модуля.
Назначение и совместимость
Пакет превращает магазин на OpenCart 3 / ocStore 3 в площадку с несколькими продавцами. В текущей версии работают продавцы и их кабинет, модерация и видимость товаров, страницы магазинов, разбор заказов по продавцам (подзаказы), комиссия и баланс продавца.
| Платформа | OpenCart 3.0.x, ocStore 3.0.x |
|---|---|
| PHP | 7.4 – 8.x |
| Изменения ядра | Нет. Модуль работает через события; модификаторы (OCMOD) не используются. |
Установка
- Загрузите архив через Расширения → Установка расширений.
- Откройте Расширения → Расширения → Модули, найдите «OCM Маркетплейс» и нажмите «Установить».
- Откройте настройки модуля: статус уже включён, в блоке «Состояние» все строки должны быть зелёными.
При установке создаются таблицы модуля (продавцы и их группы, привязка товаров, заказы и подзаказы, комиссии, баланс, доставка продавца, оферта, журнал действий), группа продавцов «Стандартная», регистрируется событие витрины и выдаются права группе администратора на разделы модуля. Обновлять модификаторы не требуется.
Настройки
| Статус | Включает фильтр видимости на витрине, страницу «Стать продавцом» и ссылки на неё. При отключении все товары снова видны как в обычном магазине. |
|---|---|
| Письма продавцам и администратору | Уведомления о новой заявке (администратору) и о смене статуса (продавцу). Выключите, если почта магазина не настроена — тогда действия выполняются без писем. Язык письма — язык получателя: продавцу — язык его аккаунта покупателя, покупателю — язык заказа, администратору — язык магазина по умолчанию; если язык получателя выключен или для него нет строк модуля, используется язык магазина по умолчанию. Уведомления в кабинете продавца («Условия и уведомления») тоже сохраняются на его языке. |
| Комиссия площадки | Задаётся в разделе «Правила комиссии» (общее правило, группы, категории, продавцы) — см. ниже. При обновлении модуля прежняя комиссия по умолчанию и комиссии групп переносятся в правила автоматически. |
| Удержание перед выплатой, дней | Через сколько дней после завершения части заказа выручка становится доступной продавцу (по умолчанию 14) — запас под возвраты. Уменьшение действует сразу; увеличение вступает через 15 дней, всем продавцам уходит уведомление, на экране видно «Запланировано: N дн. с даты». |
| Статусы, доступные продавцу | На какие статусы продавец может перевести свою часть заказа в кабинете. По умолчанию «В обработке», «Доставлено», «Отменено». Пометка «завершённый» — статусы из настройки магазина «Статус выполненного заказа»: они начисляют выручку на баланс. |
| Статус заказа, когда все подзаказы в одном статусе | По умолчанию выключено. Если выбрать статус (например, «Сделка завершена»), то когда все части заказа — у продавцов и у площадки — получат этот статус, заказ переведётся в него автоматически штатной историей заказа: со списанием остатков и уведомлениями магазина, в истории появится комментарий «Все части заказа переведены…». |
| Сообщения покупателей и продавцов | По умолчанию включено: кнопка «Написать продавцу» на витрине, переписка в кабинетах и раздел «Маркетплейс → Сообщения». Выключено — кнопок нет, переписка недоступна (сохраняется в базе). |
| Гости могут писать | По умолчанию «Да»: гость пишет с именем и e-mail, ответ получает письмом. «Нет» — гостя попросят войти или зарегистрироваться. |
| Гости могут прикладывать фото | По умолчанию «Нет»: поля загрузки фото у гостя нет, фото прикладывают только вошедшие покупатели, продавцы и площадка. «Да» — гость прикладывает фото на общих условиях. Действует при включённой настройке «Фото в сообщениях». |
| Диалоги гостя в браузере, дней | Сколько дней гость без аккаунта видит свои диалоги в том же браузере без письма: от 1 до 365, по умолчанию 30. Срок продлевается при каждом открытии переписки. |
| Пункт «Продавцы» в главном меню | По умолчанию «Да»: ссылка на каталог продавцов последним пунктом в меню категорий штатной темы. Если в магазине нет категорий, меню не выводится. Блок с карточками продавцов для главной — отдельный модуль макетов (см. «Продавец на витрине»). |
| Продавец и условия в карточке товара | Компактный блок показывает логотип/название магазина, фактическую оценку и число опубликованных отзывов о продавце (либо «Пока нет отзывов»), магазин и личную переписку. Штатные отзывы о товаре сохраняются отдельно. Выберите в настройках модуля статьи условий доставки и возврата. Неактивные статьи и статьи другого магазина не выводятся. Без выбранных статей остаются подсказка расчёта при оформлении и штатная форма возврата. Цены и сроки здесь не рассчитываются: расчёт один, в checkout. При отсутствии доставки до добавления в корзину показывается предупреждение. Для товаров без доставки — отдельная подпись. |
| Карточка товара продавца → Необязательные поля | Какие необязательные поля показывать продавцу: артикул, акционная цена, производитель, Meta-поля (по умолчанию включены), теги, минимальный заказ, статус при отсутствии, вычитать со склада, требуется доставка, налог, вес, размеры (по умолчанию выключены). Скрытое поле при правке не стирает сохранённое значение; у нового товара — безопасные умолчания (налога нет, вес и размеры 0, вычитание и доставка включены). |
| Языки в кабинете продавца | Какие языки показывать продавцу в формах кабинета (товар, доставка, подборки). По умолчанию только язык магазина — без переключателя языков. Языки, которых нет в форме, при сохранении получают текст заполненного языка; уже заведённые тексты на скрытых языках не затираются. |
| Наибольший размер фото товара, МБ | Предел для каждого фото в форме товара продавца и при импорте фото по ссылкам; по умолчанию 5 МБ (от 0,1 до 100). Продавец видит слишком большой файл сразу при выборе — он подсвечивается красным и не уходит на сервер. Больше лимита PHP сервера (upload_max_filesize / post_max_size, значение показано под полем) принять нельзя. Общая настройка магазина «Макс. размер файла» на фото продавцов не влияет. |
| Продавцы могут добавлять производителей | По умолчанию «Да»: производитель в форме — поле с подсказками по общему списку магазина; совпадение подставляется (без учёта регистра), иначе при сохранении создаётся новый в Каталог → Производители, а кто добавил — в журнале продавца. «Нет» — только выбор из существующих. |
| Подборки продавцов | По умолчанию «Да»: продавец собирает блоки товаров для страницы своего магазина (см. «Кабинет продавца: подборки»). «Нет» — раздела в кабинете нет, подборки на витрине не показываются. |
| Скрывать контакты | По умолчанию «Да»: телефоны, e-mail, ссылки и @-имена в сообщениях собеседник видит как «[контакт скрыт]». Администратор видит исходный текст. |
| Отзывы и рейтинг продавцов | По умолчанию включено: покупатель оценивает продавца после выполнения своей части заказа, рейтинг виден на витрине (см. «Отзывы о продавцах и рейтинг»). Выключено — отзывов и рейтинга на витрине нет, разделы покупателя и продавца закрыты (отзывы сохраняются в базе). |
| Премодерация отзывов | По умолчанию «Нет»: отзыв публикуется сразу, площадка может скрыть его с причиной. «Да» — новые и изменённые отзывы появляются на витрине только после одобрения в разделе «Отзывы о продавцах» (число ожидающих — у пункта меню). |
| Срок для отзыва, дней | Сколько дней после выполнения части заказа покупатель может оставить отзыв: от 1 до 365, по умолчанию 90. |
| Повторная модерация только контента | Для групп продавцов с премодерацией. По умолчанию «Да»: одобренный товар остаётся на витрине, если продавец — в карточке или импортом — изменил только цену, акцию, остаток, модель, артикулы, производителя, налог, вес, размеры, доставку, статус или опции; на повторную проверку товар уходит, когда изменились название, описание, мета-поля, теги, фото, категории, характеристики. «Нет» — любое изменение одобренного товара отправляет его на модерацию. Новые и отклонённые товары проверяются всегда. |
| Показывать продавцу телефон / e-mail покупателя | По умолчанию показываются. Имя и адрес доставки продавец видит всегда. |
| OCM checkout | Раздел «Оформление заказа (OCM checkout)». Включено — покупатель оформляет заказ на одной странице OCM по адресу checkout/checkout (штатный адрес не меняется); выключено — работает штатное пошаговое оформление. Переключается без переустановки. |
| Ключ API DaData | Подсказки адреса на странице оформления. Ключ выдаётся в кабинете dadata.ru (бесплатный тариф — 10 000 подсказок в день); в его настройках ограничьте домены сайта — ключ работает в браузере покупателя. Пусто — обычные поля адреса без подсказок. |
| Штатные способы доставки для продавца без своих | По умолчанию «Да»: если у продавца нет включённых способов доставки или ни один не подходит адресу, его части заказа предлагаются штатные способы магазина (они считают стоимость по всей корзине). «Нет» — такую часть заказа оформить нельзя, покупатель видит сообщение. |
| Автопереход к оплате | По умолчанию «Да»: после кнопки «Подтвердить заказ» кнопка платёжного модуля нажимается автоматически — покупатель не подтверждает заказ второй раз (главная причина «неподтверждённых» заказов у одностраничных оформлений). Выключите для модулей оплаты, которые показывают свою форму на странице. |
| Отметка «Площадка не является продавцом» | Текст по языкам, показывается вверху страницы оформления. Пустая строка — отметка на этом языке не показывается. |
| Удалять данные при удалении модуля | По умолчанию «Нет»: таблицы продавцов сохраняются, переустановка ничего не теряет. «Да» — при удалении модуля таблицы удаляются вместе с данными. |
Видимость товаров
Товар показывается на витрине, если выполнено всё вместе:
- штатный статус товара «Включён», дата доступности наступила, товар привязан к магазину — как в обычном OpenCart;
- у товара нет продавца (товар площадки) или товар одобрен модерацией и его продавец активен.
Продавец на рассмотрении, отклонённый или заблокированный снимает с витрины все свои товары одним статусом; после активации товары возвращаются сами. Счётчики категорий, пагинация, «Похожие», «Рекомендуемые», «Новинки», «Хиты» и «Акции» учитывают скрытые товары — это один и тот же фильтр на уровне запросов к базе.
Продавцы и группы
Разделы находятся в меню Маркетплейс: «Продавцы», «Группы продавцов», «Настройки». Пункты видны только пользователям с правом доступа к разделу (Система → Пользователи → Группы пользователей). Рядом с пунктами «Продавцы», «Модерация товаров», «Выплаты продавцам» и «Отзывы о продавцах» в скобках показано число ожидающих — заявок «На рассмотрении», товаров на модерации, открытых заявок на выплату и отзывов, ждущих проверки (при премодерации); у самого пункта «Маркетплейс» — их сумма (по разделам, доступным пользователю). Нет ожидающих — чисел нет.
Продавцы. Список со статусами, быстрые наборы «На рассмотрении», «Активные», «Заблокированные», «Отклонённые»; сортировка и фильтры в заголовках. В карточке — покупатель (поиск по имени или e-mail), статус и причина отклонения или блокировки, группа, адрес магазина, реквизиты, склад отправки, описание по языкам, логотип и баннер, журнал действий.
| На рассмотрении | Заявка подана, товары продавца на витрине не показываются. |
|---|---|
| Активен | Товары, прошедшие модерацию, видны на витрине. |
| Отклонён | Заявка отклонена; продавец видит причину в личном кабинете и в письме. |
| Заблокирован | Все товары продавца сняты с витрины одним статусом; при возврате в «Активен» они появляются снова. |
Удалить можно только продавца без товаров и подзаказов — сначала передайте или удалите его товары. При удалении из папки продавца убираются его неиспользуемые загрузки кабинета (см. «Файлы изображений продавца»).
Открыть кабинет продавца. Кнопка в строке списка продавцов и в шапке карточки продавца открывает в новой вкладке витрину, где вы вошли как этот продавец, — сразу на странице «Мои товары». Ссылка одноразовая и действует 2 минуты; кнопка видна пользователям с правом изменения раздела «Продавцы»; у продавца должен быть включённый аккаунт покупателя. Пока длится такой вход, на всех страницах витрины вверху видна жёлтая плашка с именем продавца и вашим логином и кнопкой «Выйти». Всё, что можно продавцу, можно и вам: товары, заказы, доставка, баланс, — кроме принятия оферты (по 289-ФЗ её принимает сам продавец). Каждое действие записывается во вкладку «Журнал» карточки продавца с пометкой «Администратор <логин> в кабинете», сам вход — строкой «Открыт кабинет продавца от имени администратора». Вход выполняется в браузере, где вы его открыли: если в этом браузере вы были на витрине под своим аккаунтом покупателя, он заменится аккаунтом продавца, а корзина очистится — как при штатной кнопке «Войти в магазин» в карточке покупателя.
Группы продавцов. Комиссия по умолчанию (процент от позиции и/или фиксированная сумма), премодерация товаров, лимит товаров (0 — без ограничения), разрешённые категории (пусто — любые). При установке создаётся группа «Стандартная», новые заявки попадают в первую группу по порядку сортировки. Нельзя удалить последнюю группу и группу с продавцами.
Заявка продавца
Страница «Стать продавцом» доступна по ссылке в подвале (колонка «Информация»), в личном кабинете и в боковом блоке «Аккаунт». Гость регистрируется и подаёт заявку одной формой; вошедший покупатель заполняет только данные магазина. После отправки продавец видит страницу «Мой магазин» со статусом заявки, администратор получает письмо (если письма включены).
Поиск товаров и фильтры маркетплейса
На странице продавца под профилем доступны поиск по названию или модели, категории, бренды и характеристики его товаров. Выборы применяются вместе. Категория выбирается точно, без подкатегорий; характеристика — одно фактическое значение на текущем языке. При поиске подборки скрыты, чтобы показывать только результаты.
Ссылка «Все товары маркетплейса» в каталоге продавцов и форме магазина открывает общий каталог OCM. В нём дополнительно выбирается продавец или «Товары площадки». Штатные категории, поиск и фильтры установленной темы продолжают работать отдельно. Неодобренные, выключенные, будущие товары и товары неактивных продавцов не предлагаются.
«Показать товары» применяет выбор и открывает адрес, который можно сохранить; «Сбросить» возвращает весь ассортимент текущей области. Сортировка и пагинация сохраняют выбранные условия. Цена сортируется по базовой цене, отображаемая акция и налог рассчитываются штатной карточкой. На странице не более 100 товаров; в каждом списке не более 200 значений, при усечении появляется пояснение. Длинные текстовые характеристики не используются как фильтры. Пустой результат не означает отсутствие товаров во всём магазине.
Новая воронка просмотров и общий балл качества продавца пока не включены. Текущая статистика продаж и реальный рейтинг отзывов сохраняются.
Очередь администратора и готовность продаж
В «Маркетплейс → Статистика» общая очередь объединяет заявки продавцов, товары на модерации, заявки на выплату и отзывы на проверке. Показываются только типы задач, к которым у администратора есть доступ. Составной ID содержит тип и номер записи. Кнопка «Открыть» ведёт в существующий экран обработки; для товара открывается точная подборка.
Ожидание от 48 часов отмечается высоким приоритетом. Это подсказка для работы, а не срок обязательного исполнения. Сначала идут старые задачи; отображается до 200 записей с общим количеством. Фильтры table-kit работают внутри показанных записей; для остальных используйте раздел обработки. Неизвестная дата подписывается явно.
«Готовность продаж: настройки» доступна здесь и на экране настроек модуля: статус модуля, оформление, доставка, оплата, почта, статьи доставки/возврата и условия оформления. «Настроено» означает только наличие конфигурации. Доступность доставки по адресу, получение писем и приём оплаты проверяются отдельно. Секреты в этом блоке не показываются. Техническое состояние схемы и лицензии остаётся в прежней диагностике.
В модерации кнопка истории показывает последние 100 событий текущего товара и продавца: действие, дату, автора и сохранённую причину решения. Требуется право просмотра модерации; изменение по-прежнему требует права modify. Отдельная кнопка «Сравнение версий» показывает сохранённые поля/фото; у старых товаров прежний снимок может отсутствовать. Новый процесс рассмотрения споров в эту версию разработки не добавлен.
Статистика и сводка продавца
Подготовка магазина и задачи
В сводке продавца показаны оформление, доставка, товары и модерация. Это проверка заполнения и настроек, а не гарантия продаж. Доставка проверяется по включённым способам продавца/площадки; доступность для конкретного адреса рассчитывает оформление заказа.
«Требуют внимания» ведёт к своим заказам в обработке, непрочитанным диалогам, отклонённым товарам, остаткам до 5 шт. включительно и рекомендациям заполнения. Есть ссылка возврата к полному списку. Оформление и товарные действия скрыты у заблокированного продавца; существующая переписка сохраняется.
Сводка в кабинете продавца. Ссылка «Мой магазин» в личном кабинете и кнопка «Сводка» на всех страницах кабинета открывают сводку. Блок «Сейчас»: остаток к выплате, сумма в удержании, заказы в работе, товары в продаже (из всех), на модерации, отклонённые, непрочитанные уведомления, новые сообщения покупателей и рейтинг магазина — каждая плитка ведёт в нужный раздел. Блок «Продажи за период» (7, 30, 90 дней, этот и прошлый месяц или свои даты «с — по», до года): число заказов и выполненных, продажи, средний чек, комиссия площадки и сумма к выплате; график продаж по дням (для периода длиннее 92 дней — по неделям) с подсказкой при наведении и таблицей значений; лучшие товары периода. Считаются части заказов продавца, оформленные в периоде; «выполненными» считаются статусы из Настройки магазина → Опции → Статус выполненного заказа, «в работе» — из «Статус заказа в обработке», кроме выполненных (в OpenCart «Сделка завершена» и «Доставлено» обычно стоят в обоих списках — такие заказы считаются выполненными). В «Лучших товарах периода» название товара в продаже открывает его на витрине; товар, который сейчас не на витрине (на модерации, отклонён или выключен), открывается формой в кабинете с пометкой «сейчас не на витрине» — продажа за период при этом остаётся в статистике. Заблокированному продавцу сводка остаётся доступна.
Статистика маркетплейса — Маркетплейс → Статистика: то же за период по всем продавцам (без товаров самой площадки): заказы, продажи, средний чек, доход площадки (комиссия), к выплате продавцам, график, таблица по продавцам с сортировкой и лучшие товары с продавцом. Вверху — текущее состояние: активные продавцы, заявки продавцов, товары на модерации, заявки на выплату и доступно к выплате всего. Доступ — право extension/ocm/stats (выдаётся при установке и сохранении настроек модуля).
Сообщения покупатель ↔ продавец
Где написать. Кнопка «Написать продавцу» — в карточке товара продавца (под строкой «Продавец»), на странице магазина продавца и в заказе покупателя (блок «Продавцы» в Личный кабинет → История заказов → заказ). Тема подставляется сама (название товара или «Вопрос по заказу №…»), её можно изменить. Повторное нажатие по тому же товару или заказу открывает уже начатый диалог. Продавцу, заблокированному площадкой, можно написать только по своему заказу. Себе продавец написать не может — кнопка в его товарах не показывается.
Покупатель. Переписка — в Личный кабинет → Сообщения продавцам (рядом — число новых ответов). Гость (если в настройках разрешено) указывает имя и e-mail: продавец видит только имя с пометкой «гость», ответ приходит письмом со ссылкой на переписку; ссылка из письма открывает диалог без входа. В том же браузере гость видит свои диалоги и без письма: кнопка «Все сообщения» на странице переписки открывает их список, а повторное «Написать продавцу» тому же продавцу открывает уже начатый диалог — столько дней, сколько задано настройкой «Диалоги гостя в браузере, дней» (ключи хранятся в cookie браузера; на другом устройстве — только по ссылке из письма). Защита от спама: скрытое поле для ботов, не больше 3 новых диалогов в час с одного адреса (у вошедшего покупателя — 10), не больше 20 сообщений в час от одной стороны в диалоге, капча магазина — если она включена для страницы «Связаться с нами» (Настройки магазина → Опции → Капча).
Продавец. Кнопка «Сообщения» в кабинете (с числом новых) и плитка «Новые сообщения покупателей» в сводке. Список диалогов: покупатель (имя и первая буква фамилии, e-mail не показывается), тема с товаром или заказом, число сообщений, состояние («Новое», «Ждёт ответа», «Отвечено», «Закрыт»). Товар в диалоге ведёт в форму товара в кабинете, заказ — в часть заказа продавца.
Скрытие контактов (по умолчанию включено): телефоны (10–15 цифр), e-mail, ссылки и адреса сайтов, @-имена мессенджеров в сообщениях покупателя и продавца собеседник видит как «[контакт скрыт]» — сделки не уходят мимо площадки. Автор видит свой текст как написал. Номера заказов, цены и короткие числа не скрываются.
Фото в сообщениях. К любому сообщению — покупателя, продавца, площадки и гостя (гостю — только при включённой настройке «Гости могут прикладывать фото») — можно приложить до 5 изображений JPG, PNG, GIF или WEBP (размер каждого — по лимиту файлов магазина, Система → Настройки → Сервер → Макс. размер файла; большие фото с телефона уменьшаются до 1600 px). В переписке показывается ряд миниатюр, клик открывает фото во всплывающем окне (в разделе администратора — в новой вкладке); в письме о новом сообщении — только пометка «Вложений: N». Файлы лежат вне веб-корня (storage/upload/ocm/messages/) и открываются только участникам диалога и администратору — по прямой ссылке их не достать; если площадка скрыла сообщение, его фото тоже не видны. Переключатель «Фото в сообщениях» в настройках блока «Сообщения» убирает поле загрузки (уже приложенные фото остаются). При удалении продавца удаляются и фото его диалогов; строка «Вложения в сообщениях» в блоке «Состояние» показывает число и объём, кнопка «Очистить» той же таблицы убирает файлы без записи и папки удалённых диалогов.
Письма. Продавцу — о новом сообщении покупателя, покупателю — об ответе продавца или площадки, на языке получателя. Письмо уходит на первое непрочитанное сообщение диалога: пока получатель не открыл переписку, следующие письма по этому диалогу не отправляются. Письма выключаются общей настройкой «Письма продавцам и администратору».
Администратор — Маркетплейс → Сообщения: все диалоги площадки (продавец, покупатель с e-mail, тема, число сообщений и скрытых контактов, состояние). В диалоге видны исходные тексты; у сообщений со скрытыми контактами — пометка и то, что видит собеседник. Можно ответить от имени площадки (сообщение видят обе стороны, контакты в нём не скрываются, письмо — обоим), скрыть сообщение (стороны его больше не видят) или закрыть диалог (стороны не могут писать; покупатель может начать новый). Право — extension/ocm/message. При удалении продавца его переписка удаляется.
Отзывы о продавцах и рейтинг
Кто оставляет отзыв. Только покупатель, вошедший в свой аккаунт, — о своей части заказа у конкретного продавца, когда эта часть выполнена (статус из Настройки магазина → Опции → Статус выполненного заказа, обычно «Доставлено» или «Сделка завершена»), и не позже срока из настройки «Срок для отзыва» (по умолчанию 90 дней). Один отзыв на одну часть заказа: оценка от 1 до 5 звёзд обязательна, текст — по желанию, до 2000 символов. Гости и покупатели без заказа у продавца отзыв оставить не могут — поэтому у всех отзывов отметка «Покупка подтверждена». Продавец, купивший в собственном магазине, себя не оценивает. Штатные отзывы о товарах OpenCart работают как прежде и с отзывами о продавце не смешиваются.
Где оставить. Кнопка «Оставить отзыв о продавце» — в блоке «Продавцы» заказа (Личный кабинет → История заказов → заказ), раздел Личный кабинет → Отзывы о продавцах (рядом — число заказов, ждущих отзыва) и ссылка в письме-приглашении. Приглашение уходит один раз, когда часть заказа впервые становится выполненной, если включены письма модуля. Свой отзыв покупатель может изменить в течение 30 дней после публикации (у отзыва появится пометка «изменён») и удалить в любой момент. Подпись на витрине — имя и первая буква фамилии; e-mail никому, кроме администратора, не показывается.
Рейтинг продавца — средняя оценка всех опубликованных отзывов, до десятых, и их число. Виден на странице магазина (звёзды под названием и блок «Отзывы покупателей» внизу: средняя оценка, распределение по звёздам, отзывы с ответами продавца, по 10 на страницу), в каталоге продавцов (переключатель «По названию / По рейтингу»: сначала выше средняя оценка, при равной — больше отзывов, продавцы без отзывов — в конце) и в строке «Продавец» на карточке товара (ссылка ведёт к отзывам). Скрытые площадкой и ждущие проверки отзывы в рейтинг не входят.
Продавец. Кнопка «Отзывы» в кабинете (с числом отзывов без ответа) и плитка «Рейтинг магазина» в сводке. На каждый отзыв продавец может дать один публичный ответ — его увидят все на странице магазина, покупателю придёт письмо. Ответ можно изменить; пустое поле убирает ответ. Отзывы, ждущие проверки площадки, продавец не видит; скрытые площадкой видит с причиной. Раздел доступен и заблокированному продавцу.
Администратор — Маркетплейс → Отзывы о продавцах: все отзывы (продавец, покупатель с e-mail, заказ, оценка, текст, есть ли ответ, состояние), ждущие проверки — сверху. В карточке отзыва можно опубликовать отзыв (при премодерации), скрыть его с обязательной причиной (покупатели его не видят, в рейтинг он не входит, автор не может его изменить, но может удалить), показать снова, скрыть или показать ответ продавца. Удалить отзыв площадка не может — скрытый отзыв остаётся свидетельством. Все действия записываются в журнал продавца. Право — extension/ocm/review. При удалении продавца удаляются и отзывы о нём; при удалении заказа — отзывы о его частях.
Кабинет продавца: товары
Цена и остаток с предпросмотром
В «Моих товарах» используйте существующие поиск, фильтры и выбор строк. Для списков до пяти строк table-kit оставляет компактный режим без панели поиска. Рекомендации возле названия показывают отсутствующие фото, описание, категорию, характеристики и применимые размеры. Они не влияют на ранжирование и не задают обязательные свойства категории: указывайте только фактические данные.
Отметьте до 100 своих товаров и задайте новую цену и/или целый остаток. Пустое поле сохраняет значение каждого товара (в том числе дробный остаток LiveStore), 0 обнуляет его. Цена допускает четыре знака после точки или запятой; предпросмотр показывает их точно. Нажмите «Предпросмотр изменений», проверьте строки и подтвердите. До подтверждения записи нет. Отмена сбрасывает предпросмотр, подтверждение одноразовое и действует 10 минут.
Если данные изменились до подтверждения, пакет не сохраняется: создайте новый предпросмотр. Если конкурентное изменение возникло уже во время записи нескольких товаров, сообщение укажет обработанное количество — проверьте список перед повтором. Операция не обещает общую транзакцию для MyISAM. Контент, ЧПУ, акции и остатки опций сохраняются; обычная цена должна быть выше акционной. Повторная модерация одобренного товара учитывает настройку площадки; отклонённые и черновики автоматически не одобряются. Изменения записываются в аудит.
Активный продавец открывает кабинет по ссылке «Мой магазин» (выпадающее меню «Личный кабинет» в шапке, личный кабинет, боковой блок «Аккаунт», подвал) — раздел «Сводка» на витрине. В шапке пункт есть только у тех, кто подавал заявку продавца; обычные покупатели его не видят. Продавец со статусом «На рассмотрении», «Отклонён» или «Заблокирован» видит только страницу статуса; покупатель без заявки попадает на «Стать продавцом».
Оформление магазина — кнопка «Оформление магазина» в «Сводке» и в «Моих товарах» (рядом в «Сводке» — «Открыть магазин»). Продавец сам меняет: логотип (квадратный, лучше от 400×400 px) и баннер над страницей магазина (лучше 1140×240 px) — JPG, PNG, GIF или WEBP до предела «Наибольший размер фото товара»; слишком большой файл подсвечивается сразу при выборе, загруженное можно «Убрать»; название и описание магазина (тот же редактор, что у товара) по языкам кабинета; Meta Title (пусто — название) и Meta Description страницы магазина; склад отправки — страна, регион, город (обязательно), индекс, адрес. Изменения сразу видны на витрине — на странице магазина, в каталоге продавцов и в блоке «Продавцы» — и записываются в журнал продавца («Изменено оформление магазина: логотип, название…»), прежний логотип или баннер удаляется, если больше нигде не используется. Адрес страницы магазина, реквизиты (форма, наименование, ИНН, ОГРН) и контакты для связи с площадкой показываются только для чтения — их меняет администратор в карточке продавца.
Список товаров — таблица с быстрыми наборами по состоянию модерации («На модерации», «Одобрен», «Отклонён»), сортировкой и фильтрами в заголовках, выбором столбцов. Отмеченные товары можно включить в продажу, снять с продажи, скопировать (копия создаётся снятой с продажи) или удалить. Над таблицей — заполнение лимита группы, если он задан.
Карточка товара — вкладки «Описание» (название, описание, Meta Title, заголовок H1 (если есть в сборке), Meta Description, теги и ЧПУ-ключ по языкам; Meta Keywords продавцу не показывается — значение из админки или импорта сохраняется; описание — в простом редакторе, см. «Удобства формы»), «Данные» (модель, цена, количество — всегда; артикул, акционная цена с датами, производитель, минимальный заказ, статус при отсутствии, «Вычитать со склада», «Требуется доставка», налог, вес и размеры — по настройке «Необязательные поля»; производитель — поле с подсказками по общему списку магазина, новое название создаётся при сохранении, если площадка разрешила), «Категории» (только категории, разрешённые группе продавца; если список группы пуст — все включённые категории магазина), «Изображения» (загрузка нескольких файлов JPG/PNG/GIF/WEBP в папку image/catalog/ocm/<id продавца>/ с лимитом размера из настройки «Наибольший размер фото товара»; файлы проверяются сразу при выборе — неподходящий по размеру или типу подсвечивается красным с причиной, не загружается, а шаг «Изображения» помечается красным; главным можно отметить любое фото — и сохранённое, и только что выбранное; без отметки главным становится первое; удаление), «Характеристики» (начните вводить название характеристики — от двух букв появятся подсказки из справочника магазина, длинного списка нет; значение вводится сразу, по языкам; значение без выбранной характеристики подсвечивается и не даёт сохранить; если площадка не завела ни одной характеристики, вкладка об этом сообщает), «Опции» (см. ниже).
ЧПУ-ключ. Поле «ЧПУ-ключ (адрес страницы)» на вкладке «Описание» задаёт часть адреса товара при включённом ЧПУ магазина (Система → Настройки → Сервер → Включить ЧПУ): буквы, цифры, дефис и подчёркивание, без пробелов, до 64 символов; ключ должен быть уникальным среди всех адресов магазина и не повторяться между языками. Поле заполняется само от названия (транслитерация: «Дубовый стол №5» → dubovyy-stol-5) по мере ввода названия и при сохранении, если оставлено пустым; занятый ключ получает суффикс -2, -3. Продавец может поправить ключ вручную; кнопка «Заново от названия» возвращает автоматический. Ключи хранятся в штатной таблице адресов, поэтому в карточке товара админки они видны на вкладке «SEO»; копия товара ключи не наследует.
Шаги формы. Карточка заполняется по шагам: 1 Описание → 2 Данные → 3 Категории → 4 Изображения → 5 Характеристики → 6 Опции → 7 Публикация; кнопки «Далее» и «Назад» внизу каждого шага, по вкладкам можно переходить и напрямую. «Далее» не пускает дальше без названия, цены и количества, хотя бы одной категории. На шаге «Публикация» — итог (название, цена, категории, изображения, текущее состояние) и две кнопки: «Опубликовать на витрине» (товар в продаже; для групп с премодерацией — после одобрения площадкой) и «Сохранить в черновики» (товар сохранён, но покупателям не виден; опубликовать можно позже из списка товаров). При добавлении есть галочка «после сохранения сразу открыть форму нового товара». Кнопка «Сохранить и остаться» (и Ctrl+S) сохраняет с текущим состоянием, не меняя его.
Удобства формы. Описание редактируется в простом редакторе: заголовки H2–H4, обычный текст, жирный, курсив, маркированный и нумерованный списки, «убрать форматирование»; вставка из Word и сайтов — как простой текст, лишняя разметка (цвета, шрифты, ссылки, картинки) отбрасывается и при сохранении. Пустая модель заполняется от названия, пустой Meta Title — названием. Редко нужные поля вкладки «Данные» (вычитание со склада, доставка, производитель, налог, вес и размеры) свёрнуты в блок «Дополнительно». На вкладке «Категории» — поиск по названию и счётчик выбранных; на вкладке «Изображения» файлы можно перетащить в зону загрузки, выбранные показываются с превью до сохранения. Кнопка «Сохранить и остаться» (форма этого товара) и Ctrl+S; «добавить ещё» — галочка на шаге «Публикация». Вкладки с ошибками помечаются счётчиком; при уходе со страницы с несохранёнными изменениями браузер спросит подтверждение; открытая вкладка запоминается в адресе (#tab-data).
Опции товара. Продавец не заводит собственные опции — выбирает из справочника магазина (Каталог → Опции в админке; названия и значения на языке витрины). Для опции отмечается обязательность; у списковых типов (список, переключатель, флажки, изображения) добавляются значения справочника с остатком, признаком «Списывать», надбавкой к цене и весу со знаком; у текстовых типов (текст, многострочный текст, файл, дата, время, дата и время) задаётся только значение по умолчанию. Списковая опция без единого значения не сохраняется — форма вернётся с ошибкой. Каждую опцию можно добавить в товар один раз: при повторном выборе форма подскажет, что опция уже есть, и подсветит её панель; смена опции в заполненной панели очищает введённые в ней значения. Опции хранятся в штатных таблицах, поэтому на витрине, в корзине, заказе и в карточке товара админки они видны как обычно; при правке товара продавцом строки опций сохраняют свои идентификаторы, и позиции корзин покупателей не ломаются. Картинки для значений типа «изображения» и баллы задаёт площадка в админке.
| Черновик | Служебное состояние, в кабинете не создаётся. |
|---|---|
| На модерации | Товар создан или изменён продавцом из группы с премодерацией; на витрине не показывается до одобрения. |
| Одобрен | Товар показывается на витрине, если включён продавцом и продавец активен. Группа без премодерации получает это состояние сразу. При включённой настройке «Повторная модерация только контента» (по умолчанию) одобренный товар остаётся на витрине после правки цены, акции, остатка, модели, артикулов, производителя, налога, веса, размеров, доставки, статуса или опций — в карточке и импортом; изменение названия, описания, мета-полей, тегов, фото, категорий, характеристик или ЧПУ-ключа возвращает его на проверку. |
| Отклонён | Комментарий модератора виден в списке и в карточке; после исправления и сохранения товар снова уходит на проверку (любое изменение, в том числе цены). |
Файлы изображений продавца. Загруженные картинки лежат в папке image/catalog/ocm/<id продавца>/. Копия товара использует те же файлы, что и оригинал, поэтому файл удаляется, только когда он больше не нужен ни одному товару, описанию или профилю продавца: при удалении товара, после сохранения формы со снятой отметкой «Удалить» (если форма вернулась с ошибкой, файл остаётся). Файлы, загруженные в форме, которую продавец так и не сохранил, удаляются автоматически через сутки — при следующем входе продавца в «Мои товары», без настройки cron. При удалении продавца в админке из его папки удаляются все неиспользуемые загрузки кабинета, пустая папка тоже удаляется. Кнопка «Очистить» в строке «Неиспользуемые файлы продавцов» блока «Состояние» (настройки модуля) проходит все папки сразу и показывает, сколько удалено. Файлы, положенные в эти папки вручную или через менеджер файлов, модуль не удаляет; вместе с файлом удаляются его уменьшенные копии из image/cache/.
product_id, путь к изображению вне своей папки или запрещённая категория отклоняются, изменяющие запросы принимаются только с токеном сессии.Кабинет продавца: импорт и экспорт товаров
Кнопка «Импорт / экспорт» в разделе «Мои товары» открывает страницу с тремя блоками: загрузка таблицы, выгрузка своих товаров и история загрузок. Раздел включается настройкой «Импорт и экспорт товаров» в блоке «Импорт товаров продавцами» настроек модуля (по умолчанию включён); там же — предел «Строк в одном файле» (по умолчанию 5000) и переключатель «Изображения по ссылкам».
Файл. CSV (из Excel, Google Таблиц, 1С; кодировка UTF-8 или Windows-1251, разделитель «;», «,» или табуляция — определяются сами) или XLSX (первый лист). Первая строка — заголовки колонок. Ссылка «Шаблон файла с примером» даёт файл с правильными заголовками и строкой-примером; «Выгрузить мои товары» — все товары продавца в тех же колонках с «ID товара», чтобы поправить цены и остатки и загрузить файл обратно. Список колонок с пояснениями раскрывается на странице («Какие колонки принимаются»). Несколько значений в одной ячейке — категории, изображения, характеристики — разделяются вертикальной чертой «|».
Сопоставление колонок. После загрузки показывается таблица: колонка файла, первые значения из неё и поле товара, в которое она попадёт. Заголовки распознаются по русским и английским названиям («Модель», «Артикул», «model»; «Название», «name»; «Цена», «price»…), для других языков магазина — с суффиксом «Название (en-gb)». Заголовок, совпадающий с названием характеристики магазина, становится колонкой этой характеристики. Нужна хотя бы колонка «ID товара» или «Модель»; одно поле нельзя выбрать для двух колонок. Кнопка «Начать импорт» запускает обработку.
Какой товар обновляется. Строка с «ID товара» обновляет этот товар (только свой — чужой номер отклоняется). Без ID ищется товар продавца с такой же «Моделью»: найден — обновляется, не найден — создаётся (для нового обязательны модель, название и цена; лимит товаров группы проверяется на каждую строку). У существующего товара меняются только заполненные ячейки — пустая ячейка оставляет прежнее значение, поэтому прайс из трёх колонок (модель, цена, количество) не стирает описания и картинки. Опции товара импорт не меняет. Правила проверки те же, что в карточке: категории — только разрешённые группе (номер, путь «Родитель > Дочерняя» или уникальное название), производитель, налог, единицы — по названию из справочников магазина, ЧПУ-ключ — уникальный. Созданные и изменённые товары проходят модерацию по правилам группы, как при ручной правке: прайс с ценами и остатками не снимает одобренные товары с витрины, если включена настройка «Повторная модерация только контента» (по умолчанию); строки с новым названием, описанием, фото, категориями или характеристиками отправляют товар на проверку.
Изображения. В колонке «Изображения» через «|» — ссылки http(s) или имена файлов, уже загруженных через карточку товара; первое изображение — главное, непустой список заменяет прежний набор. Ссылки скачиваются в папку продавца (только картинки JPG/PNG/GIF/WEBP, размер — по лимиту файлов магазина; адреса внутренней сети отклоняются); одна и та же ссылка второй раз не скачивается. Переключатель «Изображения по ссылкам» в настройках запрещает ссылки — остаются только файлы из папки.
Ход импорта. Строки обрабатываются пакетами прямо со страницы «Ход импорта» (cron не нужен): полоса выполнения, счётчики «Обработано / Создано / Обновлено / С ошибками» и таблица «Строки с ошибками» с номером строки файла и причиной. Строка с ошибкой не сохраняется целиком — её исправляют в файле и загружают снова (остальные строки при повторе обновятся по ID или модели). Если страница закрылась, откройте загрузку из истории — импорт продолжится с места остановки; «Отменить» останавливает обработку, уже обработанные строки остаются. История загрузок хранится 30 дней, запись можно удалить. В журнале продавца (карточка продавца в админке → «Журнал») появляется строка «Импорт товаров №…: создано, обновлено, с ошибками».
Модерация товаров
Сравнение версий карточки
В строке товара откройте «Сравнение версий». Слева — последняя сохранённая одобренная карточка, справа — рассматриваемая. Изменённые поля раскрыты, остальные можно раскрыть отдельно. Название, описание, meta и значения характеристик разделены по языкам; категории содержат ID и текущее название справочника. HTML показан безопасным текстом, главное и дополнительные фото сравниваются с учётом порядка.
На текущей ожидающей версии нажмите «Одобрить» или «Отклонить». Для отклонения нужна причина от 3 до 4000 символов, для одобрения комментарий необязателен. Решение, причина и администратор относятся к ID версии. Новая правка продавца, другой модератор или повтор делают старое действие недействительным — обновите страницу. Таблица внизу открывает до 200 последних версий; заменённые отправки повторно не рассматриваются. Массовые решения проверяют каждую версию и сообщают о конфликтах.
Хранение. Сохраняются последние 20 версий и все за 180 дней, текущая и последняя одобренная защищены. Фото копируются отдельно вне веб-корня с проверкой содержимого. Удаление оригинала не уничтожает архивное фото; недоступная копия обозначается явно. Очистка идёт при новых отправках и обычной очистке файлов продавца. Удаление товара/продавца удаляет его версии и неиспользуемые копии, журнал решений хранится отдельно.
Цена/остаток не входят в снимок и подчиняются прежней настройке повторной модерации только контента. Ожидающая карточка скрыта как прежде; старый снимок автоматически на витрину не возвращается. При ошибке снимка/фото товар остаётся на проверке: проверьте свободное место, права и размещение storage вне веб-корня.
Раздел Маркетплейс → Модерация товаров показывает все товары продавцов с состоянием модерации, продавцом (с пометкой, если он не активен), ценой и статусом продажи; набор «На модерации» — очередь на проверку. Отметьте строки и нажмите «Одобрить» (зелёная кнопка) или «Отклонить» — для отклонения обязателен комментарий продавцу, он сохраняется в товаре и отправляется письмом. В строке есть отдельные переходы к сравнению версий и к штатной карточке товара в каталоге.
Штатный список товаров. С модулем Каталог → Товары работает как остальные таблицы маркетплейса: правая панель фильтра убрана, список занимает всю ширину, а сортировка (щелчок по заголовку), фильтры под заголовками (название и модель — подстрока или «=точно»; цена и количество — число, >5, <=10, диапазон 5-10; статус, индексация, продавец, производитель — списки), сброс и выбор столбцов — в самой таблице. Отбор и сортировка выполняются на сервере по всем товарам, страницы — штатные. Первая колонка после флажка — ID товара (фильтр по номеру: 123, >100, 100-200; сортировка). Добавлены колонки «Продавец» (название магазина; у неодобренного товара — состояние модерации; «площадка» у товаров без продавца, фильтр «Товары площадки») и «Производитель» (скрыта по умолчанию — включается в «Отображении столбцов»). Настройки видимости столбцов запоминаются в браузере. Ядро и шаблоны не меняются — заголовки, колонки и условия выборки добавляются событиями модуля.
filter_* по-прежнему работают.Кабинет продавца: подборки
Раздел Мои товары → Подборки (кнопка есть и в «Сводке»). Подборка — блок товаров на странице магазина продавца, как «Рекомендуемые» на главной: заголовок по языкам, тип — «Выбранные товары» (продавец подбирает свои товары по названию или модели и расставляет стрелками, до 24), «Новинки», «Акции» или «Хиты продаж» (автоматически из его товаров, 1–24 штук; хиты — по проданному количеству, товары без продаж не попадают), место — над списком товаров магазина или под ним (перед отзывами), порядок и статус. В подборке показываются только одобренные товары в продаже; пустая подборка не выводится. Чужой товар в подборку не попадает. Действия пишутся в журнал продавца (block.add / block.edit / block.delete); при удалении продавца его подборки удаляются. Раздел включается настройкой «Подборки продавцов».
Продавец на витрине
Страница магазина продавца открывается по адресу /адрес-магазина (поле «Адрес магазина» в заявке и карточке продавца), например /anna-shop; без ЧПУ — index.php?route=extension/ocm/store&slug=anna-shop. На странице — логотип, баннер, описание, город отправки, дата регистрации и товары продавца с сортировкой, выбором количества и постраничным выводом; показываются только одобренные товары активного продавца. Над списком и под ним — подборки продавца (см. «Кабинет продавца: подборки»), если он их завёл. Адрес неактивного или несуществующего продавца даёт 404. Адрес магазина не может совпадать с ключом ЧПУ категории, товара или информационной страницы — такие адреса отклоняются при заявке и в карточке продавца.
Каталог продавцов — страница «Продавцы» со всеми активными магазинами (логотип, число товаров, город, краткое описание). Её адрес задаётся в настройках модуля («ЧПУ каталога продавцов», по умолчанию /sellers); ссылка на каталог добавляется в подвал витрины рядом со «Стать продавцом» и, при включённой настройке «Пункт „Продавцы“ в главном меню», последним пунктом в меню категорий штатной темы.
Продавцы брендов. На штатной странице «Производители» (index.php?route=product/manufacturer) под каждым брендом — до пяти продавцов, у которых есть товары этого бренда в продаже (у кого товаров бренда больше — выше). Если продавцов больше пяти, ниже — кнопка «Все продавцы бренда (N)»: она открывает каталог продавцов с отбором по бренду — заголовок «Продавцы бренда «…»», у каждого магазина число товаров бренда и ссылки «Все товары бренда» и «Все продавцы». Бренды без товаров продавцов выводятся как обычно.
Блок «Продавцы» на главной и других страницах — отдельный модуль макетов Расширения → Модули → OCM Маркетплейс · Продавцы (ставится вместе с основным модулем). Создайте блок (название, число карточек 1–48, порядок — по рейтингу / числу товаров / новизне / названию, число главных категорий в карточке 0–5, статус) и добавьте его в Дизайн → Макеты в нужную позицию, как штатный модуль «Рекомендуемые». Карточка: логотип, название, рейтинг (у продавцов с отзывами), число товаров, город отправки и категории верхнего уровня, в которых у продавца больше всего товаров в продаже; заголовок блока — «Наши продавцы» со ссылкой «Все продавцы». Блоков может быть несколько с разными настройками.
Продавец на карточке и в списках. На странице товара в блоке характеристик (производитель, модель, наличие) появляется строка «Продавец: …» со ссылкой на магазин; в списках категории, поиска, производителя, акций и в модулях «Рекомендуемые», «Новинки», «Хиты продаж» — строка под названием товара. Товары площадки (без продавца) выводятся как обычно.
/anna-shop нужна включённая настройка магазина «Использовать ЧПУ» и правила перезаписи сервера (.htaccess OpenCart или аналог для nginx) — те же, что для ЧПУ категорий и товаров. Разбор адреса работает и с SEO PRO (ocStore).Заказы и подзаказы
Покупатель оформляет обычный заказ штатным оформлением: одна корзина, одна оплата. Модуль сам разбирает заказ по продавцам:
- Строки заказа привязываются к продавцу товара сразу при создании заказа; товары без продавца относятся к площадке. После правки заказа в админке привязка пересчитывается.
- Подзаказы — часть заказа одного продавца: его товары, сумма, комиссия площадки, сумма к выплате, статус, трек-номер и история. Создаются один раз, когда заказ впервые получает статус (оплата или подтверждение оформления), и только если в заказе есть товары продавцов. Неоплаченные «потерянные» заказы подзаказов не получают.
- Статус всего заказа меняет администратор штатной историей заказа. Отмена или возврат заказа (статус вне «в обработке» и «выполнен» из настроек магазина) переносится на все подзаказы; остальные статусы — на подзаказы, которые продавец ещё не трогал.
В карточке заказа в админке (Продажи → Заказы → Просмотр) над историей появляется блок «Продавцы и подзаказы»: по каждому продавцу — товары с комиссией и её источником, суммы, начисления на баланс, история; можно сменить статус и трек-номер подзаказа, оставить комментарий (с пометкой «Показать покупателю») и отправить письмо продавцу и/или покупателю. Блок виден пользователям с правом доступа к разделу extension/ocm/suborder, изменения — с правом изменения.
В списке заказов (Продажи → Заказы) есть колонка «Продавцы» — кто продаёт товары заказа («площадка» — товары без продавца), и поле фильтра «Продавец» рядом с кнопкой «Фильтр»: оно сочетается со штатными фильтрами и сохраняется при сортировке и переходе по страницам.
Покупатель на странице своего заказа в личном кабинете видит блок «Продавцы»: статус каждой части заказа, трек-номер и комментарии, отмеченные как видимые покупателю.
Комиссия и баланс
Комиссия считается по каждой строке заказа: база — сумма строки без налогов (цена × количество), к ней применяется процент и фиксированная сумма за строку, результат округляется до копеек и не превышает сумму строки. Берётся самое точное правило:
- правило продавца;
- правило категории товара (если у товара несколько категорий с правилами — наибольшая комиссия);
- комиссия группы продавца (если в группе 0 % и 0 — считается не заданной);
- комиссия по умолчанию из настроек модуля.
Комиссия и источник правила видны в блоке подзаказов у администратора и в карточке подзаказа у продавца. Заказ считается по условиям, которые действовали на дату заказа.
Баланс продавца — журнал операций, записи только добавляются. Когда часть заказа получает «завершённый» статус (настройка магазина «Статус выполненного заказа»), начисляются продажа и удержание комиссии; сумма становится доступной через срок удержания. Если подзаказ потом отменён или возвращён, заказ удалён или из него убраны товары продавца — появляется запись «Сторно» на весь остаток; если после правки заказа изменилась сумма — «Корректировка».
Кабинет продавца: заказы
Раздел «Мои заказы» открывается из «Моих товаров» и со страницы статуса магазина. Список — таблица с номером заказа, датой, покупателем, количеством товаров, суммой, статусом и трек-номером; быстрые наборы по статусам, сортировка и фильтры в заголовках.
В карточке подзаказа продавец видит только свои товары из заказа, имя и адрес доставки покупателя, телефон и e-mail (по настройке), способы доставки и оплаты, комментарий покупателя, суммы и состояние начисления, историю. Внизу — форма: статус (только разрешённые площадкой), трек-номер, комментарий, переключатели «Показать покупателю» и «Уведомить покупателя по e-mail».
Продавец получает письмо о каждом новом подзаказе и об отмене или возврате своей части заказа площадкой (если письма включены).
Правила комиссии
Раздел Маркетплейс → Правила комиссии. Каждое правило — это область (общее, группа продавцов, категория, продавец), процент от суммы строки, фиксированная сумма за строку и дата, с которой оно действует. Правило не редактируется «на месте»: кнопка «Изменить» создаёт новую версию с датой вступления в силу, прежняя остаётся в истории со статусом «Заменено». Так сохраняется история условий, а заказы, оформленные раньше, считаются по прежним условиям.
| Повышение комиссии, новое или снятое правило | Вступает не раньше чем через 45 дней после уведомления продавцов — форма не даст поставить более раннюю дату (Федеральный закон № 289-ФЗ «О платформенной экономике», ст. 12 ч. 1). |
|---|---|
| Снижение того же правила | Определяется автоматически и может вступить сегодня (ст. 12 ч. 3). |
| Отметка «Улучшение» | Для случаев, которые модуль не может оценить сам (например, новое правило продавца ниже общего). Ставьте, только если изменение не ухудшает условия ни для одного продавца; отметка фиксируется в журнале действий. |
| Отмена | Запланированную (ещё не вступившую) версию можно отменить — отметьте строку и нажмите красную кнопку; вступившие версии не удаляются. |
После сохранения продавцы, которых касается правило, получают уведомление в кабинете («Условия и уведомления») и по e-mail: было, станет, дата вступления, основание. Правило продавца — только ему, группы — продавцам группы, категории и общее — всем действующим продавцам.
Баланс продавцов
Раздел Маркетплейс → Баланс продавцов: по каждому продавцу — доступно к выплате, в удержании и всего; кнопка открывает журнал операций продавца. Журнал только пополняется. Внизу журнала — добавление операции с обязательным основанием:
| Корректировка | Исправление ошибки расчёта, сумма со знаком (минус — списание), действует сразу. |
|---|---|
| Выплата | Проводится в разделе «Выплаты продавцам» (кнопка «Провести выплату» над журналом и в карточке продавца — доступный остаток подставится сам). В журнале выплата видна записью «Выплата», её сторно — записью «Сторно выплаты». |
| Штраф | Мера ответственности по договору площадки: продавец сразу получает мотивированное уведомление, а штраф применяется через 3 дня (289-ФЗ, ст. 13 ч. 3). До этого его можно отменить кнопкой в строке журнала — появится обратная запись, продавец получит уведомление. Применяйте только меры, перечисленные в договоре с продавцами. |
Каждая операция уходит продавцу уведомлением и записывается в журнал действий модуля.
Выплаты продавцам
Раздел Маркетплейс → Выплаты продавцам — учёт выплат доступного остатка продавцам. Сам перевод площадка делает вне модуля (на счёт, карту, через СБП — как договорились с продавцом), а здесь фиксирует его: сумма, дата выплаты, способ и реквизиты в свободной форме, комментарий. Список выплат на table-kit: продавец, дата, сумма, способ, статус («проведена» / «сторнирована»), число закрытых заказов, источник (вручную; позже — сплит ЮKassa), кто провёл.
Провести выплату — кнопка «+» в разделе, кнопка с иконкой денег в карточке продавца и на странице его баланса. В форме продавец (с доступным остатком), сумма — по умолчанию весь доступный остаток, не больше него (кнопка со стрелкой справа от суммы возвращает доступный остаток, в том числе после ошибки формы); дата выплаты (не позже сегодня, попадает в акт); способ; реквизиты; комментарий. После проведения: в журнале баланса появляется запись «Выплата» со знаком минус (доступна сразу, то есть доступный остаток уменьшается), продавец получает уведомление в кабинет и на e-mail, действие попадает в журнал карточки продавца.
Что закрыла выплата. Карточка выплаты показывает, какие доступные суммы она закрыла: сначала отрицательные записи вне заказов (штрафы, минус-корректировки) целиком, затем части заказов и плюсовые корректировки по дате доступности — пока не набрана сумма выплаты. Так продавец и площадка видят, за какие заказы деньги уже перечислены. Часть заказа становится единицей закрытия, когда все её записи (продажа, комиссия, доставка) вышли из удержания.
Сторно. Если выплата учтена ошибочно или перевод не прошёл — в карточке выплаты кнопка «Сторнировать» с обязательной причиной. Сумма возвращается на доступный баланс отдельной записью «Сторно выплаты» (журнал не правится — только пополняется), выплата получает статус «сторнирована», закрытые ею заказы снова открыты для следующей выплаты, продавец уведомлён. Отменить сторно нельзя — при необходимости проведите выплату заново.
Заявки продавцов на выплату. Продавец указывает реквизиты в кабинете и подаёт заявку на сумму не больше доступного остатка и не меньше минимальной суммы из настроек модуля (Настройки → Минимальная сумма заявки на выплату, 0 — без ограничения). Одновременно у продавца одна заявка. Открытые заявки — в блоке «Заявки продавцов на выплату» вверху раздела, их число — в меню у пункта «Выплаты продавцам»; на каждую новую заявку приходит письмо на e-mail магазина. «Провести выплату» открывает форму, где продавец, сумма (не больше доступной сейчас) и реквизиты уже взяты из заявки; после проведения заявка закрывается этой выплатой, а в карточке выплаты в строке «Источник» указано «по заявке №…». «Отклонить» — с обязательной причиной, продавец получит уведомление и письмо. Если продавец менял реквизиты в течение 7 дней до заявки, у заявки жёлтая пометка — сверьте реквизиты с продавцом по известному вам контакту, прежде чем платить. Реквизиты продавца видны и во вкладке «Реквизиты» его карточки (только просмотр), и подставляются в форму обычной выплаты при выборе продавца.
Доступ к разделу — право extension/ocm/payout (выдаётся группе администратора при установке и при сохранении настроек модуля).
Кабинет продавца: баланс и условия
В кабинете продавца над каждой страницей — переход между разделами «Мои товары», «Мои заказы», «Доставка», «Баланс», «Условия и уведомления» (со счётчиком новых уведомлений).
Баланс — доступно к выплате, в удержании, всего; журнал операций с фильтрами и ссылками на заказы. Ниже — акт сверки взаиморасчётов за любой месяц: открывается в новой вкладке, печатается или сохраняется в PDF (стороны, сальдо на начало и конец, операции, обороты). Акт формируется по журналу в любой момент — продавцу не нужно запрашивать его у площадки (289-ФЗ, ст. 11).
Условия и уведомления — правила комиссии, которые касаются продавца: индивидуальное, категорий, его группы и общее, с периодом действия и состоянием (действует, запланировано, действовало); срок удержания и его запланированное изменение; все уведомления площадки. Открытие страницы отмечает уведомления прочитанными.
Кабинет продавца: выплаты
Реквизиты и заявка на выплату. На странице «Выплаты» продавец указывает реквизиты в свободной форме (получатель, банк, БИК, счёт или СБП/карта) и подаёт заявку: сумма по умолчанию — весь доступный остаток, можно меньше, но не меньше минимальной суммы площадки; к заявке можно добавить комментарий. Пока заявка на рассмотрении, новую подать нельзя, её можно отменить. После изменения реквизитов продавцу приходит письмо и уведомление в кабинете, а заявку можно подать только через 24 часа — защита на случай, если чужой человек получил доступ к аккаунту и подменил счёт. Таблица «Мои заявки» показывает решение: выплачена (номер выплаты), отклонена (причина) или отменена.
Раздел «Выплаты» открывается кнопкой со страницы «Баланс». Сверху — остаток к выплате (равен доступному балансу), сумма в удержании и выплачено всего. Таблица выплат: номер, дата, сумма, способ и реквизиты, какие части заказов и записи закрыты (со ссылками на свои заказы), статус; сторнированная выплата зачёркнута, рядом причина сторно.
Акт по выплатам за любой месяц (кнопки внизу страницы) или за произвольный период (поля «с» и «по», до 3 лет) открывается в новой вкладке для печати или PDF: стороны; расчёт — к выплате на начало периода, стало доступно за период, выплачено, сторно выплат, к выплате на конец; перечень выплат периода с реквизитами и колонкой «Что закрыто» (заказы, а также закрытые корректировки и штрафы — как в таблице кабинета); для незавершённого месяца под расчётом — пояснение, что расчёт сделан на конец периода и включает суммы, которые выйдут из удержания до его конца, с суммой «доступно к выплате сегодня»; условия взаиморасчётов на конец периода — срок удержания, действующие версии правил вознаграждения продавца (номер версии и дата вступления) и принятая редакция оферты. Так акт отвечает требованиям 289-ФЗ о доступности условий расчётов и их истории. Заблокированному продавцу раздел и акт остаются доступны (ст. 13 ч. 4).
Оферта площадки
Раздел Маркетплейс → Оферта площадки — договор площадки с продавцами. Каждая редакция проходит путь: черновик (правится и удаляется) → публикация с датой вступления в силу → действует → утратила силу, когда вступает следующая. Опубликованный текст изменить нельзя: чтобы поменять условия, создайте новую редакцию — текст скопируется из последней. Все опубликованные редакции с периодами действия доступны продавцам и на витрине по адресу index.php?route=extension/ocm/offer (ссылка — кнопкой в разделе).
Первый черновик заполняется шаблоном по перечню условий, обязательных для договора площадки (Федеральный закон № 289-ФЗ, ст. 5 ч. 4): требования к продавцу, порядок продажи, цены и скидки, вознаграждение, взаиморасчёты, рейтинг, меры ответственности, жалобы и споры, изменение договора. Поля в квадратных скобках «[заполните: …]» и служебный абзац нужно заполнить или удалить — с ними редакция не публикуется. Шаблон не является юридической консультацией: согласуйте текст с юристом.
| 45 дней | Изменяются меры ответственности, вознаграждение площадки или порядок его определения, условия приёмки, хранения, доставки, выдачи и возврата товара (ст. 12 ч. 1). Выбирается по умолчанию. |
|---|---|
| 15 дней | Прочие изменения (ст. 12 ч. 2). |
| Без срока | Изменение улучшает положение продавцов или приводит договор в соответствие с законом (ст. 12 ч. 3) — оценку делает площадка. Пока на площадке нет действующих продавцов, любую редакцию можно ввести сразу. |
При публикации всем действующим продавцам уходит уведомление в кабинет и на e-mail: номер редакции, дата вступления, ссылка на текст и «что изменилось». Запланированную редакцию до вступления можно отменить (кнопка в просмотре редакции) — продавцы получат уведомление, продолжит действовать текущая. В просмотре редакции на вкладке «Приняли» — кто, когда, откуда (заявка или кабинет), с какого IP и браузера; в карточке продавца — вкладка «Оферта» с его журналом принятий.
Продавец принимает редакцию в заявке или в кабинете, раздел «Условия и уведомления» → «Оферта площадки» (галочка «ознакомился и принимаю» и кнопка «Принять»). Новую редакцию можно принять заранее. Пока действующая редакция не принята, на всех страницах кабинета висит красная плашка, а товары нельзя добавлять, изменять, копировать и включать; выключить или удалить товары, работать с заказами, балансом и уведомлениями можно.
Заблокированный продавец не может работать с товарами и заказами, но, как требует закон (289-ФЗ, ст. 13 ч. 4), сохраняет доступ к оферте и уведомлениям («Условия и уведомления») и к балансу с актом сверки — ссылки на них есть на странице статуса магазина.
Оформление заказа (OCM checkout)
Встроенное оформление заказа на одной странице. Включается в настройках модуля и подменяет штатное оформление по адресу checkout/checkout — ссылки из корзины, шапки и модулей ведут туда же; при выключении магазин без переустановки возвращается к штатному пошаговому оформлению.
Страница: контакты (для гостя — ссылка на вход; галочка «Создать аккаунт» с паролем — аккаунт создаётся только по ней, гость не регистрируется автоматически; если гостевое оформление в магазине запрещено, аккаунт обязателен), адрес (при ключе DaData — строка быстрого ввода: выбранная подсказка заполняет страну, регион, город, индекс, улицу и дом; поля можно поправить), корзина группами по продавцам (товары площадки — первой группой «Товары магазина», далее продавцы по алфавиту; ссылка на состав корзины), доставка для каждой группы, оплата (штатные способы магазина, один платёж на весь заказ), комментарий, итог (штатные итоги магазина: купоны, бонусы, налоги), согласие с условиями (страница из настроек магазина) и кнопка «Подтвердить заказ».
Доставка по группам. Для части заказа продавца предлагаются его способы из кабинета (раздел «Доставка»): фиксированная цена, бесплатно от суммы его товаров в заказе, самовывоз со склада продавца (адрес склада — из карточки продавца). Для товаров площадки — штатные способы доставки магазина. Если у продавца нет включённых способов или ни один не подходит адресу, по настройке его группе тоже предлагаются штатные способы магазина. В итогах строка «Доставка» — сумма по группам; в заказе способ доставки записывается подробно: «Группа: способ; …». Выбор по группам сохраняется в подзаказах (способ, стоимость) и виден продавцу в карточке заказа и администратору в блоке «Продавцы и подзаказы». Стоимость доставки части заказа входит в выплату продавцу без комиссии — доставку выполняет он сам (запись «Доставка продавца» в журнале баланса).
Дополнительные поля. Штатные дополнительные поля покупателя (Покупатели → Дополнительные поля) показываются и на этой странице: поля расположения «Аккаунт» — в блоке контактов, «Адрес» — в блоке адреса; набор и обязательность — по группе покупателя (вошедший — его группа, гость — группа по умолчанию магазина). Поддерживаются все штатные типы: список, переключатель, флажки, текст (с проверкой регулярным выражением), многострочный текст, дата, время, дата и время (штатный календарь), файл (штатная загрузка). Проверка — как в штатном оформлении: обязательное поле без значения подсвечивается со штатной подписью обязательности («… необходим!» или «… обязательно!» — по локализации вашей сборки), текст, не прошедший проверку регулярным выражением, — с подписью «Поле «…» заполнено неверно — проверьте формат!»; заказ не создаётся; пустое необязательное поле регулярным выражением не проверяется. Значения сохраняются как штатное оформление: поля аккаунта — в заказ (в карточке заказа админки — вкладка «История заказа → Дополнительно», как у штатного оформления), поля адреса — в платёжный адрес и адрес доставки заказа; при галочке «Создать аккаунт» — в профиль нового покупателя и его адрес; у вошедшего покупателя поля подставляются из профиля и адреса по умолчанию, изменённые на странице значения уходят в заказ, а профиль не меняется.
Проверка состава корзины. Товары на модерации и товары неактивных (заблокированных, отклонённых) продавцов, добавленные в корзину раньше, со страницы оформления убираются с предупреждением — заказать их нельзя.
Создание заказа и оплата. Заказ создаётся только по кнопке «Подтвердить заказ» (штатное оформление создаёт заказ при каждом показе шага подтверждения). После проверки полей заказ получает статус «0» и страница показывает вывод платёжного модуля — как штатный шаг подтверждения; при включённом «Автопереходе к оплате» кнопка платёжного модуля нажимается сама, и покупатель сразу попадает к оплате или на страницу «Заказ сформирован». Ссылка «Изменить данные заказа» возвращает к форме; повторное подтверждение в той же сессии обновляет тот же заказ, а не создаёт новый. Платёжные модули работают без изменений: банковский перевод, наложенный платёж, тестовые и онлайн-модули получают session['order_id'] и свой стандартный вывод.
Налог на доставку. Способы продавца — без налога; штатные способы магазина — с классом налога из их настроек. Если у выбранных способов разные классы (например, самовывоз продавца и штатный «Фиксированная ставка» с НДС), строка «Доставка» в итогах — сумма без налога, а налог каждой части считается по её классу и попадает в строки «Налог» заказа; у способов цены показаны так, как настроено в магазине («показывать цены с налогом»). При одном классе налог начисляет штатный итог «Доставка», как в обычном оформлении. Продавцу в выплату идёт стоимость его доставки без налога.
Ограничения. Штатные способы доставки считают стоимость по всей корзине, а не по группе (ограничение библиотеки корзины OpenCart); службы доставки с адресом отправки продавца (СДЭК и др.) — отдельный модуль OCM (в планах). Оформление работает только на штатной теме.
Кабинет продавца: доставка
Раздел «Доставка» в кабинете продавца — его способы доставки для OCM checkout. Список на table-kit; у каждого способа: название и пояснение по языкам, тип (фиксированная цена / бесплатно от суммы / самовывоз со склада), цена, порог бесплатной доставки, регионы (геозона магазина или «все регионы»), срок, порядок, статус; кнопки «Изменить», включить/выключить, «Удалить» (со встроенным подтверждением). Чужой способ по подстановке method_id — «Нет доступа». Пока у продавца нет включённых способов, его части заказа предлагаются штатные способы магазина (если это разрешено в настройках модуля). Адрес склада для самовывоза берётся из карточки продавца — его заполняет администратор площадки.
В админке. Карточка продавца → вкладка «Склад отправки» → таблица «Способы доставки продавца» с ID. Кнопка «Добавить способ доставки» и кнопки / в строках открывают ту же форму, что у продавца (название и пояснение по языкам, тип, цена, порог бесплатной доставки, регионы, срок, порядок, статус), и удаляют способ после подтверждения — например, чтобы завести доставку новому продавцу или поправить ошибку в цене. Продавец сразу видит изменение в разделе «Доставка»; в журнал карточки действие записывается от администратора. Кнопки видны пользователям с правом изменения раздела «Продавцы».
Оплата ЮKassa
В пакет входит платёжный модуль «ЮKassa (OCM Маркетплейс)» — Расширения → Оплата. Он работает без официального модуля ЮKassa и без правок ядра: прямые запросы к API ЮKassa. Режим «площадка-агент»: один платёж на магазин площадки (ваш shopId), покупатель оплачивает заказ на странице ЮKassa (карта, СБП, SberPay — по настройкам вашего магазина в ЮKassa) и возвращается на сайт.
Настройка. Установите модуль, введите shopId и секретный ключ из личного кабинета ЮKassa (Интеграция → Ключи API), нажмите «Проверить подключение» — модуль покажет статус магазина, тестовый ли он и включены ли чеки через ЮKassa. Для тестового магазина используйте его shopId и ключ и включите «Тестовый режим» (подсказка покупателю о тестовой карте; тестовые карты — в документации ЮKassa, раздел «Тестирование»: например, 5555 5555 5555 4444 — успешная оплата, 5555 5555 5555 4600 — отказ «недостаточно средств», срок и CVC любые). Сохранённый ключ в форме не показывается; чтобы оставить его без изменений, поле не заполняйте. Укажите адрес уведомлений (показан на странице настроек) в кабинете ЮKassa: Интеграция → HTTP-уведомления, события payment.succeeded, payment.waiting_for_capture, payment.canceled, refund.succeeded. ЮKassa отправляет уведомления только на HTTPS; без них статус платежа обновляется при возврате покупателя на сайт и кнопкой «Обновить статус» в заказе.
Статусы заказа. «Статус при создании платежа» по умолчанию «не менять»: заказ остаётся без статуса (в списке «потерянных»), пока покупатель не оплатит, как у штатных модулей. Если задать статус, подзаказы продавцов появятся уже при создании платежа и продавцы получат уведомления до оплаты. Отдельно задаются статусы при холде, после оплаты, при отмене платежа и при полном возврате. Все переходы выполняются штатной историей заказа — подзаказы, баланс и письма работают как при любой оплате.
Холдирование. При включённом холде деньги замораживаются на карте покупателя, а списание выполняет администратор в карточке заказа — панель «Платёж ЮKassa» рядом с блоком «Продавцы и подзаказы»: «Подтвердить (списать)» или «Отменить холд» (по правилам ЮKassa холд действует ограниченное время, обычно до 7 дней). Холд подтверждается целиком; частичное списание — после режима «сплит».
Возвраты. В той же панели — возврат всей доступной суммы или части заказа по продавцу (сумма товаров и доставки его части подставляется автоматически, её можно изменить) с комментарием. Возврат попадает в историю подзаказа (виден продавцу); полный возврат переводит заказ в статус «при полном возврате». Сторно начислений продавцу делается штатно — сменой статуса подзаказа или заказа (отмена/возврат).
Чеки 54-ФЗ (вкладка «Чеки 54-ФЗ»). Три режима: без чеков (кассы нет или чеки формирует другая система); чек в запросе платежа — объект чека передаётся вместе с платежом и возвратом (подходит для «Чеков от ЮKassa» и касс в режиме «платёж и чек одновременно»; все позиции обычные); сначала платёж, потом чек — отдельный чек после успешной оплаты и после возврата через вашу онлайн-кассу с ФФД 1.1+ — только в этом режиме API ЮKassa принимает агентские позиции: для товаров и доставки продавцов в чек передаются тип агента и поставщик (наименование, ИНН и телефон из карточки продавца; ставка НДС — тоже из карточки). Товары площадки — обычные позиции с НДС по умолчанию или по соответствию классов налога магазина. Если у продавца нет ИНН (10/12 цифр), его позиции передаются как обычные. Вознаграждение площадки по умолчанию в чек не выделяется (покупатель платит продавцу полную цену, вознаграждение — расчёт между площадкой и продавцом); переключатель «отдельной позицией» уменьшает агентские позиции на комиссию и добавляет позицию agent_commission. Сумма позиций всегда равна сумме платежа: налог доставки и скидки распределяются по позициям. Состояние чека показано в панели платежа; при ошибке регистрации есть кнопка «Отправить чек повторно».
Покупателю. После подтверждения заказа появляется кнопка «Перейти к оплате» (при автопереходе нажимается сама), покупатель оплачивает на странице ЮKassa и возвращается: оплаченный заказ — страница «Ваш заказ сформирован»; неоплаченный или отклонённый — страница «Оплата не завершена» с причиной (если ЮKassa уже отменила платёж и сообщила её; пока покупатель может попробовать другую карту, платёж остаётся «ожидает оплаты» и причина не показывается) и кнопкой «Повторить оплату».
Журнал. Вкладка «Журнал» — последние запросы к API и уведомления ЮKassa (ключи не записываются); помогает разобрать отказ платежа или чека. Шаг 2 этапа — режим «сплит» (поле «shopId продавца в ЮKassa» в карточке продавца уже есть, логика переводов — после договора площадки с ЮKassa).
Обновление и удаление
Обновление — установка нового архива поверх старого, затем «Сохранить» на странице настроек модуля: события и права новой версии зарегистрируются, ЧПУ каталога обновится. Если в блоке «Состояние» остаются недостающие таблицы или колонки — ещё раз «Сохранить»: миграция идёт по наличию таблиц и колонок, существующие данные не меняются.
Полное удаление файлов — Расширения → Установка расширений → «Удалить» у архива модуля (после «Удалить» в списке модулей).
Решение проблем
| Товар на модерации виден на витрине | Проверьте, что статус модуля «Включено» и в блоке «Состояние» событие витрины включено. Если событие отсутствует — переустановите модуль. |
|---|---|
| У заказа нет блока «Продавцы и подзаказы» | В заказе нет товаров продавцов, либо заказ оформлен до установки модуля, либо у пользователя нет права доступа к extension/ocm/suborder. Для заказа, ещё не получившего статус, блок сообщает, что подзаказы появятся позже. |
| «Правила комиссии» или «Баланс» показывают ошибку базы данных | После обновления модуля нажмите «Сохранить» в его настройках: добавятся новые таблицы и колонки (в блоке «Состояние» всё должно стать зелёным), комиссии перенесутся в правила. |
| Нельзя поставить дату вступления раньше чем через 45 дней | Изменение не снижает комиссию того же правила — по закону продавцов нужно уведомить заранее. Если изменение действительно не ухудшает условия, отметьте «Улучшение». |
| В списке заказов нет колонки или фильтра «Продавцы» | Нажмите «Сохранить» в настройках модуля — зарегистрируются события списка заказов (в «Состоянии» — строки admin/view/sale/order_list/… и admin/model/sale/order/…). Колонка видна пользователям с правом доступа к extension/ocm/suborder. |
| Продавец не может добавить или изменить товар | Действует редакция оферты, которую он ещё не принял: в кабинете — красная плашка со ссылкой на принятие. Проверить можно на вкладке «Оферта» карточки продавца. |
| Оферта не публикуется: «незаполненные поля» | В тексте на каком-то языке остались фрагменты «[заполните…]» или «[fill in…]» из шаблона — заполните или удалите их на всех вкладках языков. |
| Подзаказы не создаются | Сохраните настройки модуля: при сохранении регистрируются события заказа (в блоке «Состояние» — строки catalog/model/checkout/order/…). |
| Включил OCM checkout, но открывается штатное оформление | Нажмите «Сохранить» в настройках модуля: при сохранении создаются таблицы оформления и регистрируется событие подмены маршрута checkout/checkout. Проверьте в блоке «Состояние», что событие ocm_marketplace_checkout включено. Кеш темы (Twig) после обновления файлов — очистить. |
| У части заказа продавца нет способов доставки | Продавец не добавил включённые способы в разделе «Доставка» кабинета или их геозона не включает адрес покупателя, а «Штатные способы доставки для продавца без своих» выключены. Включите эту настройку либо попросите продавца добавить способ «для всех регионов». |
| После «Подтвердить заказ» ничего не происходит или появляется окно с ошибкой | Платёжный модуль получил не-JSON ответ: чаще всего из-за предупреждений PHP в выводе (например, письмо о заказе без почтового сервера). Выключите показ ошибок в настройках магазина («Система → Настройки → Сервер → Показывать ошибки») — они останутся в журнале. Для модулей со своей формой оплаты выключите «Автопереход к оплате». |
| Раздел «Выплаты продавцам» пишет, что таблицы не созданы, или пункта нет в меню | Нажмите «Сохранить» в настройках модуля: создадутся таблицы выплат и группа администратора получит право extension/ocm/payout. Пункт меню виден только пользователям с этим правом. |
| В акте по выплатам «к выплате на конец периода» больше, чем остаток в кабинете | Акт за текущий месяц считается на его последний день и включает суммы, которые выйдут из удержания до конца месяца; остаток в кабинете — доступное сегодня. Под расчётом акта есть пояснение с суммой «доступно к выплате сегодня». |
| Сумма выплаты «больше доступного баланса» | Доступный остаток считается на момент проведения: часть сумм ещё в удержании (срок в настройках «Заказы и комиссия») или уже закрыта предыдущей выплатой. Откройте журнал баланса продавца — колонка «Доступно с». |
| Список товаров выглядит штатно (панель фильтра справа, нет колонки «Продавец») | Нажмите «Сохранить» в настройках модуля — события списка товаров (ocm_marketplace_admin_product_*) зарегистрируются заново; таблицу маркетплейса видят только пользователи с правом на раздел «Модерация товаров». Если шаблон списка изменён другим расширением (OCMOD по product_list.twig), модуль оставляет его как есть. |
| Фильтр по числу в списке товаров подсвечен красным | Условие не разобрано: допустимы 5, >5, >=5, <5, <=5, !=5 и диапазон 5-10. Пока условие не разобрано, столбец не фильтруется. |
| Дополнительные поля не показываются в OCM checkout | Поле выключено, не назначено группе покупателя (для гостя — группе по умолчанию магазина) или имеет расположение «Партнёр». Проверьте в Покупатели → Дополнительные поля. |
| Подсказки адреса не появляются | Проверьте ключ API DaData в настройках и ограничения ключа по доменам в кабинете dadata.ru; подсказки запрашиваются из браузера покупателя после трёх введённых символов. |
| Способ «ЮKassa» не показывается при оформлении | Проверьте в настройках модуля оплаты: статус «Включено», введены shopId и ключ, в магазине есть валюта RUB, сумма заказа не ниже минимальной, геозона включает адрес покупателя. |
| Панели «Платёж ЮKassa» нет в карточке заказа | Заказ оплачивался не через модуль, либо платёж не был создан (покупатель не дошёл до кнопки оплаты), либо после обновления не сохранены настройки модуля оплаты (событие admin/view/sale/order_info/after регистрируется при сохранении и установке). Таблицы платежей создаются при сохранении настроек «OCM Маркетплейса» или модуля оплаты. |
| Покупатель оплатил, а заказ без статуса | Уведомление ЮKassa не дошло (адрес не указан в кабинете ЮKassa, сайт без HTTPS, IP-проверка) и покупатель не вернулся на сайт. Откройте заказ и нажмите «Обновить статус» в панели платежа — статус запросится из ЮKassa и применится штатной историей заказа. |
| Чек не зарегистрирован, в панели «ошибка чека» | Текст ошибки — из ответа ЮKassa (вкладка «Журнал»): чаще всего в режиме «сначала платёж, потом чек» касса не поддерживает агентские поля (нужна ФФД 1.1+) или у продавца неверный ИНН/телефон, либо в кабинете ЮKassa не включена отправка чеков. Исправьте настройки и нажмите «Отправить чек повторно». |
| В блоке «Состояние» таблицы или права показаны красным | Нажмите «Удалить» и затем «Установить» в списке модулей: недостающие таблицы, колонки и права добавятся, существующие данные сохранятся. |