Технически нужен блок, где покупатель выбирает один из фиксированных номиналов либо вбивает свою сумму в заданных пределах, оплачивает заказ обычным способом и получает на руки два результата: уникальный код для активации при следующей покупке и файл в формате PDF, оформленный как подарочная открытка, — его удобно распечатать или отправить получателю напрямую. Код обязательно привязывается к конкретному заказу и покупателю, действует ограниченное время, срок настраивается нами, а после истечения блокируется автоматически, без нашего вмешательства.
Отдельно важна защита: код не должен подбираться перебором и не должен где-либо светиться в открытом виде, кроме самого PDF. При оплате заказа сертификатом система должна корректно списывать сумму частично, если стоимость покупки меньше номинала, и оставлять остаток доступным для следующей покупки. Со стороны администратора нужен минимальный, но рабочий инструмент: видеть список сертификатов, их статус (активен, погашен, истёк) и при необходимости вручную деактивировать конкретный код.
Кратко по функционалу:
— фиксированные номиналы плюс произвольная сумма в границах;
— уникальный код с защитой от перебора;
— настраиваемый срок действия и автоматическое сгорание;
— PDF-сертификат с фирменным оформлением и текстом поздравления;
— частичное и повторное списание остатка при оплате;
— список сертификатов и их статусов для администратора.