rp-reviews
Назначение
Система отзывов магазина в трёх таблицах, каждая из которых отвечает на свой вопрос.
— что сказал клиент, что магазин ответил и опубликован ли отзывreviews
на сайте. Здесь происходит модерация: отзыв, пришедший извне, появляется со
статусоми виден только в консоли, пока кто-нибудь его не опубликует.pending— одна персональная одноразовая ссылка на заказ и то, что сreview_invites
ней произошло: отправлена, открыта, на неё ответили или срок её действия истёк.
Это воронка, которую отслеживает магазин.— одна строка JSON: внешние платформы, порог, шаблоныreview_settings
писем, задержки и разрешённое количество напоминаний.
Граница ответственности
Владеет отзывами, приглашениями и настройками воронки. Ничего не знает о заказах: и Review.orderId — непрозрачные строки, а связывание ихReviewInvite.orderId
с фактическими заказами является задачей (которыйwf-order-review-request
запрашивает отзыв) и (который его показывает). Не владеет обсуждениямиsf-reviews
сообщества.
Две двери
Доступ, как и везде, определяется тегами: опубликованный отзыв содержит ,public
всё остальное — и authenticated, что позволяет магазину работатьmoderator
с отзывом, написанным не сотрудником магазина.
Дверь клиента устроена иначе. , getInviteByToken иmarkInviteOpened авторизуются самим токеном — это capability, а не сессия, — поэтомуsubmitByToken
публичная форма работает вообще без входа. Они возвращают сокращённое представление,
которое не содержит ни контактных данных, ни идентификатора приглашения, а условно погашает ссылку, поэтому две отправки из одного письмаsubmitByToken
приводят к одному отзыву и одному отказу, а не к двум отзывам.
Фильтрация отзывов
меняет только акцент публичной формы и больше ничего: приpositiveThreshold
достижении этого значения автору сначала предлагаются внешние платформы, а ниже
него первым показывается поле для отзыва магазину. Ссылки на платформы остаются
видимыми в любом случае, поскольку предоставлять путь к публичному отзыву только
удовлетворённым клиентам запрещают Google и несколько других платформ. Безопасное
поведение используется по умолчанию.
Прямые зависимости модуля
- Отсутствуют
Вхождение в решение
production
Источник
modules/repositories/business/rp-reviews