
Разбор · Опубликовали 08.10.2026
Подарочный сертификат на сайте агенты добавляют с учётом остатка и защитой от двойного списания
Что поручить машине агентов в существующем магазине: частичная оплата, повторные уведомления, одновременные заказы и отмена. Сценарии приёмки и наш опыт проверки оплаты курса.
Текст подготовлен машиной агентов по правилам инженера, который ведёт vibecoding.ru · источники проверены 8 октября 2026
Нужно добавить подарочный сертификат на сайт: покупатель вводит код, магазин уменьшает сумму к оплате. Инженер ведёт машину агентов, которая может доработать это оформление заказа. Но в задачу сразу входят остаток, повторы и одновременные попытки списания, иначе красивое поле ещё не готово.
Возьмём учебный сертификат на 5 000 ₽. После заказа на 3 000 ₽ должно остаться 2 000 ₽. Повторное нажатие не меняет остаток, а два разных заказа по 3 000 ₽ не получают оба полную оплату из этого сертификата. Именно такой результат владелец должен увидеть на приёмке.
Не хотите разбираться сами? Внедряем ИИ в ваш бизнес: задачи без лимита, одна цена в месяц, отмена в любой момент.
1. Сертификат оплачивает часть заказа и сохраняет остаток.
Промокод меняет цену покупки. Сертификат с сохраняемым остатком оплачивает покупку из отдельной суммы. Если оформить его как скидку на весь номинал, магазин не получит историю, сколько денег уже использовано и сколько ещё можно потратить.
В нашем учебном примере заказ дешевле сертификата. Код после покупки остаётся пригодным для следующего заказа, но уже на меньшую сумму. Если корзина дороже доступного остатка, покупатель видит, сколько покрывает сертификат и сколько нужно доплатить.
Такое поведение описано, например, в справке Shopify: остаток можно использовать в нескольких заказах, а нехватку покрыть другим способом оплаты. Для существующего магазина сначала стоит проверить его штатную функцию. Затем записать задачу для агента через ожидаемые суммы и статусы, а не через расположение поля.
После покупки остаётся сумма, а не новый промокод.
Учебная арифметика редакции, 08.10.2026; поведение остатка и доплаты сверено со справкой Shopify в этот день. Это не кейс клиента.
2. Повтор и два разных заказа требуют разных защит.
Покупатель может нажать оплату повторно, а платёжная система может прислать то же уведомление ещё раз. В документации Stripe оба повтора описаны отдельно. Сервер должен узнать уже выполненную операцию и вернуть её результат, не уменьшать остаток снова.
Но два заказа имеют разные номера. Защита от повтора одного заказа не мешает обоим прочитать старый остаток 5 000 ₽ и попросить по 3 000 ₽. В сумме получится 6 000 ₽. Нужна ещё одна защита: проверка доступной суммы, её занятие и запись операции выполняются вместе на сервере.
Инженер выбирает механизм под базу магазина. Например, PostgreSQL позволяет блокировать запись на время её изменения в транзакции. Результат для владельца проще: разные заказы не расходуют один остаток дважды. Кто проверяет это и принимает выпуск, определяют заранее; ответственность за ошибки агенту не передают.
Одна защита узнаёт повтор, другая делит остаток.
Сценарии редакции, 08.10.2026; механизмы сверены с документацией Stripe и PostgreSQL. Суммы учебные, способ реализации выбирает инженер, не эта таблица.
3. Списанием управляет статус заказа на сервере.
Следующий риск появляется при доплате. Покупатель применил сертификат, перешёл в платёжную систему и закрыл вкладку. Закрытие страницы не доказывает ни оплату, ни отмену. Если сразу вернуть сумму в доступный остаток, её можно потратить снова, пока первый платёж ещё подтверждается.
Один вариант реализации: на время оплаты сервер резервирует сумму под конкретный заказ. Резерв ещё не окончательное списание, но другим заказам он уже недоступен. После подтверждения заказ завершает операцию; после достоверного отказа резерв освобождается.
Состояние «неизвестно» требует сверки с платёжной системой. Stripe предупреждает, что уведомления могут приходить в другом порядке. Поэтому позднее событие не должно возвращать заказ в старое состояние или повторно менять сертификат. Повтор подтверждения остаётся безопасным.
Если сертификат покрывает заказ целиком, внешней доплаты может не быть. Тогда сервер магазина сам подтверждает завершение по согласованному правилу. Возврат товара и восстановление суммы тоже требуют явного правила владельца; здесь мы обсуждаем техническое исполнение, а не правовые условия продажи.
Резерв и остаток отвечают на разные вопросы.
Предложенная редакцией модель состояний, 08.10.2026. Это один вариант для магазина, не описание готового продукта; повторы и порядок событий сверены с документацией Stripe.
4. Приёмка проверяет деньги после сбоев, а не только поле кода.
Демонстрация «ввели код, цена уменьшилась» проверяет только удачную покупку. Она ничего не говорит о повторе уведомления, конкурирующем заказе или потерянном ответе сервера. Эти попытки нужны в задаче до начала разработки.
Для тестового прогона инженер готовит отдельные сертификаты и заказы. У каждой операции должен быть след: какой заказ занял сумму, какой платёж её подтвердил и что уже было обработано. После сбоя история объясняет остаток, а не просто показывает число в карточке.
Агенты добавляют код и автоматические проверки; инженер сверяет их с согласованным результатом и принимает работу. В отчёте заказчик получает ветку с изменениями, результаты сценариев и найденные ограничения. Непройденная проверка не превращается в «готово» из-за удачного показа на экране.
Каждый сценарий заканчивается проверкой остатка и истории.
Сценарии приёмки редакции, 08.10.2026. Это план проверки будущей доработки; результатов клиентского прогона у нас нет.
5. Наша платёжная цепочка показывает цену проверки, но не доказывает кейс сертификата.
Систему сертификатов для клиента мы здесь не показываем: такого кейса у машины пока нет. Наш опыт относится к оплате курса vibecoding.ru и письму доступа. Работу нашей машины можно проследить публично; разбор ниже основан на журнале ревью нашей платёжной цепочки.
В ревью от 9 сентября 2026 нашлась связка: доступ уже создан, письмо упало, повторное уведомление больше не пыталось его отправить. Успешная отметка в одном месте цепочки скрывала неуспех в другом. Для сертификата аналогичный вопрос на приёмке: если ответ потерян, можно ли восстановить результат без второго списания?
Это пример способа работы, а не доказательство внедрённого сертификата. В курсе об агентной разработке есть урок «Одиннадцать шагов одной задачи»: правила, исполнение и проверка связаны в один процесс. В этой доработке процесс должен закончиться доказанным остатком и повторяемыми проверками.
Три находки одного ревью 09.09.2026 и правила после них.
09.09
Подпись уведомления доказывала платёж из нашего кабинета, но не покупку нужного курса. Правило: до выдачи доступа проверять товар.
09.09
После сбоя письмо доступа не отправлялось при повторе, поскольку доступ уже существовал. Правило: учитывать отправку отдельно, повторять её без повторного создания доступа.
09.09
Цена витрины и платёжной функции могли расходиться. Правило: связать их проверкой согласованности.
Редакционный пересказ журнала vibecoding.ru от 09.09.2026, перечитан 08.10.2026. Это находки ревью оплаты курса, не клиентские инциденты с сертификатами; внутренних файлов в публичных ссылках нет.
Что и как мы проверяли
| Факт | Что известно | Проверено |
|---|---|---|
| Спрос в РФ | «Подарочные сертификаты на сайте»: 473, «подарочные сертификаты интернет магазины»: 732 запроса в месяц. API Wordstat, регион РФ. Не число покупателей и не прогноз продаж. | 2026-10-08 |
| Поведение сертификата | Справка Shopify описывает остаток на несколько заказов и доплату. Внедрение в магазин РФ из этого не следует. | 2026-10-08 |
| Повторы и конкуренция | Документация Stripe и PostgreSQL подтверждает отдельные механизмы. Сценарии и суммы статьи придуманы для приёмки, не взяты из клиентской системы. | 2026-10-08 |
| Наш опыт | Журнал ревью оплаты курса от 09.09.2026. Клиентского кейса сертификатов нет; скорость этой задачи не измерена. | 2026-10-08 |
| Цена разработки | На живой /services тариф «Один проект» стоит 250 000 ₽ в месяц. Это цена подписки, не смета одного сертификата. | 2026-10-08 |
6. В подписке покупают доработку с проверкой, а не обещание одного поля.
Если штатная функция магазина не подходит, предмет работы можно сузить: код сертификата в существующем оформлении заказа, учёт использованного номинала и доступного остатка, защита от повторов и одновременных попыток. Вместе с кодом нужны проверка доплаты и согласованный сценарий отмены.
У нас разработка по подписке на тарифе «Один проект» стоит 250 000 ₽ в месяц, по состоянию на 8 октября 2026. Инженер ведёт машину агентов, одна задача в работе, код остаётся в вашем репозитории, пауза доступна в любой месяц. Это цена месяца, а не обещание сделать любой сертификат за фиксированный срок.
Для первого обсуждения достаточно описать магазин, текущую оплату и правила остатка. Зафиксируйте, какие события подтверждают списание, а какие освобождают резерв. С этим описанием можно обсудить следующую задачу. Правовые условия продажи сертификата в эту разработку не входят.
Граница задачи видна до первого изменения кода.
Границы предложения редакции, 08.10.2026; тариф и условия работы сверены с живой страницей /services в этот день.
7. Частые вопросы.
8. Частые вопросы
Нужно ли писать свою систему, если у магазина есть модуль сертификатов?+
Нет. Сначала проверьте модуль на ваших сценариях: остаток, доплата, повтор, одновременные заказы и отмена. Иногда работа заключается в настройке и проверках штатной функции, а не в новом хранилище денег.
Когда активировать сертификат, который покупают в подарок?+
В технической модели активацию связывают с подтверждённой оплатой его покупки на сервере. Переход на страницу благодарности сам по себе не подтверждает поступление денег. Повтор уведомления не выпускает ещё один сертификат; письмо с кодом учитывается отдельно.
Можно ли одним сертификатом платить на сайте и в розничной точке?+
Это отдельная интеграция. Сайт и касса должны узнавать один актуальный остаток и согласованно занимать сумму. Локальная копия баланса без связи между каналами не доказывает защиту от двойного расходования.
Что делать с подбором чужих кодов?+
В задачу включают непредсказуемые коды, ограничения попыток, проверку на сервере и отсутствие полного кода в открытых журналах. Форма не должна раскрывать лишние сведения о чужом сертификате. Это требования к будущей доработке; принцип защиты кодов сверяем с рекомендациями OWASP по секретным токенам. Точные ограничения выбирают под магазин и проверяют отдельно.
Можно ли обещать срок до просмотра магазина?+
У нас нет измеренного срока такой клиентской доработки. Сначала инженер смотрит платформу, платёжные статусы и существующий учёт. Срок первой части определяют после этого, а цену месяца не выдают за цену готовой системы сертификатов.
8. Источники.
Источники
- Shopify, Redeeming and using gift cards · остаток и доплата, проверено 08.10.2026 — справка платформы
- Stripe, Idempotent requests · безопасный повтор запроса, проверено 08.10.2026 — документация
- Stripe, Webhooks · повторы и порядок уведомлений, проверено 08.10.2026 — документация
- PostgreSQL, Explicit Locking · совместное изменение записи, проверено 08.10.2026 — документация
- OWASP, Forgot Password Cheat Sheet · защита секретных кодов; принцип применён к сертификату, проверено 08.10.2026 — рекомендации по безопасности
- Wordstat · два запроса о сертификатах, месячная частота в РФ, 08.10.2026 — замер спроса
- vibecoding.ru/services · тариф «Один проект» и условия, проверено 08.10.2026 — наше предложение
- vibecoding.ru/open · публичная работа машины; разбор оплаты взят из собственного журнала от 09.09.2026, перечитан 08.10.2026 — наш опыт
- Курс «Агентная разработка» · урок «Одиннадцать шагов одной задачи», сверено 08.10.2026 — наша методика
Запомнить.
- Принимайте остаток после покупки, а не только поле ввода кода.
- Отдельно проверяйте повтор одного заказа и конкуренцию разных заказов.
- Связывайте резерв и списание с серверным состоянием оплаты; неизвестный статус сверяйте.
- Требуйте историю операций и результаты проверок вместе с кодом.
- Отделяйте доработку магазина от правовых условий продажи и интеграции с розницей.