Concepts, value, and typical clone scenarios — less code.
Concepts, value, and typical clone scenarios — less code.
Preparing Ring Platform content
Preparing Ring Platform content
Preparing Ring Platform content
Ring Platform ships a multi-vendor marketplace where any verified Entity can operate a store, list products, and earn through automated commission settlements. Vendors enrich catalog copy with Agent Knowledge Research — WebConductor web research into structured fields, productAgent markdown, Admin Wiki NODUS, and File Cabinet alt images — then opt media into the product gallery explicitly.
Use the Founder / Developer tabs in the docs sidebar to filter this page by audience. Pipeline names live in scripts/PIPELINES.md (store.web_conductor.research_populate).
Every Entity in your Ring deployment can become a selling vendor — no external marketplace needed. The store generates platform revenue through tier-based commission rates (NEW → BASIC → VERIFIED → TRUSTED → PREMIUM, descending from 20% to 12%) on every sale. Vendors catalogue themselves; operators review submissions and settle commissions.
Onboard entities as vendors at /vendor/start. Trust scoring, tier progression, and suspension workflows are automated.
On create/edit product forms: Research → fields + markdown + wiki NODUS + cabinet alt images. Use in gallery is explicit — nothing silently replaces the primary photo.
Tier-based commissions per sale. Admin dashboard at /admin/store/commissions shows pending payouts with referral breakdowns.
Mark products member-only. Non-members see public products only (hasMemberPrivileges()).
dagi_research_product returns the same suggested fields / research media / cabinet path for the bound vendor.Storefront product agent chats use Conversation.type: 'product' and stay visible in Messages. Generative Gallery tool chats reuse the product channel with kind: 'generative_gallery' and hiddenFromInbox: true — see Messaging and Generative Gallery.
Same-workflow: research images land under store/product/alt; Image/Video chat enhances siblings.
Next-step: Generative Gallery Upload \| Generate on product forms and cabinet scope.
Depends-on: Research writes product NODUS pages into the tenant wiki vault.
Next-step: ERP hub for stock invariant, commitSale, and settlements cockpit.
Ring Platform ships a multi-vendor marketplace where any verified Entity can operate a store, list products, and earn through automated commission settlements. Vendors enrich catalog copy with Agent Knowledge Research — WebConductor web research into structured fields, productAgent markdown, Admin Wiki NODUS, and File Cabinet alt images — then opt media into the product gallery explicitly.
Use the Founder / Developer tabs in the docs sidebar to filter this page by audience. Pipeline names live in scripts/PIPELINES.md (store.web_conductor.research_populate).
Every Entity in your Ring deployment can become a selling vendor — no external marketplace needed. The store generates platform revenue through tier-based commission rates (NEW → BASIC → VERIFIED → TRUSTED → PREMIUM, descending from 20% to 12%) on every sale. Vendors catalogue themselves; operators review submissions and settle commissions.
Onboard entities as vendors at /vendor/start. Trust scoring, tier progression, and suspension workflows are automated.
On create/edit product forms: Research → fields + markdown + wiki NODUS + cabinet alt images. Use in gallery is explicit — nothing silently replaces the primary photo.
Tier-based commissions per sale. Admin dashboard at /admin/store/commissions shows pending payouts with referral breakdowns.
Mark products member-only. Non-members see public products only (hasMemberPrivileges()).
dagi_research_product returns the same suggested fields / research media / cabinet path for the bound vendor.Storefront product agent chats use Conversation.type: 'product' and stay visible in Messages. Generative Gallery tool chats reuse the product channel with kind: 'generative_gallery' and hiddenFromInbox: true — see Messaging and Generative Gallery.
Same-workflow: research images land under store/product/alt; Image/Video chat enhances siblings.
Next-step: Generative Gallery Upload \| Generate on product forms and cabinet scope.
Depends-on: Research writes product NODUS pages into the tenant wiki vault.
Next-step: ERP hub for stock invariant, commitSale, and settlements cockpit.
Ring Platform ships a multi-vendor marketplace where any verified Entity can operate a store, list products, and earn through automated commission settlements. Vendors enrich catalog copy with Agent Knowledge Research — WebConductor web research into structured fields, productAgent markdown, Admin Wiki NODUS, and File Cabinet alt images — then opt media into the product gallery explicitly.
Use the Founder / Developer tabs in the docs sidebar to filter this page by audience. Pipeline names live in scripts/PIPELINES.md (store.web_conductor.research_populate).
Every Entity in your Ring deployment can become a selling vendor — no external marketplace needed. The store generates platform revenue through tier-based commission rates (NEW → BASIC → VERIFIED → TRUSTED → PREMIUM, descending from 20% to 12%) on every sale. Vendors catalogue themselves; operators review submissions and settle commissions.
Onboard entities as vendors at /vendor/start. Trust scoring, tier progression, and suspension workflows are automated.
On create/edit product forms: Research → fields + markdown + wiki NODUS + cabinet alt images. Use in gallery is explicit — nothing silently replaces the primary photo.
Tier-based commissions per sale. Admin dashboard at /admin/store/commissions shows pending payouts with referral breakdowns.
Mark products member-only. Non-members see public products only (hasMemberPrivileges()).
dagi_research_product returns the same suggested fields / research media / cabinet path for the bound vendor.Storefront product agent chats use Conversation.type: 'product' and stay visible in Messages. Generative Gallery tool chats reuse the product channel with kind: 'generative_gallery' and hiddenFromInbox: true — see Messaging and Generative Gallery.
Same-workflow: research images land under store/product/alt; Image/Video chat enhances siblings.
Next-step: Generative Gallery Upload \| Generate on product forms and cabinet scope.
Depends-on: Research writes product NODUS pages into the tenant wiki vault.
Next-step: ERP hub for stock invariant, commitSale, and settlements cockpit.
files/research-{runId}.md| Actions | app/_actions/product-agent-research.ts | researchProductAgentAction, researchProductDraftAction, saveProductAgentKnowledgeAction |
| UI | features/store/components/product-agent-knowledge-section.tsx | Create + edit; Use in gallery explicit |
| Wiki helper | features/store/lib/product-nodus-wiki.ts | createProductNodusWikiFromDraft → tenant Admin Wiki |
| DAGI | features/store/services/dagi-erp-tools.ts | dagi_research_product → suggestedFields / researchMedia / cabinetPath / skippedImages |
| Schema notes | AI-LEGIOX/legiox-truth-lens/AGENT-PRODUCT-SCHEMA.md | § photo / research generator steps |
| Pipeline | scripts/PIPELINES.md | store.web_conductor.research_populate |
Auth: vendor entity owner or platform admin (resolveResearchVendor + ownership check). Draft research (no product id yet) uses researchProductDraftAction and still writes cabinet artifacts under the vendor owner.
Gallery rule: research media is never auto-merged as primary. Operators must click Use in gallery.
getCachedProductCatalog() in features/store/config.ts ('use cache' + cacheTag('store:products')). Consumers: app/api/store/products/route.ts, getStoreProducts in app/_actions/store-products.ts, MCP app/api/mcp/v1/store/products/route.ts. Invalidate with updateTag('store:products') after create.
features/store/context.tsx mounts StoreProvider globally but defers the catalog network call until pathname includes /store or cart items exist in localStorage (single-flight fetch).
| Route | Purpose | Auth |
|---|---|---|
/vendor/start | Vendor onboarding | Subscriber+ |
/vendor/products | Vendor product CRUD + Agent Knowledge | Vendor entity owner |
/admin/store/products | Product approval queue (same form) | Platform admin |
/admin/store/commissions | Commission settlements | Platform admin |
/store | Public storefront + audience filter | Public |
Vendor selects a category on the product form.
Adds name+value parameters (“Add product parameter”).
Persists via createProductCustomField() in app/_actions/vendor-actions.ts (ownership-guarded).
Products with productAudience: 'member' are hidden unless isAdmin || hasMemberPrivileges(currentRole) in app/_actions/store-products.ts.
| Module | Purpose |
|---|---|
features/store/config.ts | Adapter + cached catalog SSOT |
features/store/context.tsx | Deferred client catalog + cart |
features/store/services/vendor-lifecycle.ts | Vendor profile + tiers |
features/store/services/settlement.ts | Commission calculation |
lib/web/conductor/web-conductor.ts | Web product research |
features/store/lib/product-cabinet-media.ts | Research → File Cabinet alt |
app/_actions/product-agent-research.ts | Research / draft / save knowledge |
app/_actions/vendor-actions.ts | Vendor product CRUD + research form fields |
app/_actions/admin-store-erp.ts | Admin product path + Agent Knowledge hidden fields |
features/auth/user-role.ts | hasMemberPrivileges() |
Deep-dive: reserve → commitSaleForOrder → cancel/refund restore.
files/research-{runId}.md| Actions | app/_actions/product-agent-research.ts | researchProductAgentAction, researchProductDraftAction, saveProductAgentKnowledgeAction |
| UI | features/store/components/product-agent-knowledge-section.tsx | Create + edit; Use in gallery explicit |
| Wiki helper | features/store/lib/product-nodus-wiki.ts | createProductNodusWikiFromDraft → tenant Admin Wiki |
| DAGI | features/store/services/dagi-erp-tools.ts | dagi_research_product → suggestedFields / researchMedia / cabinetPath / skippedImages |
| Schema notes | AI-LEGIOX/legiox-truth-lens/AGENT-PRODUCT-SCHEMA.md | § photo / research generator steps |
| Pipeline | scripts/PIPELINES.md | store.web_conductor.research_populate |
Auth: vendor entity owner or platform admin (resolveResearchVendor + ownership check). Draft research (no product id yet) uses researchProductDraftAction and still writes cabinet artifacts under the vendor owner.
Gallery rule: research media is never auto-merged as primary. Operators must click Use in gallery.
getCachedProductCatalog() in features/store/config.ts ('use cache' + cacheTag('store:products')). Consumers: app/api/store/products/route.ts, getStoreProducts in app/_actions/store-products.ts, MCP app/api/mcp/v1/store/products/route.ts. Invalidate with updateTag('store:products') after create.
features/store/context.tsx mounts StoreProvider globally but defers the catalog network call until pathname includes /store or cart items exist in localStorage (single-flight fetch).
| Route | Purpose | Auth |
|---|---|---|
/vendor/start | Vendor onboarding | Subscriber+ |
/vendor/products | Vendor product CRUD + Agent Knowledge | Vendor entity owner |
/admin/store/products | Product approval queue (same form) | Platform admin |
/admin/store/commissions | Commission settlements | Platform admin |
/store | Public storefront + audience filter | Public |
Vendor selects a category on the product form.
Adds name+value parameters (“Add product parameter”).
Persists via createProductCustomField() in app/_actions/vendor-actions.ts (ownership-guarded).
Products with productAudience: 'member' are hidden unless isAdmin || hasMemberPrivileges(currentRole) in app/_actions/store-products.ts.
| Module | Purpose |
|---|---|
features/store/config.ts | Adapter + cached catalog SSOT |
features/store/context.tsx | Deferred client catalog + cart |
features/store/services/vendor-lifecycle.ts | Vendor profile + tiers |
features/store/services/settlement.ts | Commission calculation |
lib/web/conductor/web-conductor.ts | Web product research |
features/store/lib/product-cabinet-media.ts | Research → File Cabinet alt |
app/_actions/product-agent-research.ts | Research / draft / save knowledge |
app/_actions/vendor-actions.ts | Vendor product CRUD + research form fields |
app/_actions/admin-store-erp.ts | Admin product path + Agent Knowledge hidden fields |
features/auth/user-role.ts | hasMemberPrivileges() |
Deep-dive: reserve → commitSaleForOrder → cancel/refund restore.
files/research-{runId}.md| Actions | app/_actions/product-agent-research.ts | researchProductAgentAction, researchProductDraftAction, saveProductAgentKnowledgeAction |
| UI | features/store/components/product-agent-knowledge-section.tsx | Create + edit; Use in gallery explicit |
| Wiki helper | features/store/lib/product-nodus-wiki.ts | createProductNodusWikiFromDraft → tenant Admin Wiki |
| DAGI | features/store/services/dagi-erp-tools.ts | dagi_research_product → suggestedFields / researchMedia / cabinetPath / skippedImages |
| Schema notes | AI-LEGIOX/legiox-truth-lens/AGENT-PRODUCT-SCHEMA.md | § photo / research generator steps |
| Pipeline | scripts/PIPELINES.md | store.web_conductor.research_populate |
Auth: vendor entity owner or platform admin (resolveResearchVendor + ownership check). Draft research (no product id yet) uses researchProductDraftAction and still writes cabinet artifacts under the vendor owner.
Gallery rule: research media is never auto-merged as primary. Operators must click Use in gallery.
getCachedProductCatalog() in features/store/config.ts ('use cache' + cacheTag('store:products')). Consumers: app/api/store/products/route.ts, getStoreProducts in app/_actions/store-products.ts, MCP app/api/mcp/v1/store/products/route.ts. Invalidate with updateTag('store:products') after create.
features/store/context.tsx mounts StoreProvider globally but defers the catalog network call until pathname includes /store or cart items exist in localStorage (single-flight fetch).
| Route | Purpose | Auth |
|---|---|---|
/vendor/start | Vendor onboarding | Subscriber+ |
/vendor/products | Vendor product CRUD + Agent Knowledge | Vendor entity owner |
/admin/store/products | Product approval queue (same form) | Platform admin |
/admin/store/commissions | Commission settlements | Platform admin |
/store | Public storefront + audience filter | Public |
Vendor selects a category on the product form.
Adds name+value parameters (“Add product parameter”).
Persists via createProductCustomField() in app/_actions/vendor-actions.ts (ownership-guarded).
Products with productAudience: 'member' are hidden unless isAdmin || hasMemberPrivileges(currentRole) in app/_actions/store-products.ts.
| Module | Purpose |
|---|---|
features/store/config.ts | Adapter + cached catalog SSOT |
features/store/context.tsx | Deferred client catalog + cart |
features/store/services/vendor-lifecycle.ts | Vendor profile + tiers |
features/store/services/settlement.ts | Commission calculation |
lib/web/conductor/web-conductor.ts | Web product research |
features/store/lib/product-cabinet-media.ts | Research → File Cabinet alt |
app/_actions/product-agent-research.ts | Research / draft / save knowledge |
app/_actions/vendor-actions.ts | Vendor product CRUD + research form fields |
app/_actions/admin-store-erp.ts | Admin product path + Agent Knowledge hidden fields |
features/auth/user-role.ts | hasMemberPrivileges() |
Deep-dive: reserve → commitSaleForOrder → cancel/refund restore.