Более 200 модулей для CS-Cart по единой подписке за 3 000 ₽ в месяц

Регистрация вендора через соц. сети

Модуль позволяет регистрироваться вендорам через социальные сети
Укажите домен без http и слешей. Пример: domain.com
По подписке
Последняя версия модуля Обновлено:
Есть вопросы по модулю? Напиши нам: HelpDesk Bot
Модуль позволяет регистрироваться вендорам через социальные сети
Продукт:
  • Multi-Vendor
  • Multi-Vendor Plus
  • Multi-Vendor Ultimate
Назначение:
  • Вендорам
Архитектура
:
  • Backend
  • Frontend
Локализации:
  • English
  • Русский
Совместимость:
  • 4.21.X
  • 4.20.X
  • 4.19.X
  • 4.18.X
  • 4.17.X
  • 4.16.X

Инструкция к модулю Регистрация продавца через социальные сети

Что делает модуль

Модуль связывает создание пользователя через социальную сеть с созданием компании продавца. Он использует провайдеров штатного модуля социальной авторизации hybrid_auth. Кроме этого, модуль предоставляет операции регистрации, входа, смены и восстановления пароля для внешнего приложения и расширяет API компаний сущностью ms_companies.

Социальный вход на витрине и регистрация через API — разные сценарии. При создании пользователя через социальную сеть модуль задаёт компании активный статус и тип пользователя «Продавец». При API-регистрации учитываются разрешение подавать заявки продавцов и двухэтапное одобрение в настройках маркетплейса.

Где находится модуль

  • В карточке «Регистрация вендора через соц. сети» вкладка «Общие» содержит блок «АПИ сущность ms_companies» с тремя настройками.
  • Вкладка «Информация» содержит справку «Расширение методов АПИ» и «Регистрация и авторизация по АПИ». Вкладка «Инструкция» показывает это руководство.
  • Провайдеры и их доступность на витрине настраиваются в штатном модуле социальной авторизации, а не в этих трёх полях.
  • Связанные экраны админки — поля профиля продавца, список фильтров товаров, список и карточки продавцов, учётные записи их администраторов. Они нужны для сопоставления полей и проверки созданной компании.
  • На витрине точка входа — форма авторизации с кнопками социальных провайдеров.

Что подготовить перед настройкой

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

Для регистрации через API проверьте общие настройки продавцов: разрешение подавать заявки на получение статуса продавца (apply_for_vendor) и двухэтапное одобрение (allow_approve_vendors_in_two_steps). Без первого разрешения API-регистрация возвращает отказ в доступе. При двухэтапном одобрении модуль не переводит новую компанию автоматически в активное состояние.

Расширенные сценарии зависят от окружения проекта. Поиск исполнителей использует активный модуль ms_tasks_and_services. Детальная выдача компаний обращается к признаку услуги ms_task_or_service, а регистрация и авторизация — к полям интеграции Rocket.Chat. В собственном addon.xml эти зависимости не объявлены. До подключения внешнего приложения интегратору следует проверить наличие соответствующих расширений и данных; работа на чистой сборке CS-Cart без них не подтверждена кодом модуля.

Как настроить поля и фильтр

На вкладке «Общие» все три настройки — выпадающие списки. Они выбирают уже существующие поля и фильтры, а не создают новые.

НастройкаЧто выбратьКак влияет на работу
Стать исполнителемПоле профиля продавца, в котором хранится признак исполнителя. Для сценария «да/нет» значения должны соответствовать Y и N.API принимает параметр executor и записывает его в выбранное поле. При получении отдельной компании непустое значение этого поля возвращается как fields.executor. Это сопоставление поля, а не переключатель статуса компании.
О себеПоле профиля продавца для текста о себе. Выбирайте отдельное текстовое поле, не то же самое, что для признака исполнителя.Непустой параметр about_me записывается в выбранное поле. В детальном ответе непустое значение возвращается как fields.about_me.
Ставка в часСуществующий фильтр товаров, предназначенный в проекте для ставки исполнителя.Фильтр применяется при запросе исполнителей с границами ставки. Здесь выбирают фильтр, а не вводят сумму ставки и не задают валюту.
  1. Проверьте в полях профиля продавца наличие полей для признака исполнителя и текста о себе. Списки модуля показывают названия полей профиля продавца; поля другого типа профиля могут не попасть в выбор.
  2. Выберите соответствующие поля в «Стать исполнителем» и «О себе».
  3. Если приложение использует подбор исполнителей по ставке, выберите соответствующий фильтр в «Ставка в час».
  4. Сохраните настройки карточки. На тестовом продавце заполните выбранные поля и проверьте детальную выдачу API.

