สินค้าและฟีเจอร์
กำหนดสิ่งที่คุณขาย สร้างสินค้าที่มี variant หนึ่งรายการขึ้นไป และแนบ feature ที่นำกลับมาใช้ซ้ำได้สำหรับการควบคุมสิทธิ์การเข้าถึงแบบ entitlement
Proyecta Commerce ใช้แนวคิดสามอย่าง ได้แก่ product, variant และ feature
- Product — สิ่งที่คุณขาย (เช่น “Pro Plan”, “T-shirt”, “Strategy Call”)
- Variant — ระดับราคาหรือการกำหนดค่าของ product (เช่น “Pro Monthly $29”, “Pro Annual $290”, “T-shirt – Large”)
- Feature — คีย์ entitlement ที่นำกลับมาใช้ซ้ำได้ ซึ่งแอปของคุณตรวจสอบขณะ runtime (เช่น
pro_features,unlimited_projects,api_access)
product หนึ่งรายการสามารถมีหลาย variant ได้ และยังมี resource หนึ่งรายการขึ้นไปแนบอยู่ด้วย — โดยปกติคือ feature — ซึ่งจะมอบสิทธิ์การเข้าถึงเมื่อลูกค้าสมัครสมาชิก
สองวิธีในการกำหนดโมเดลสิ่งที่คุณขาย
หัวข้อที่มีชื่อว่า “สองวิธีในการกำหนดโมเดลสิ่งที่คุณขาย”Commerce ทำงานร่วมกับส่วนอื่น ๆ ของแพลตฟอร์ม ดังนั้นจึงมีรูปแบบสองแบบสำหรับ “สิ่งที่คุณขาย” — และ Proyecta จะเลือกแบบที่เหมาะสมให้คุณโดยอัตโนมัติ:
- Commerce-native products — subscription, แผนบริการ, การอัปเกรดแบบครั้งเดียว และ feature/entitlement กำหนดโดยตรงใน Admin > Commerce > Products นี่คือโมเดลที่หน้านี้อธิบายในส่วนที่เหลือ
- แคตาล็อกสินค้าที่ขับเคลื่อนด้วย content — สินค้าที่มีรูปภาพ ราคา และคำอธิบาย ซึ่งเจ้าของธุรกิจแก้ไขได้ในแต่ละวัน รายการเหล่านี้อยู่ใน CMS ในรูปแบบ sellable collection: แต่ละ entry คือ product เมื่อ entry ได้รับการเผยแพร่ Proyecta จะผสานรวมเข้ากับ Commerce โดยอัตโนมัติในรูปแบบ product ที่ซื้อได้จริง — สร้าง product และ variant ที่มีราคาให้คุณ และคัดลอกราคาจาก content field โดยตรง storefront จะแสดงราคาจาก content และ checkout จะเรียกเก็บเงินผ่าน variant ที่เชื่อมโยง เนื่องจากใช้แหล่งข้อมูลเดียวกัน ราคาจึงไม่มีทางแตกต่างกันได้ คุณจัดการรายการเหล่านี้ในฐานะ content (ใน Admin ของแอป ทั้งใน builder หรือบนเว็บไซต์ที่เผยแพร่แล้ว) ไม่ใช่ผ่าน Commerce > Products ดูเพิ่มเติมที่ การจัดการ Content
แคตาล็อกทั่วไปที่ ไม่รับ การชำระเงินด้วยบัตร เช่น เมนูที่เปิดดูได้อย่างเดียว หรือร้านค้าที่ปุ่ม “ซื้อ” เปิดลิงก์สั่งซื้อผ่าน WhatsApp — ถือเป็น content ธรรมดา ซึ่งก็คือ catalog collection ธรรมดาที่ไม่มีการผสานกับ Commerce การชำระเงินด้วยบัตรคือสิ่งที่ทำให้ collection กลายเป็น sellable
การสร้าง product
หัวข้อที่มีชื่อว่า “การสร้าง product”ใน Admin > Commerce > Products คลิก Create product (หรือถาม AI ว่า: "Create a Pro plan at $29/month and a Business plan at $99/month.") แต่ละ product ต้องมี:
- ชื่อที่แสดง (เช่น “Pro”)
- variant อย่างน้อยหนึ่งรายการ
Variant
หัวข้อที่มีชื่อว่า “Variant”แต่ละ variant มีข้อมูลราคาของตัวเอง:
| ฟิลด์ | หมายเหตุ |
|---|---|
name |
ชื่อที่แสดงของ variant (“Monthly”, “Annual”, “Large”) |
currency |
รหัส ISO สามตัวอักษร — USD, EUR, GBP, JPY, BRL, MXN, INR… (รองรับมากกว่า 130 สกุลเงิน) |
unit_amount |
ราคาในหน่วยย่อยที่เล็กที่สุดของสกุลเงิน (เซนต์) 2900 = $29.00 |
recurring |
ไม่บังคับ — { interval: 'week' | 'month' | 'year' } ละไว้สำหรับราคาแบบครั้งเดียว ขณะนี้ยังไม่รองรับการเรียกเก็บเงินรายวัน |
is_default |
รับค่าได้แต่ยังไม่มีผลบังคับ — ขณะนี้ยังไม่รองรับการเลือก variant เริ่มต้น |
media |
แนบรูปภาพหรือวิดีโอด้วย CDN file ID (ดู Files) |
ราคาเปลี่ยนแปลงไม่ได้ เมื่อสร้าง variant แล้ว ราคาจะไม่สามารถเปลี่ยนได้ — ให้สร้าง variant ใหม่แทน เพื่อปกป้องผู้สมัครสมาชิกที่มีอยู่จากการเปลี่ยนแปลงราคาโดยไม่ตั้งใจ
Feature (entitlement)
หัวข้อที่มีชื่อว่า “Feature (entitlement)”Feature คือ primitive สำหรับการควบคุมสิทธิ์การเข้าถึง สร้าง feature หนึ่งครั้งใน Admin > Commerce > Products แล้วแนบไปยัง product หนึ่งรายการขึ้นไป แต่ละ feature มีชื่อ คำอธิบาย (ไม่บังคับ) และ key — ซึ่งประกอบด้วยตัวพิมพ์เล็ก ตัวเลข และขีดล่าง (เช่น pro_features) — นี่คือสิ่งที่แอปของคุณใช้ตรวจสอบ
เมื่อคุณสร้าง product คุณจะแนบ feature เข้ากับมันผ่าน “resources” ลูกค้าที่สมัครสมาชิก product จะได้รับสิทธิ์เข้าถึง feature ทุกรายการที่แนบอยู่
จากนั้น ในแอปของคุณ ใช้ key นั้นในการ gate:
const { hasAccess, isLoading } = useEntitlement('pro_features');
if (isLoading) return <Spinner />;if (!hasAccess) return <UpgradePrompt />;return <ProOnlyThing />;การตรวจสอบทำงานฝั่ง server โดยอ้างอิงจาก session ที่ลงชื่อเข้าใช้ จึงไม่สามารถปลอมแปลงจาก browser ได้ ดูรูปแบบการใช้งานแบบสมบูรณ์ได้ที่ การผสาน Commerce เข้ากับแอปของฉัน
หมายเหตุ: ควร gate โดยใช้ key ของ feature เสมอ — ซึ่งเป็น slug ที่ได้มาจากชื่อ feature (เช่น
pro_features) — ไม่ใช่ internal id ของ feature
นี่คือวิธีที่คุณ gate หน้าที่ใช้ได้เฉพาะ Pro, API endpoint หรือ feature ในโค้ดแอปของคุณ
รูปแบบ product ที่พบบ่อย
หัวข้อที่มีชื่อว่า “รูปแบบ product ที่พบบ่อย”SaaS subscription
Create products: Free ($0/month), Pro ($29/month, $290/year), Business ($99/month, $990/year).Attach a 'pro_features' feature to Pro and Business so I can gate access in my code.สินค้าจริง (Physical goods)
Create a T-shirt product with three variants: Small, Medium, Large at $25 each.สินค้าดิจิทัล
Create a course product with a single one-time variant at $149.การบริจาค
Create a donation product with three variants: $25, $50, $100 — all one-time.Inventory
หัวข้อที่มีชื่อว่า “Inventory”ขณะนี้ Proyecta Commerce ยังไม่รองรับการติดตาม inventory สำหรับสินค้าจริง หากคุณขายสินค้าที่มีสต็อก ให้จัดการจำนวนสต็อกในฐานข้อมูลของแอปและตรวจสอบในขั้นตอน checkout
เร็ว ๆ นี้
หัวข้อที่มีชื่อว่า “เร็ว ๆ นี้”- การปรับแต่งฟิลด์ใน checkout — เก็บข้อมูลเพิ่มเติมจากผู้ซื้อ
- ราคาแบบจ่ายเท่าที่ต้องการ (Pay-what-you-want)
- การติดตาม inventory ในตัว สำหรับสินค้าจริง