Реалізація збору відгуків через email після покупки

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Реалізація збору відгуків через email після покупки
Середня
від 1 робочого дня до 3 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Збір відзивів про покупку через email

Автоматичний запит відзиву після покупки — стандартна практика для e-commerce та SaaS. Лист йде через N днів після оплати, містить посилання з прямою оцінкою, форму для текстової відзиву та ведить на платформу з відзивами (Google, Trustpilot, Яндекс).

Архітектура

Оплата → Job: ScheduleReviewRequest (delay: +14 днів)
       → Email з кнопками оцінки
       → Клік → збереження оцінки → редирект на платформу

Backend: планування та обробка

// При успішній оплаті
class HandlePaymentSucceeded
{
    public function handle(PaymentSucceeded $event): void
    {
        // Відкладаємо лист на 14 днів — дати час скористатися продуктом
        SendReviewRequestEmail::dispatch($event->order)->delay(now()->addDays(14));
    }
}

// Job для відправлення листа
class SendReviewRequestEmail implements ShouldQueue
{
    public function handle(): void
    {
        // Не відправляти якщо вже залишив відзив
        if ($this->order->review()->exists()) return;

        // Не відправляти якщо оформив повернення
        if ($this->order->refund()->exists()) return;

        $token = ReviewToken::create([
            'order_id'   => $this->order->id,
            'user_id'    => $this->order->user_id,
            'expires_at' => now()->addDays(30),
        ]);

        Mail::to($this->order->user->email)->send(new ReviewRequestMail($this->order, $token));
    }
}

Email-шаблон з прямою оцінкою в листі

<!-- У листі — кнопки з оцінкою прямо в тілі -->
<p>Як вам покупка "{{ $order->product->name }}"?</p>

<table>
  <tr>
    @foreach([1,2,3,4,5] as $star)
    <td>
      <a href="{{ route('reviews.rate', ['token' => $token->id, 'score' => $star]) }}"
         style="display:inline-block; padding:8px 12px; background:#f3f4f6; border-radius:4px; text-decoration:none;">
        {{ str_repeat('★', $star) }}{{ str_repeat('☆', 5 - $star) }}
      </a>
    </td>
    @endforeach
  </tr>
</table>

Обробка кліка по оцінці

// ReviewController
public function rate(ReviewToken $token, int $score): View|RedirectResponse
{
    if ($token->isExpired() || $token->isUsed()) {
        return redirect()->route('home')->with('error', 'Посилання застаріло');
    }

    // Зберігаємо попередню оцінку
    session(['review_score' => $score, 'review_token' => $token->id]);

    if ($score >= 4) {
        // Висока оцінка → ведемо на Google/Trustpilot для публічної відзиву
        $token->markPartiallyUsed($score);
        return redirect(config('reviews.google_url') . '?hl=uk');
    }

    // Низька оцінка → показуємо форму для приватної відзиву
    return view('reviews.form', compact('token', 'score'));
}

public function submit(Request $request, ReviewToken $token): JsonResponse
{
    $request->validate(['score' => 'required|integer|min:1|max:5', 'comment' => 'nullable|string|max:2000']);

    Review::create([
        'order_id'  => $token->order_id,
        'user_id'   => $token->user_id,
        'score'     => $request->score,
        'comment'   => $request->comment,
        'is_public' => $request->score >= 4,
    ]);

    $token->markUsed();

    // Якщо низька оцінка — сповіщення в підтримку
    if ($request->score <= 2) {
        Notification::route('slack', '#reviews')->notify(new LowReviewNotification($token->order, $request->score));
    }

    return response()->json(['success' => true]);
}

Платформи для зовнішніх відзивів

Платформа URL для редиректа Регіон
Google Business maps.google.com/maps?cid=...&action=write-review Глобально
Trustpilot trustpilot.com/evaluate/site.com Глобально
Яндекс.Карти yandex.ru/maps/org/.../reviews/add/ Росія/СНГ
2ГІС 2gis.ru/... Росія/СНГ

Тривалість

Система збору відзивів з відкладеною відправленням, прямою оцінкою в листі та маршрутизацією на платформи: 3–4 робочих дні.