Пустой пункт означает отсутствие сопоставления: соответствующее удобное имя поля API не будет связано с полем профиля, а пустой фильтр ставки не ограничит выборку по сумме. Выбор полей сам по себе не заполняет данные продавцов. Пустое значение about_me кодом не переносится в выбранное поле, поэтому очистку этого поля нельзя считать поддержанной через данный сокращённый параметр.

Как проходит регистрация через социальную сеть

  1. Посетитель открывает форму входа на витрине и выбирает доступную кнопку социальной сети.
  2. Проходит авторизацию у провайдера и возвращается на сайт.
  3. При создании нового пользователя модуль создаёт компанию. Если название компании не передано, в качестве названия используется email.
  4. Компании задаётся активный статус; учётная запись связывается с ней как продавец. При последующем обновлении OAuth-профиля связанный пользователь отмечается как основной администратор продавца.

Это поведение относится к созданию пользователя средствами социальной авторизации. Модуль не содержит отдельного сценария массового превращения существующих покупателей в продавцов. Проверяйте новый социальный аккаунт и повторный вход отдельно. В шаблоне кнопок адрес возврата задан на главную страницу витрины: автоматический переход в панель продавца не предусмотрен этим шаблоном.

Регистрация, вход и пароль через API

Операции этого раздела обращаются к /index.php витрины и передают параметр dispatch. Это не адреса внутри /api/ms_companies. Для интеграции используйте HTTPS и POST с параметрами формы: контроллер читает параметры запроса, но не разбирает произвольное JSON-тело самостоятельно. Учётные данные задавайте через защищённую настройку HTTP Basic Auth клиента, а не через URL.

Операция и dispatchВходные данныеРезультат и особенности
Регистрация
ms_vendor_reg_social.vendor_registration
Email в имени пользователя Basic Auth; пароль можно передать во втором поле Basic Auth.Создаёт компанию с названием по email и связанную учётную запись. Начальный статус — новая учётная запись; при выключенном двухэтапном одобрении компания переводится в активный статус. Успех: status: 200 и api_token.
Вход
ms_vendor_reg_social.authorize
Email и действующий пароль в Basic Auth. API-ключ вместо пароля для этой операции не принимается.Проверяет пароль существующего пользователя и выдаёт новый api_token. Каждый успешный вход обновляет API-ключ пользователя; сохранённый ранее ключ может перестать работать.
Смена пароля
ms_vendor_reg_social.change_password
Email и действующий пароль либо API-ключ в Basic Auth; новый пароль в поле тела запроса new_password.Успех: status: 200 и password_updated с результатом обновления пользователя. Затем проверьте вход новым паролем.
Восстановление пароля
ms_vendor_reg_social.recover_password
Email в Basic Auth. Если второе поле заполнено, оно должно содержать действующий пароль либо API-ключ.Запускает штатное восстановление пароля с уведомлением. Ответ содержит status: 200 и password_updated; несмотря на имя поля, это не новый пароль. Проверьте доставку письма.

Регистрация с уже существующим email пользователя перенаправляет запрос на авторизацию, а не создаёт ещё одного продавца. Клиент должен обработать перенаправление и повторить вход на доверенный адрес сайта. Если имя компании по этому email уже занято, но пользователя нет, возвращается ошибка «Такой продавец уже существует».

Справка во вкладке «Информация» описывает регистрацию без пароля и отправку пароля по email. В этом сценарии создание данных и уведомления делегированы CS-Cart: обязательно проверьте итоговую учётную запись и письмо на вашей сборке, не считайте одну отправку email гарантией завершённой регистрации.

