代金引換ショップ+管理ダッシュボードを作る
Supabaseバックエンドと管理ダッシュボードを備えた代金引換ショップを作ります。
ロードマップと資料
Supabaseで注文システムを作成する
新しいSupabaseプロジェクトを作成する
Supabaseを開く
https://supabase.com/?utm_source=partner&utm_medium=social&utm_campaign=supasquad&dub_id=faVfKdcLWvKCbYNp
SQL Editorを開く
SQLコード1を実行 — Ordersテーブルを作成する
-- Create orders table create table if not exists public.orders ( id uuid primary key default gen_random_uuid(), customer_name text not null, phone text not null, email text, city text not null, address text not null, country text default 'United States', product_name text not null, product_variant text, quantity int not null default 1, notes text, status text not null default 'pending', -- pending, confirmed, shipped, cancelled created_at timestamptz default now() ); -- Enable RLS alter table public.orders enable row level security;
SQLコード2を実行 — Profilesテーブルを作成する
-- Create profiles table create table if not exists public.profiles ( user_id uuid primary key references auth.users(id) on delete cascade, role text not null default 'user' ); -- Enable RLS alter table public.profiles enable row level security;
Authentication → Users で管理者ユーザーを作成する
SQLコード3を実行 — 管理者ロールを割り当てる
USER_IDを自分のUIDに置き換える
insert into public.profiles (user_id, role) values ('PUT_USER_ID_HERE', 'admin');
SQLコード — セキュリティポリシー(RLS)
SQLコード4 — Profilesの読み取りポリシー
-- Profiles are readable by owner create policy "Profiles are readable by owner" on public.profiles for select to authenticated using (auth.uid() = user_id);
SQLコード5 — 一般ユーザーの注文作成ポリシー
-- Public can create orders create policy "Public can create orders" on public.orders for insert to anon with check ( status = 'pending' );
SQLコード6 — 管理者の注文閲覧ポリシー
-- Admins can view all orders create policy "Admins can view all orders" on public.orders for select to authenticated using ( exists ( select 1 from public.profiles where profiles.user_id = auth.uid() and profiles.role = 'admin' ) );
SQLコード7 — 管理者の注文更新ポリシー
-- Admins can update all orders create policy "Admins can update all orders" on public.orders for update to authenticated using ( exists ( select 1 from public.profiles where profiles.user_id = auth.uid() and profiles.role = 'admin' ) ) with check ( exists ( select 1 from public.profiles where profiles.user_id = auth.uid() and profiles.role = 'admin' ) );
Project URLとPublishable Keyをコピーする
注文フォーム付きのショップを作る
チェックリスト
SupabaseのProject URLを入力
SupabaseのPublishable Keyを入力
生成されたプロンプトをコピーする
Google AI Studioでショップページを生成する
テスト注文を送信する
Supabase → Ordersテーブルで注文を確認する
このステップで使うプロンプト
プロンプト1 — ショップ+注文フォームを生成する
You are building a web app INSIDE this Google AI Studio project. Task: Create a beautiful, premium, light-mode single-page Cash-on-Delivery (COD) store TEMPLATE (one product) that is simple and beginner-friendly to customize. IMPORTANT OUTPUT RULES: - Do NOT paste the full HTML/CSS/JS code in the chat. - Instead, create/update the project files directly. - After you finish, reply with: 1) A short bullet summary of what you built 2) Where beginners should edit the template (the exact variables/sections) Design (Light Mode): - Clean white / soft light gray background with a subtle pastel gradient. - Modern premium SaaS look (Apple/Stripe style). - Elegant spacing, rounded corners, soft shadows. - Looks great on mobile. Template placeholders (make them easy to edit): - STORE_NAME: "YOUR STORE NAME" - PRODUCT_NAME: "YOUR PRODUCT NAME" - PRODUCT_DESCRIPTION: "YOUR PRODUCT DESCRIPTION" - PRICE_PER_UNIT: 49 - CURRENCY: "USD" - Variants: "Variant A", "Variant B", "Variant C" - Default country: "United States" Sections to include (keep it simple): 1) Header (store name + link scroll to “How COD Works”) 2) Hero (product name, description, CTA buttons) 3) Benefits (3 cards) 4) How COD Works (3 steps) 5) Order Form (most important) + Order Summary (price x quantity) 6) FAQ (3 items) 7) Footer Supabase (INSERT only): - Use Supabase JS client. - Use placeholders: SUPABASE_URL = "{{SUPABASE_URL}}" SUPABASE_PUBLISHABLE_KEY = "{{SUPABASE_PUBLISHABLE_KEY}}" - On form submit: INSERT into table "orders" with: customer_name, phone, email, city, address, country, product_name, product_variant, quantity, notes, status="pending" Critical rules: - INSERT only. Do NOT use select/update/delete. - Show success banner on success, generic error banner on failure. - Validate required fields with small inline errors. - Disable the submit button while sending. Now build it inside the project so I can run it immediately.
SupabaseのProject URL
SupabaseのProject URLをここに貼り付け
SupabaseのPublishable Key
Supabaseのpublishable keyをここに貼り付け
管理ダッシュボードを作成する
チェックリスト
SupabaseのProject URLを入力
SupabaseのPublishable Keyを入力
生成されたプロンプトをコピーする
Google AI Studioで管理ダッシュボードを生成する
Supabaseの管理者アカウントでログインする
このステップで使うプロンプト
プロンプト2 — 管理ダッシュボードを生成する
You are an expert full-stack engineer. Build a modern admin dashboard for managing Cash-on-Delivery (COD) orders using Supabase. Use the following Supabase credentials: SUPABASE_URL = "{{SUPABASE_URL}}" SUPABASE_KEY = "{{SUPABASE_KEY}}" The database contains a table called: orders Fields include: customer_name, email, phone, city, address, product_variant, quantity, status, created_at. The dashboard should allow an admin to: • log in • view order statistics • see recent orders • search and filter orders • update order status • customize the application name in settings Design it as a clean modern SaaS dashboard with a light Apple-style UI. Keep the implementation simple and produce a fully working result.
SupabaseのProject URL
SupabaseのProject URLをここに貼り付け
SupabaseのPublishable Key
SupabaseのPublishable Keyをここに貼り付け
プロジェクトをデプロイする
チェックリスト
Google AI StudioからプロジェクトをGitHubに保存する
HostingerでNode.js Web Appのホスティングを作成する
GitHubリポジトリをインポートする
公開中のプロジェクトURLを開く
このステップで使うホスティング
Hostingerでデプロイする
動画と同じ構成でこのプロジェクトを公開します。
RECOMMENDED
https://www.hostg.xyz/SHJ9M
アップグレード — メール通知の自動化
このアップグレードでは、新しい注文が入るたびに自動でメールを送り、ショップをより実用的にします。
- ショップオーナーに新規注文のメールが届く
- お客様に注文確認メールが届く
AIショップから自動でメールを送れるようにする(Supabaseチュートリアル)
チュートリアルを見る
https://www.youtube.com/watch?v=NK6ztA_-0cE