本文へスキップ
開発事例 / Webアプリ

デジタル商品ファクトリー — 書類テンプレートのダウンロード販売

履歴書8様式・職務経歴書12職種のテンプレートを、決済から納品まで3経路で自動で配るストア

公開中

転職・退職・家計の書類を、印刷してすぐ使える形で売るダウンロードストア。履歴書8様式・職務経歴書12職種を含む配布ZIP8本・107ファイルをスクリプトで生成し、決済はSquareのホスト画面に任せてカード番号を自サイトに通さない。ZIPはpublicに置かず署名トークン(既定14日)でのみ配信し、データベースは持たない。同じ決済と同じ購入判定の上に、自撮りから証明写真を作って写真入り履歴書PDFまで書き出すAI証明写真(¥980)も同居させ、こちらだけZIPではなくその場生成で渡す。

この作品の要点
困っていたことテンプレート販売は白紙だけを配るものが多く、記入例と書き方が別売りか無い。
やったこと履歴書は1様式ごとにWord・印刷用PDF・記入例PDFの3点、職務経歴書は1職種ごとに白紙と記入例をWordとPDFの4点で束ねた。
起きたこと販売まわりの自動テスト60項目が全PASS(購入判定・署名トークン・DL API・ZIP容量ほか)
もくじ

どこでつまずいたか

01テンプレート販売は白紙だけを配るものが多く、記入例と書き方が別売りか無い

02個人で売る以上、深夜に買われても人が起きて送るわけにいかない

03Squareアカウントは他プロジェクトと共用で、取りこぼし回収は口座全体の決済を見に行く

どう解いたか

01履歴書は1様式ごとにWord・印刷用PDF・記入例PDFの3点、職務経歴書は1職種ごとに白紙と記入例をWordとPDFの4点で束ねた

02完了画面・Webhook・15分ごとのcronの3経路で納品し、注文のmetadataで二重送信を止める

03purchaseMatches()で商品名と金額が両方一致した注文だけを通し、他プロジェクトの入金を拾わない

できあがったもの

結果

01販売まわりの自動テスト60項目が全PASS(購入判定・署名トークン・DL API・ZIP容量ほか)
0215ページ×5幅(390/744/820/1180/1440)の75項目に無料ツールの実動作8項目を足した83項目が本番URLで全PASS
03ZIPの収録数は生成時の記載とunzipの実数が8本すべて一致(25/5/25/24/3/4/9/12ファイル)

この作品でできること

  • 配布ZIP8本・107ファイルをスクリプトから生成(手作業でファイルを作らない)
  • ZIPは非公開、HMAC-SHA256の署名トークン(既定14日)でのみ配信
  • 商品名と金額の両方が一致した決済だけを納品対象にする購入判定
  • 配布ZIPは最大2.60MB、Vercelの応答上限4.5MBを8本ともクリア
  • 無料ツール4本を入口に併設。うち履歴書メーカーは免許証を撮るだけで学歴・住所が埋まる

どう作ったか

担当と道具

担当企画・UI設計・フルスタック開発・決済・納品フロー設計
使った技術Next.js 15.5・TypeScript 5.9・Square REST API(Hosted Checkout・SDK不使用)・Playwright(Chromium) print-to-PDF(配布PDF 70本)・docx / exceljs(Word 36本・計算式入りExcel 1本)・pdf-lib(履歴書PDFへの写真焼き込み)・HMAC-SHA256 署名トークン・nodemailer + XServer SMTP・Vercel(hnd1) + Cron

この作品のきほん

種類Webアプリ
いまの状態公開中
規模担当4領域 / 技術9種類
公開先digi.nextcode.ltd

相談する

おなじものが作れます

同じ仕組みを、あなたの商品でも作れます。