Skip to main content

Commerce

A light-tier commerce plugin for service-oriented SaaS products. It standardizes products, orders, one-time and recurring payments, invoices, refunds, coupons, and payment history. Use LunarCommerce when you need complex variants, SKUs, shipping, inventory, or marketplaces.

Status​

KeyValue
Layerexisting
TierBusiness
Statusreleased
Version1.15.1
PriceFree (one_time)
CategoryCommerce & Billing

Key Features​

  • User/SaaS/Tenant-isolated billing-token subscriptions
  • Atomic, idempotent webhook ledger and provider-managed subscriptions
  • One-time payments, virtual accounts, receipts, and refunds through PG adapters such as Smartro
  • A PG review required marker and approval-void recovery when local validation rejects an already approved PG transaction
  • Site-operator alerts that distinguish ordinary external PG failures from approved transactions requiring reconciliation
  • SaaS/Tenant administration with Korean, English, Japanese, and Chinese UI

PG-Approved, Locally Rejected Recovery​

If the PG approves a transaction but order number, amount, MID, signature, or channel validation fails, Commerce does not mark the order as paid. It preserves the approval TID and amount and displays PG review required in the administration UI.

An operator can use Void PG approval to cancel only the residual PG approval. This is separate from refunding a successfully recorded payment and requires step-up authentication with an audit record.

Operator Alerts for PG Payment Failures​

Ordinary external PG failures can be sent to site operators through email, webhook, Telegram, or Kakao Alimtalk. This event is disabled by default and must be enabled for each site.

  1. Open Site Settings > Operator Alerts in the administration panel and register a channel.
  2. Enable PG payment failed (operator.payment_failed).
  3. Select the delivery channels, save the settings, and verify them with a test delivery.

Insufficient wallet balance and a customer closing the payment window do not produce this event. If the PG approved the transaction but local validation rejected it, Commerce sends only PG approval requires review (operator.payment_unreconciled) so the same transaction is not reported twice.

The ordinary failure alert contains only the site name, order number, gateway, amount, currency, normalized error code, and reason. It excludes the raw PG response, TID, signature values, and billing tokens. Each channel retries independently, so a temporary failure on one channel does not block the others.

Out of Scope​

Complex variants, SKUs, shipping, inventory, reviews, wishlists, marketplaces, and B2B quotes are out of scope. Use LunarCommerce for those scenarios.

License​

MIT


πŸ›’ View on Plugin Store: store.codebase.how/plugins/commerce