Skip to content
msReviews
msReviews
Отзывы, рейтинг, Q&A и JSON-LD для MiniShop3
  • MODX 3
  • PHP 8.2
  • miniShop3
  • Vue 3
  1. Extras
  2. msReviews
  3. Для разработчика

AJAX API (connector) ​

Базовый URL:

fenom
{$_modx->getOption('assets_url')}components/msreviews/connector.php
modx
[[++assets_url]]components/msreviews/connector.php

Сниппетов витрины достаточно. Коннектор — для своего JS, cron и CMP.

Запрос: POST с полем action. Ответ JSON: success, message, data, errors.

Публичные действия ​

actionНазначениеОсновные параметры
review/createСоздание отзываdata[...]
review/listСписок + summaryproduct_id, offset, limit. Фильтры: verified_only, with_media, with_reply, recommend_only. Параметра сортировки нет
review/vote«Полезно»review_id или id
review/update_ownПравка своегоid, edit_token, data
review/delete_ownСвой отзыв в статус archivedid, edit_token
rating/getАгрегат по товаруproduct_id
question/createВопросdata[...]
qna/listСписок Q&Aproduct_id, offset, limit, faq_only
media/uploadЗагрузка файлаfile, review_id, edit_token, type (по умолчанию image)
request/processCron очереди писемkey или k = msreviews_cron_key

request/process ​

Ключ только в теле POST (key или k). Пустой ключ в настройке, неверный ключ и ключ только в URL дают 403 и msr_err_forbidden.

Успех: data.sent (батч до 20) и data.rate_limit_purged. Перед письмами удаляются строки rate limit старше msreviews_rate_limit_retention_days.

Пример cron:

text
POST assets/components/msreviews/connector.php
action=request/process&key=ВАШ_КЛЮЧ

review/create ​

В data обязательны product_id, rating (1–5), author_name, author_email, text (от 3 символов), consent. Ошибки: msr_err_product, msr_err_rating, msr_err_author, msr_err_text, msr_err_consent. Verified на витрине: data[order_token] или data[token].

question/create ​

Поля: product_id, author_name, author_email, text (от 3 символов), consent. Пустые имя, email или короткий текст дают msr_err_question. Нет согласия: msr_err_consent. Поле notify необязательно. В чанках согласие называется data[consent].

qna/list ​

С faq_only сначала берёт страницу без фильтра, затем оставляет строки с ответом. limit относится к полному списку, total не пересчитывается. Пагинацию FAQ делает сниппет msQuestions: там фильтр в SQL.

review/vote ​

Повтор с того же fingerprint отвечает 200 и already_voted: true. Нет отзыва: 404 msr_err_nf.

Действия менеджера (mgr) ​

Требуются сессия менеджера и права компонента. Mutating mgr/* — только POST (иначе 405).

actionНазначениеПраво
mgr/review/listСписок для модерацииreview_view
mgr/review/createРучное создание отзываreview_moderate
mgr/review/updateРучное редактирование (можно сменить product_id)review_moderate
mgr/review/getПревью одного отзываreview_view
mgr/review/update-statusСтатусreview_moderate
mgr/review/set-replyОтвет магазинаreview_reply
mgr/review/set-pinnedЗакрепreview_moderate
mgr/review/bulkМассовая сменаreview_moderate
mgr/review/moderation-logЖурналreview_view или review_moderate
mgr/question/listСписок вопросовquestion_moderate
mgr/question/createРучное создание вопроса в CMPquestion_moderate
mgr/question/updateРедактирование вопроса в CMPquestion_moderate
mgr/question/getОдин вопрос для формы CMP (с answer_text)question_moderate
mgr/question/update-statusСтатус вопросаquestion_moderate
mgr/question/set-pinnedЗакреп вопросаquestion_moderate
mgr/answer/createОтвет на вопросquestion_moderate
mgr/dashboard/summaryСводка дашбордаreview_analytics
mgr/analytics/summaryРасширенная аналитикаreview_analytics
mgr/export/reviewsCSV отзывовreview_export
mgr/export/questionsCSV вопросовreview_export
mgr/export/request_queueCSV очереди писемreview_export
mgr/import/reviewsИмпорт отзывов CSVreview_import
mgr/import/questionsИмпорт вопросов CSV (с 1.2.4)review_import
mgr/media/listСписок медиаreview_view
mgr/media/uploadЗагрузка медиа в CMPreview_moderate
mgr/media/deleteУдалить медиаreview_moderate
mgr/review/product-summaryСводка для вкладки «Отзывы» на ресурсеreview_view
mgr/request_queue/listСписок очереди писемreview_export
mgr/queue/processОчередь из mgrqueue_process
mgr/catalog/searchПоиск папок, товаров или ресурсовreview_analytics или question_moderate
mgr/catalog/resolveПодписи по IDreview_analytics или question_moderate

Права: Права доступа.

mgr/review/create и update ​

ПолеУсловие
product_idлюбой неудалённый site_content, не только msProduct
rating1–5
title, text, author_name, author_email, status
is_verified0/1
idобязателен у update
shop_replyопционально, право review_reply

Смена product_id пересчитывает агрегаты старого и нового ресурса.

mgr/question ​

mgr/question/create / update (только POST).

ПолеУсловие
product_idлюбой неудалённый site_content
text, author_name, author_email
statusиз поля формы перезаписывает автопубликацию ответа
notify0/1
answer_textопционально
idобязателен у update

Ответ пишет AnswerService (уведомление автора). mgr/answer/create остаётся в API и публикует вопрос. Из списка вопросов CMP его не вызывают с 1.2.4. mgr/question/get: id.

mgr/import/questions ​

Только POST, с 1.2.4. CSV-колонки: product_id, text, status и author_email или author_name. Опционально answer_text, notify, pinned.

mgr/catalog ​

mgr/catalog/search и mgr/catalog/resolve читают параметры только из тела POST. GET не даёт 405: ответ 200 и пустой items, потому что type пустой.

ПараметрПравило
typeparent, product или resource
qдо 80 символов
limitот 1 до 100, по умолчанию 50
idsу resolve, вместе с тем же type

product ищет только msreviews_product_class_key. resource ищет любой неудалённый site_content (форма и фильтр отзывов и вопросов в CMP). Ответ data.items: { id, label }[]. Право: review_analytics или question_moderate.

Формат ответа ​

json
{
  "success": true,
  "message": "...",
  "data": {},
  "errors": []
}

HTTP-коды ​

HTTPКлюч messageСитуация
401msr_err_unauthorizedmgr/* без входа
403msr_err_forbiddenНет прав mgr, либо ключ cron пустой, неверный или передан только в URL
405msr_err_method_not_allowedMutating не через POST
400msr_err_*Обычная проверка полей
404msr_err_unknown_actionНеизвестный action
404msr_err_nfНет отзыва при голосе
500msr_err_dbОшибка БД

Коды сообщений: События MODX.

См. также ​