커머스 시작하기
Commerce Plugin은 multi-saas-kit에 기본 내장된 전자상거래 모듈입니다. 상품 등록, 옵션(Variant) 관리, 장바구니, 주문 처리 등을 제공합니다.
기본 활성화
# .env (기본값: true)
PLG_COMMERCE_ENABLED=true
접속 URL
관리자 (Filament)
| 패널 | URL | 역할 |
|---|---|---|
| Platform | /platform/products, /platform/orders | 전체 상품/주문 관리 |
| SaaS | /saas/products, /saas/orders | SaaS 소속 상품/주문 |
| Tenant | /tenant/{slug}/products, /tenant/{slug}/orders | 자기 테넌트 |
사용자 (프론트엔드)
| 페이지 | URL |
|---|---|
| 상품 목록 | /shop |
| 상품 상세 | /shop/{slug} |
| 장바구니 | /shop/cart |
| 주문하기 | /shop/checkout (POST) |
| 주문내역 | /shop/orders |
| 주문 상세 | /shop/orders/{order_number} |
DB 테이블
| 테이블 | 설명 |
|---|---|
plg_commerce_products | 상품 (이름, 가격, SKU, 재고, 상태) |
plg_commerce_product_variants | 옵션 상품 판매 단위 (색상/사이즈별 가격/재고) |
plg_commerce_orders | 주문 (주문번호, 3분리 상태, 금액 스냅샷, 배송 정보) |
plg_commerce_order_items | 주문 항목 (상품명/가격 스냅샷 — 변경 불가) |
plg_commerce_carts | 장바구니 |
plg_commerce_cart_items | 장바구니 항목 |
핵심 설계 원칙
| 원칙 | 설명 |
|---|---|
| float 금지 | 모든 금액은 numeric(12,2) — 부동소수점 오차 방지 |
| Product ≠ Variant | 상품(마스터)과 판매 단위(SKU)를 분리 |
| 주문 스냅샷 | 주문 시점의 상품명/가격을 order_items에 복사 — 원본 변경 무관 |
| 상태 3분리 | order_status + payment_status + fulfillment_status |
| soft delete | 주문/결제 데이터는 삭제하지 않고 보관 |