При регистрации и входе также возвращаются rocket_chat_user_id и rocket_chat_auth_token, прочитанные из компании. Значения могут быть пустыми; сам ответ не означает создание нового пользователя Rocket.Chat. Полученные ключи храните в защищённом хранилище приложения.

Проверяйте поле status в JSON, а не только HTTP-код. Эти операции выводят JSON с собственным status; код контроллера не устанавливает соответствующий HTTP-статус явно. При ошибке ответ содержит error_message.

Данные компаний через ms_companies

Для запросов к /api/ms_companies используйте учётную запись с доступом к API и необходимые права CS-Cart. Административные операции связаны с правами просмотра и управления продавцами; для клиентского API объявлены отдельные права view_ms_companies и manage_ms_companies. Получение ключа само по себе не гарантирует доступ ко всем операциям.

  • GET /api/ms_companies — список компаний. В ответе список находится в mscompanies, параметры выборки — в params. Для постраничной выдачи используйте items_per_page и page.
  • GET /api/ms_companies/{company_id} — данные одной компании, её logos, ссылка profile_link и categories по активным товарам-услугам. Сопоставленные непустые поля возвращаются внутри fields.
  • GET /api/ms_companies?get_current=Y — компания текущей API-учётной записи. У пользователя должна быть привязка к компании: без неё код может перейти к выдаче списка, а не вернуть собственную карточку.

Сущность предназначена в том числе для просмотра других продавцов. Для изменения данных действует отдельная проверка: учётная запись с привязкой к компании не должна изменять чужую компанию.

POST /api/ms_companies создаёт компанию при наличии прав управления продавцами. Обязательны company и email. Параметр create_vendor_admin=Y или is_create_vendor_admin=Y запрашивает создание администратора; notify_vendor_admin=Y — уведомление при его создании. Если email администратора занят, компания может быть создана, а в ответе появится message о том, что администратор не создан. Проверяйте обе сущности.

PUT /api/ms_companies/{company_id} изменяет данные компании. Для сопоставленных полей используйте executor со значением Y или N и непустой текст about_me. Пример тела без учётных данных:

{
  "status": "A",
  "executor": "Y",
  "about_me": "Консультации по настройке магазина"
}

Передавайте status явно при обновлении. Если статус отсутствует или не входит в допустимые статусы CS-Cart, модуль подставляет активный статус. В примере A выбран намеренно для активной компании; для другой компании передавайте её нужный допустимый статус.

Параметр profile_picture принимает изображение в формате Data URI с Base64 и разрешённым расширением. При успешной обработке оно заменяет логотип компании для темы. Если передать параметр пустым, существующее изображение удаляется; если изображение менять не нужно, не передавайте этот параметр. Перед заменой сохраните исходный логотип, после запроса проверьте результат на витрине: наличие company_id в ответе не подтверждает успешную обработку изображения.

Поиск исполнителей и фильтрация ставки

Добавьте get_performers=Y к запросу списка. Этот режим работает только при активном ms_tasks_and_services и наличии его функции получения исполнителей. Иначе модуль возвращается к обычному списку компаний: результат нельзя считать отфильтрованным списком исполнителей.

GET /api/ms_companies?get_performers=Y&min_rate=100&max_rate=2000&currency=RUB
  • min_rate — нижняя граница ставки; при отсутствии используется 0.
  • max_rate — верхняя граница. Если диапазон применяется и верхняя граница не задана либо равна 0, используется максимальная ставка среди активных компаний.
  • currency — валюта диапазона; при отсутствии используется основная валюта магазина.
  • Диапазон применяется только при выбранном фильтре «Ставка в час» и хотя бы одной ненулевой границе. Без обеих границ дополнительного ограничения ставки не будет.
  • category_id, cid или parent_cid — категория поиска, в таком порядке приоритета. Без них используется категория услуг из связанного модуля, а при её отсутствии — 0.

