Поиграл с функцией купонов — всё работает отлично.
Однако у меня есть опасение, касающееся проверки промокодов или её отсутствия.
Воспроизведение:
Введён действительный тестовый номер кредитной карты.
Введён случайный промокод, которого нет в моей конфигурации купонов.
Транзакция была завершена.
Была списана полная сумма без каких-либо скидок.
С точки зрения системы это ожидаемое поведение, не поймите меня неправильно. Но я надеюсь получить согласие на то, что на шаге 2 требуется какое-то вмешательство пользователя: процесс должен быть приостановлен, и пользователь должен получить уведомление, если введён некорректный промокод.
Разрешая транзакцию, мы создаём ситуацию, когда пользователь ожидает скидку, но удивляется полному списанию. Опечатки — реальная проблема: я видел, как пользователи путаются даже с самыми простыми инструкциями по копированию и вставке.
Возможные решения, если это воспроизводится у всех:
Внедрить проверку промокодов.
Добавить возможность предзаполнения поля промокода через параметры URL для минимизации ручного ввода, например: /s/productname?promo_code=awesomesupporter