Bỏ qua để đến nội dung

Sản phẩm & Tính năng

Xác định những gì bạn bán. Tạo sản phẩm với một hoặc nhiều biến thể, đính kèm các tính năng có thể tái sử dụng để kiểm soát truy cập dựa trên quyền hạn.

Proyecta Commerce sử dụng ba khái niệm: sản phẩm, biến thể, và tính năng.

  • Sản phẩm — thứ bạn bán (ví dụ: “Pro Plan”, “Áo thun”, “Buổi tư vấn chiến lược”)
  • Biến thể — một mức giá hoặc cấu hình của sản phẩm (ví dụ: “Pro Hàng tháng $29”, “Pro Hàng năm $290”, “Áo thun – Cỡ L”)
  • Tính năng — một khóa quyền hạn có thể tái sử dụng mà ứng dụng của bạn kiểm tra lúc chạy (ví dụ: pro_features, unlimited_projects, api_access)

Một sản phẩm có thể có nhiều biến thể. Một sản phẩm cũng có một hoặc nhiều tài nguyên được đính kèm — thường là các tính năng — cấp quyền truy cập khi khách hàng đăng ký.

Commerce tích hợp liền mạch với phần còn lại của nền tảng, vì vậy có hai dạng cho “thứ bạn bán” — và Proyecta sẽ tự động chọn dạng phù hợp cho bạn:

  • Sản phẩm Commerce thuần túy — đăng ký, gói dịch vụ, nâng cấp một lần, và tính năng/quyền hạn. Được định nghĩa trực tiếp trong Admin > Commerce > Products. Đây là mô hình mà phần còn lại của trang này mô tả.
  • Danh mục cửa hàng dựa trên nội dung — hàng hóa có ảnh, giá cả và mô tả mà chủ doanh nghiệp chỉnh sửa hàng ngày. Chúng được lưu trong CMS dưới dạng sellable collection: mỗi mục chính là sản phẩm. Khi một mục được xuất bản, Proyecta tự động tích hợp nó vào Commerce như một sản phẩm thực sự có thể mua được — tạo sản phẩm và biến thể đã định giá cho bạn, đồng thời sao chép giá trực tiếp từ trường nội dung. Storefront hiển thị giá từ nội dung và checkout tính phí theo biến thể được liên kết; vì chúng dùng chung một nguồn nên không bao giờ bị lệch nhau. Bạn quản lý các mục này như nội dung (trong Admin của ứng dụng, trong builder hoặc trên site đã xuất bản), không phải trong Commerce > Products. Xem Quản lý nội dung.

Một danh mục thông thường không nhận thanh toán bằng thẻ — menu chỉ để xem, hoặc cửa hàng có nút “mua” dẫn đến link đặt hàng qua WhatsApp — chỉ là nội dung bình thường — một catalog collection thông thường, không có Commerce weave. Thanh toán bằng thẻ mới là yếu tố tạo nên một collection có thể bán được.

Trong Admin > Commerce > Products, nhấp vào Create product (hoặc hỏi AI: "Create a Pro plan at $29/month and a Business plan at $99/month."). Mỗi sản phẩm cần có:

  • Một tên hiển thị (ví dụ: “Pro”)
  • Ít nhất một biến thể

Mỗi biến thể có thông tin giá riêng:

Trường Ghi chú
name Nhãn hiển thị cho biến thể (“Monthly”, “Annual”, “Large”)
currency Mã ISO ba chữ cái — USD, EUR, GBP, JPY, BRL, MXN, INR… (hỗ trợ 130+ loại)
unit_amount Giá theo đơn vị tiền tệ nhỏ nhất (cents). 2900 = $29.00
recurring Tùy chọn — { interval: 'week' | 'month' | 'year' }. Bỏ qua cho giá một lần. Thanh toán hàng ngày hiện chưa được hỗ trợ.
is_default Được chấp nhận nhưng chưa được áp dụng — lựa chọn biến thể mặc định hiện chưa được triển khai.
media Đính kèm hình ảnh hoặc video theo CDN file ID (xem Files)

Giá không thể thay đổi. Sau khi biến thể được tạo, giá của nó không thể thay đổi — hãy tạo biến thể mới thay thế. Điều này bảo vệ những người đã đăng ký khỏi các thay đổi giá không mong muốn.

Tính năng là đơn vị nguyên thủy để kiểm soát truy cập. Tạo một tính năng một lần trong Admin > Commerce > Products, sau đó đính kèm nó vào một hoặc nhiều sản phẩm. Mỗi tính năng có tên, mô tả tùy chọn và một khóa — gồm chữ thường, số và dấu gạch dưới (ví dụ: pro_features) — đây là thứ ứng dụng của bạn dùng để kiểm tra.

Khi bạn tạo sản phẩm, bạn đính kèm các tính năng vào nó thông qua “resources”. Khách hàng đăng ký một sản phẩm sẽ được cấp quyền truy cập vào mọi tính năng được đính kèm vào sản phẩm đó.

Sau đó, trong ứng dụng của bạn, hãy kiểm tra quyền truy cập bằng khóa đó:

const { hasAccess, isLoading } = useEntitlement('pro_features');
if (isLoading) return <Spinner />;
if (!hasAccess) return <UpgradePrompt />;
return <ProOnlyThing />;

Kiểm tra được thực thi phía server dựa trên phiên đăng nhập, nên không thể bị giả mạo từ browser. Xem Tích hợp Commerce vào ứng dụng của tôi để biết toàn bộ quy trình.

Lưu ý: Luôn kiểm tra quyền truy cập dựa trên khóa của tính năng — slug được tạo từ tên tính năng (ví dụ: pro_features) — không phải ID nội bộ của tính năng.

Đây là cách bạn giới hạn truy cập vào các trang, API endpoint, hoặc tính năng chỉ dành cho gói Pro trong code ứng dụng.

Đăng ký SaaS

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.

Hàng vật lý

Create a T-shirt product with three variants: Small, Medium, Large at $25 each.

Hàng số

Create a course product with a single one-time variant at $149.

Quyên góp

Create a donation product with three variants: $25, $50, $100 — all one-time.

Proyecta Commerce hiện chưa theo dõi tồn kho cho sản phẩm vật lý. Nếu bạn bán hàng có giới hạn số lượng, hãy quản lý số lượng tồn kho trong database của ứng dụng và kiểm tra trong luồng checkout.

  • Tùy chỉnh trường checkout — thu thập thêm thông tin từ người mua
  • Giá tùy ý người dùng
  • Theo dõi tồn kho tích hợp cho sản phẩm vật lý