Как проверить работу

  1. Возьмите отдельный тестовый социальный аккаунт, для которого ещё нет пользователя магазина. На витрине убедитесь, что отображаются кнопки только активных провайдеров, и пройдите вход.
  2. В админке найдите созданного продавца: проверьте название, email, активный статус, связь пользователя с компанией и роль администратора. Повторите вход и проверьте, что используете ту же учётную запись.
  3. Для API-сценария зарегистрируйте другой тестовый email. Сверьте фактический статус компании с настройкой двухэтапного одобрения; проверьте JSON-ответ и письма.
  4. Выполните авторизацию паролем, сохраните новый API-ключ и получите собственную компанию через get_current=Y. Сверьте идентификатор с карточкой продавца.
  5. Заполните «Стать исполнителем» и «О себе», проверьте fields.executor и fields.about_me в детальном ответе. Измените их через API и перечитайте карточку.
  6. При использовании исполнителей сравните обычную выборку с get_performers=Y, затем проверьте категорию и диапазон на продавцах с известными ставками.
  7. На тестовой учётной записи проверьте смену пароля, вход новым паролем и доставку письма восстановления. Если приложение меняет изображение, отдельно проверьте логотип на витрине.

Если результат отличается от ожидаемого

  • Нет кнопок социальной сети: проверьте активность провайдера, его настройку и использование штатного блока hybrid_auth в текущей теме.
  • Отказ в доступе при регистрации: проверьте разрешение заявок продавцов. Для отказа на /api/ms_companies проверяйте API-доступ и права учётной записи отдельно.
  • «Email пуст» или отсутствуют email/пароль: проверьте заполнение Basic Auth и передачу заголовка авторизации веб-сервером. При смене пароля сообщение «Email пуст» также может означать отсутствие нового пароля или второго поля Basic Auth.
  • Неверный пароль или пользователь не найден: проверьте email и пароль; для обычного входа API-ключ не заменяет пароль. После повторной авторизации обновите сохранённый ключ приложения.
  • Нет executor/about_me: проверьте сопоставление полей, их заполнение и запрос отдельной компании, а не списка.
  • Не работает фильтрация: проверьте связанный модуль, выбранный фильтр ставки, реальные ставки и категорию услуг.
  • Ошибка создания, обновления или SQL вместо JSON: сверяйте текст ошибки и серверный журнал с интегратором, особенно наличие данных Rocket.Chat и расширения задач/услуг. Не считайте регистрацию успешной до проверки компании и пользователя.

Вход через API по вычисляемому хешу email больше не поддерживается. Для операции authorize используйте действующий пароль; прохождение социальной авторизации на витрине не заменяет проверку пароля в этой операции.

История изменений

v1.0.4 от 14.09.2026

[+] Добавлено:.

[+] Добавлена фильтрация компаний по исполнителям, ставке в час и категориям.

[+] Добавлена авторизация пользователя через API по проверочному хешу социальной регистрации. Впоследствии этот механизм удалён; см. исправление ниже.

[*] При повторной регистрации существующего email запрос перенаправляется на авторизацию.

[*] Обновлён шаблон модуля и комплект документации.

[!] Исправлено:.

[-] Удалён небезопасный вход по предсказуемому хешу email.

[*] Восстановление пароля больше не создаёт авторизованную сессию до проверки данных.

[-] Ограничено разрешение удаления пользователя только сценарием регистрации продавца.

v1.0.3 от 2023-09-12

[+] Добавлено:.

[+] Добавлена API-сущность ms_companies для получения информации о компаниях из учётных записей других компаний.

v1.0.2 от 2023-05-23

[+] Добавлено:.

[+] Добавлена регистрация и авторизация через API.

[*] Короткие PHP-теги заменены на полные.

v1.0.1 от 2023-06-24

[-] Удалён лишний архив модуля.

v1.0.0 от 2023-06-24

[+] Добавлено:.

[+] Первое издание.

Обозначения:

[+] Добавлено

[-] Удалено

[*] Изменено

[!] Исправлена ошибка

Отзывы

Здесь можно поделиться своим мнением и оценить нашу работу.

Ваши отзывы помогают нам стать лучше и предлагать вам еще более качественный сервис.

Похожие модули