Навигация
Присоединяйтесь к нашему Telegram-каналу!☝

Будьте в курсе последних новинок и фишек e-commerce: советы, полезные инструменты и эксклюзивные материалы.

Блог Rss rss_feed

Оплата прошла, а заказа нет: где искать проблему в PrestaShop

Оплата прошла, а заказа нет: где искать проблему в PrestaShop

Покупатель оформил заказ, оплатил его банковской картой и получил подтверждение списания денег. Но в административной панели PrestaShop нового заказа нет.

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

Чаще всего причину нужно искать во взаимодействии платёжного модуля, платёжного сервиса и PrestaShop.

Как происходит оплата в PrestaShop

При оплате через внешний платёжный сервис процесс обычно выглядит следующим образом:

  1. Покупатель оформляет корзину и переходит к оплате.
  2. Платёжный сервис обрабатывает транзакцию.
  3. Сервис отправляет магазину уведомление о результате платежа.
  4. Платёжный модуль создаёт заказ или обновляет его статус.

В зависимости от реализации модуля заказ может создаваться до окончательного подтверждения оплаты либо после него.

Поэтому успешная транзакция в банке ещё не гарантирует, что магазин корректно обработал её результат.

Почему заказ не появился

1. Магазин не получил уведомление об оплате

Многие платёжные сервисы используют webhook — автоматическое серверное уведомление о результате транзакции.

Например, покупатель успешно оплатил заказ, но запрос к магазину завершился ошибкой.

Причины могут быть разными: неправильный адрес обработчика, блокировка запроса сервером, ошибка PHP или некорректная настройка модуля.

Что проверить: историю уведомлений в кабинете платёжного сервиса, HTTP-код ответа магазина и журналы ошибок сервера.

2. Уведомление пришло, но модуль не обработал его

Иногда платёжный сервис успешно отправляет уведомление, но модуль не может завершить создание заказа.

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

Здесь важно проверять не только журнал PrestaShop, но и собственные логи платёжного модуля.

3. Заказ существует, но имеет другой статус

Не всегда проблема заключается в отсутствии заказа.

Иногда заказ уже создан, но остаётся в состоянии ожидания оплаты.

Поэтому сначала стоит проверить заказы покупателя за соответствующий период, включая неоплаченные и отменённые.

Не следует создавать заказ повторно, пока не выяснено, что произошло с первоначальным.

Как проверить заказ через базу данных

Если известен ID корзины, можно проверить, появился ли связанный с ней заказ.

SELECT
    c.id_cart,
    c.id_customer,
    o.id_order,
    o.reference,
    o.current_state,
    o.total_paid_tax_incl
FROM ps_cart c
LEFT JOIN ps_orders o
    ON o.id_cart = c.id_cart
WHERE c.id_cart = 12345;

Замените ps_ на префикс таблиц своего магазина, а 12345 — на ID нужной корзины.

Если id_order равен NULL, связанный заказ не найден.

Если заказ существует, необходимо проверить его статус и сумму.

Несколько заказов для одной корзины не всегда означают ошибку: PrestaShop может разделять заказ по доставкам или посылкам.

Этот запрос ничего не изменяет в базе и подходит для первичной диагностики.

Что важно разработчикам платёжных модулей

При обработке подтверждения оплаты необходимо соблюдать несколько правил.

Проверять подлинность уведомления. Нельзя создавать оплаченный заказ только потому, что на определённый URL поступил запрос. Необходимо проверять подпись или другой предусмотренный платёжным сервисом механизм подтверждения.

Проверять сумму и валюту. Они должны соответствовать подтверждённой транзакции и ожидаемому платежу.

Защищаться от повторной обработки. Платёжные сервисы могут повторно отправлять уведомления. Модуль должен распознавать уже обработанную транзакцию и не создавать повторный заказ.

Сохранять диагностическую информацию. Идентификатор транзакции, ID корзины, результат проверки и ошибки обработки позволяют быстрее установить причину сбоя. При этом нельзя записывать в логи секретные ключи и платёжные данные.

Официальная документация PrestaShop отдельно подчёркивает необходимость проверки корзины, суммы платежа и подлинности запросов при разработке платёжных модулей.

На что обратить внимание в PrestaShop 9.2

В PrestaShop 9.2 появился официальный One Page Checkout — оформление заказа на одной странице.

При его использовании необходимо дополнительно проверить совместимость платёжного модуля.

Особенно это касается способов оплаты с собственными кнопками, встроенными платёжными формами и перенаправлением на внешний сервис.

Для таких модулей предусмотрен механизм submitBeforePayment(), который позволяет сохранить необходимые данные оформления до запуска оплаты.

Что делать, если покупатель уже заплатил

Главное — не пытаться сразу повторно провести платёж или создать ещё один заказ.

Сначала нужно сопоставить транзакцию в платёжном сервисе с корзиной и заказами PrestaShop.

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

После исправления обязательно проведите тестовую оплату и проверьте весь процесс: от подтверждения транзакции до появления заказа в административной панели.

Если оплата прошла, а заказ не появился, проблему нужно искать последовательно: платёжный сервис, уведомление, обработчик модуля, корзина и база данных.

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

Успешная оплата должна заканчиваться не только списанием денег, но и корректно зарегистрированным заказом.

Был ли этот пост полезен для вас?

    
👈 Присоединяйтесь к нашему Telegram-каналу!

Будьте в курсе последних новинок и фишек e-commerce: советы, полезные инструменты и эксклюзивные материалы.

👈 Присоединяйтесь к нашему Telegram-каналу!

Будьте в курсе последних новинок и фишек e-commerce: советы, полезные инструменты и эксклюзивные материалы.

На данный момент комментариев нет
close

Checkout

close

Избранное

Promo