Ну при покупке сертификата, генерируешь случайный уникальный набор символов, добавляешь номинал сертификата, ставишь дату истечения вот и всё. При использовании ищешь сертификат по набору символов не забывая проверить не истек ли он по дате, применяешь, обнуляешь(ставишь флаг что он больше не действителен).
Делаешь страницу Сертификаты.
Реализуешь в ней выбор внешнего вида - это например кастомный радиобаттон, делаешь поле выбора суммы - это например тоже радиобатон с резными value или свое поле.
Дальше форма, в которую при отправке передаются еще значения полей внешнего вида и суммы и если все заполнено правильно по отправке форма открывает систему оплаты, в которую передается тоже сумма. дальше дело за системой оплаты. , по успешной оплате должна передать например письмо с айдишником заказа