Concepts, value, and typical clone scenarios — less code.
Concepts, value, and typical clone scenarios — less code.
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Ring ERP is the operator cockpit over the multi-vendor store: warehouse stock, checkout holds, paid-sale commit, and the vendor settlements ledger. It does not invent a second stock system — it extends ERPStockService, inventory-sync, and PaymentConductor paid handlers.
Use the docs sidebar Founder / Developer tabs to filter this page. Affiliate token minting stays on Affiliate enablement / Refcodes — ERP owns stock + the settlements ledger + hub UI.
Locked invariant, checkout reserve, commitSaleForOrder, cancel/refund restore.
Settlements ledger, hold/release, dry-run payouts, referral rates.
Vendor lifecycle, stock ownership, earnings surfaces.
Catalog, cart, checkout — ERP reacts after payment.
| Surface | Route | Day-1 job |
|---|---|---|
| Store hub overview | /admin/store | Stock summary + pending settlements at a glance |
| Products / Orders | /admin/store/products, /admin/store/orders | Catalog approval and fulfillment status |
| Stock | /admin/store/stock | Low-stock filters, reason-coded restock, movement timeline |
| Commissions | /admin/store/commissions | Hold/release, dry-run due payouts, then process |
| Vendor stock | /vendor/stock | Own-product restock (bulk), low-stock badges |
| Vendor earnings |
/admin/store tabs + vendor pages + EN ERP docs.Deep-dive: stock invariant, reserve, commitSaleForOrder, cancel/refund.
Same-workflow: settlements ledger after paid commit.
Depends-on: PaymentConductor remains payment SSOT; ERP reacts to paid/refund.
Prerequisite: multi-vendor catalog and checkout before ERP ops.
Ring ERP is the operator cockpit over the multi-vendor store: warehouse stock, checkout holds, paid-sale commit, and the vendor settlements ledger. It does not invent a second stock system — it extends ERPStockService, inventory-sync, and PaymentConductor paid handlers.
Use the docs sidebar Founder / Developer tabs to filter this page. Affiliate token minting stays on Affiliate enablement / Refcodes — ERP owns stock + the settlements ledger + hub UI.
Locked invariant, checkout reserve, commitSaleForOrder, cancel/refund restore.
Settlements ledger, hold/release, dry-run payouts, referral rates.
Vendor lifecycle, stock ownership, earnings surfaces.
Catalog, cart, checkout — ERP reacts after payment.
| Surface | Route | Day-1 job |
|---|---|---|
| Store hub overview | /admin/store | Stock summary + pending settlements at a glance |
| Products / Orders | /admin/store/products, /admin/store/orders | Catalog approval and fulfillment status |
| Stock | /admin/store/stock | Low-stock filters, reason-coded restock, movement timeline |
| Commissions | /admin/store/commissions | Hold/release, dry-run due payouts, then process |
| Vendor stock | /vendor/stock | Own-product restock (bulk), low-stock badges |
| Vendor earnings |
/admin/store tabs + vendor pages + EN ERP docs.Deep-dive: stock invariant, reserve, commitSaleForOrder, cancel/refund.
Same-workflow: settlements ledger after paid commit.
Depends-on: PaymentConductor remains payment SSOT; ERP reacts to paid/refund.
Prerequisite: multi-vendor catalog and checkout before ERP ops.
Ring ERP is the operator cockpit over the multi-vendor store: warehouse stock, checkout holds, paid-sale commit, and the vendor settlements ledger. It does not invent a second stock system — it extends ERPStockService, inventory-sync, and PaymentConductor paid handlers.
Use the docs sidebar Founder / Developer tabs to filter this page. Affiliate token minting stays on Affiliate enablement / Refcodes — ERP owns stock + the settlements ledger + hub UI.
Locked invariant, checkout reserve, commitSaleForOrder, cancel/refund restore.
Settlements ledger, hold/release, dry-run payouts, referral rates.
Vendor lifecycle, stock ownership, earnings surfaces.
Catalog, cart, checkout — ERP reacts after payment.
| Surface | Route | Day-1 job |
|---|---|---|
| Store hub overview | /admin/store | Stock summary + pending settlements at a glance |
| Products / Orders | /admin/store/products, /admin/store/orders | Catalog approval and fulfillment status |
| Stock | /admin/store/stock | Low-stock filters, reason-coded restock, movement timeline |
| Commissions | /admin/store/commissions | Hold/release, dry-run due payouts, then process |
| Vendor stock | /vendor/stock | Own-product restock (bulk), low-stock badges |
| Vendor earnings |
/admin/store tabs + vendor pages + EN ERP docs.Deep-dive: stock invariant, reserve, commitSaleForOrder, cancel/refund.
Same-workflow: settlements ledger after paid commit.
Depends-on: PaymentConductor remains payment SSOT; ERP reacts to paid/refund.
Prerequisite: multi-vendor catalog and checkout before ERP ops.
/vendor/earnings |
Pending + history from settlements |
available). A second checkout cannot take reserved stock.Default warehouse label is zero-warehouse (store id 1). Nova Poshta pickup points in shipping APIs are not ERP warehouses.
Shipped (hub P0): stock invariant, commitSaleForOrder, admin hub landing, stock/commissions depth, vendor ownership on restock.
| Admin actions | app/_actions/admin-store-erp.ts | Init stock, hold/release, dry-run, adjust |
| Paid handlers | lib/payments/conductor/handlers/store-order*.ts + credit/token routes | Call commitSaleForOrder |
Invariant: store_products.stock === inventory_levels.available + inventory_levels.reserved · sellable = available.
ProcessConductor owns TTL cleanup (cleanup-reservations) and settlement-payout cron — do not duplicate.
See-also: dual-rail referral — ERP ledger vs refcodes token rewards.
/vendor/earnings |
Pending + history from settlements |
available). A second checkout cannot take reserved stock.Default warehouse label is zero-warehouse (store id 1). Nova Poshta pickup points in shipping APIs are not ERP warehouses.
Shipped (hub P0): stock invariant, commitSaleForOrder, admin hub landing, stock/commissions depth, vendor ownership on restock.
| Admin actions | app/_actions/admin-store-erp.ts | Init stock, hold/release, dry-run, adjust |
| Paid handlers | lib/payments/conductor/handlers/store-order*.ts + credit/token routes | Call commitSaleForOrder |
Invariant: store_products.stock === inventory_levels.available + inventory_levels.reserved · sellable = available.
ProcessConductor owns TTL cleanup (cleanup-reservations) and settlement-payout cron — do not duplicate.
See-also: dual-rail referral — ERP ledger vs refcodes token rewards.
/vendor/earnings |
Pending + history from settlements |
available). A second checkout cannot take reserved stock.Default warehouse label is zero-warehouse (store id 1). Nova Poshta pickup points in shipping APIs are not ERP warehouses.
Shipped (hub P0): stock invariant, commitSaleForOrder, admin hub landing, stock/commissions depth, vendor ownership on restock.
| Admin actions | app/_actions/admin-store-erp.ts | Init stock, hold/release, dry-run, adjust |
| Paid handlers | lib/payments/conductor/handlers/store-order*.ts + credit/token routes | Call commitSaleForOrder |
Invariant: store_products.stock === inventory_levels.available + inventory_levels.reserved · sellable = available.
ProcessConductor owns TTL cleanup (cleanup-reservations) and settlement-payout cron — do not duplicate.
See-also: dual-rail referral — ERP ledger vs refcodes token rewards.