ข้ามไปยังเนื้อหา

สินค้าและฟีเจอร์

กำหนดสิ่งที่คุณขาย สร้างสินค้าที่มี 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

ใน Admin > Commerce > Products คลิก Create product (หรือถาม AI ว่า: "Create a Pro plan at $29/month and a Business plan at $99/month.") แต่ละ product ต้องมี:

  • ชื่อที่แสดง (เช่น “Pro”)
  • 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 คือ 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 ในโค้ดแอปของคุณ

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.

ขณะนี้ Proyecta Commerce ยังไม่รองรับการติดตาม inventory สำหรับสินค้าจริง หากคุณขายสินค้าที่มีสต็อก ให้จัดการจำนวนสต็อกในฐานข้อมูลของแอปและตรวจสอบในขั้นตอน checkout

  • การปรับแต่งฟิลด์ใน checkout — เก็บข้อมูลเพิ่มเติมจากผู้ซื้อ
  • ราคาแบบจ่ายเท่าที่ต้องการ (Pay-what-you-want)
  • การติดตาม inventory ในตัว สำหรับสินค้าจริง