English source · 33 min
Veyndo Commerce feature guide
Build a shop, work with an agent, design the storefront and create apps on the same native commerce foundation. This guide follows the storefront, Studio, App Studio and the separate operator console.
Current status · Try a complete round · Watch the product films · Build five apps
Interface media refreshed 2 November 2026. The screenshots below show the current compiled Rust/Studio product in an isolated local shop with fictional people, products and orders. The animated examples are edited sequences of those actual browser screenshots, with reading holds. They are not response-time measurements. Purchases use simulated payments; the register sale uses fictional cash. The design and app-agent panels are shown without making a model call. Capture details and static animation frames.
Public provider acceptance and dated deployment evidence remain in current status. Historical reports retain their original dates.

Find your feature
| Area | What is included | Start here |
|---|---|---|
| Shopping | Fashion catalog, categories, variants, media, prices, reviews, customer accounts and checkout | Storefront |
| Catalog | Unified editor tabs, rich descriptions, translations, variants, image galleries, 3D models and materials, categories, downloads and history | Products |
| Operations | CRM, addresses, customer groups, order workflows, delivery, payments and immutable PDFs | Customers and orders |
| Intelligence | Reviewed proposals, private/published knowledge, retrieval, recommendations, translations and image drafts | Intelligence |
| Processes | Saved rules, coupons, campaigns, graphical branches, durable delays and app actions | Rules and flows |
| Experiences | Sales channels, inherited settings, Storyfront checkout transfer and hosted private frontends | Channels |
| Extensions | Bundled apps, visual App Studio, typed data, SDK surfaces, services, webhooks, schedules and Wasm | Apps |
| Control | Team rights, scoped API keys, private stages, selected releases, shop administration and diagnostics | Workspace · Platform |
| European operation | Consent gates, channel legal documents, sector facts, guarded checkout and durable consumer requests | European operation |
| Foundation | Shared HTTP/MCP/UCP operations, transactional storage, independent workers and bounded verification | Core |
Marketplace channels
Marketplace Studio supports Amazon, eBay and Kaufland through an independent Rust app. It adds seller connections, per-channel translated offer/media/field/price overrides, automatic standard mapping previews, native leased synchronization jobs and a private review inbox. Verified paid source snapshots become native customer/orders/stock and shared invoices; seller credentials stay server-side. Live seller onboarding, category schema automation, stock propagation and fulfillment/refund write-back remain explicit limits. Walkthrough, provider contracts, ownership and tests.
Storefront and shopping
Nord Atelier: the current demo catalog
New demo shops use Nord Atelier, a fictional capsule collection with 12 parent products, 34 purchasable SKUs, seven categories and 136 product translations. Clothing has S/M/L sizes, sneakers have EU 38–42, and accessories use one-size options. English, German, Spanish and French names and descriptions are supplied. Twelve generated WebP product photographs are shipped with the repository; no image-provider call is needed to browse them.
The collection includes a coat, knit, shirt, trousers, dress, blazer, T-shirt, jeans, skirt, sneakers, leather tote and scarf. Categories and product search use the actual catalog. Larger lists use bounded pages rather than downloading every product. Existing shop edits survive reseeding. The earlier furniture catalog remains an explicitly selected compatibility fixture; its mug/lamp screenshots are historical examples. Catalog contents and seeding rules.

Product detail, variants and quantity
A product page combines its gallery, localized description, manufacturer/properties, variant choices, current SKU, stock, price, delivery information, reviews and product questions. Selecting a size resolves a real purchasable product with its own inventory; missing combinations and unavailable stock cannot become valid purchases through a browser choice. Merchant-configured galleries can contain multiple images; the default fashion fixture supplies one photograph per product.
Quantity minimums, steps, maximums and customer-group tiers feed the same server calculator used by the cart. Configured list/regulation/reference prices and eligible discounts are product pricing features, rather than a second browser calculator. Consumers and authenticated business customers can receive different configured prices and tax display. Channel, country and customer context affect availability.

Edited UI sequence: size M, the real size L SKU and the resulting checkout. Static frames are linked in the capture inventory.
Reviews, recommendations and product questions
Submitted reviews start pending. Studio exposes publication/hiding controls; public ratings count only published reviews. A verified-purchase flag is derived from an actual completed customer purchase, not a shopper-supplied checkbox. Cross-selling uses configured same-shop products. Merchant-approved co-purchase associations can supply recommendations without exposing private customer identities.
Ask VEYNDO and product questions use eligible catalog facts and explicitly published sources when a model is configured. Missing facts and provider failures remain visible. These controls do not imply a model is included in every installation, and the source-retrieval test below can be used without inference. Personalization has a shopper toggle; its bounded session affinity and persisted discovery/comparison policy change retrieval/layout selection, not model weights or proven sales uplift. Intelligence contracts.
One-page checkout
The bag opens one checkout containing guest/sign-in/account entry, contact, separate billing/delivery addresses, optional company details, shipping choices, payment choices, coupon entry and the order summary. Product images, quantities, discounts, shipping, tax and total come from the server quote. Changing address or methods invalidates a previous review; input drafts remain available.
Review order confirms the authoritative quote. Place order is a separate explicit action bound to its revision and amount. Concurrent retries use a stable idempotency key and return the original order; they cannot quietly charge a changed total. Checkout locks the selected inventory and stores immutable product, customer, address and method snapshots.

Edited UI sequence: fictional contact details, authoritative quote review and the saved simulated order. Standard delivery is free for this configured order value. No real money is charged.
Demo payment simulates authorization; bank transfer/invoice use manual states and their configured eligibility. The native PayPal Orders v2 adapter supports configured Sandbox/Live accounts, provider approval, durable capture/refund attempts and webhook verification. A verified approval queues capture automatically; a browser return alone is not proof of payment. Pending/uncertain outcomes require reconciliation, not a repeated purchase. The private Shopware Payments connector is still a separate requirement. Checkout behavior and payment boundaries.
Customer accounts and downloads
Customer identities are separate from Studio users. Accounts support registration/sign-in, personal/contact fields, preferred payment method, an address book with independent billing/delivery defaults, password change, logout and own order history. A typed guest email does not authenticate an existing account or grant access to its previous orders.
Historical orders without an immutable customer-ID binding remain unassigned to accounts, including after registration with a matching email. CRM lookup still requires current merchant/PII rights; paid guest downloads use the exact original cart proof. Email matching never grants old order/PDF/file ownership.
Paid digital files become available through purchase entitlements. Orders pin immutable asset IDs; replacing or withdrawing a public file does not silently replace the purchased bytes. Full refunds revoke relevant access; partial refunds retain it. All-digital carts omit physical shipping; mixed carts calculate it for physical items. Recovery, verified email/email changes and complete account export/erasure remain additional work. Customer and download contracts.
VEYNDO Studio
The sidebar groups 15 workspaces. The shell provides a shop switcher, live/private-stage selector, English/German/French/Spanish interface language, theme toggle, refresh, conversation entry and storefront access. Content editors use the shop's enabled content languages, which can extend beyond the four interface languages.
| Group | Workspace | Purpose |
|---|---|---|
| Intelligence | Assistant | Persistent conversations and reviewed changes |
| Intelligence | Shop today | Actual orders, value, inventory, activity and review counts |
| Intelligence | Shop intelligence | Sources, connections, observations and decisions |
| Intelligence | Agent commerce | Public shopping journey, adapters and connection boundaries |
| Commerce | Products | Product list, eleven editor tabs and category tree |
| Commerce | Orders | Workflow, payment, fulfillment, documents and notes |
| Commerce | Customers | Profiles, address books, groups and linked orders |
| Experiences | Storyfronts | Owned Experience connections/editor links and optional companion publication |
| Experiences | Sales channels | Main/additional storefront and headless channels |
| Experiences | Rules & flows | Conditions, campaigns and event processes |
| Experiences | Apps | Discover, install, inspect and manage packages |
| Workspace | Developers | App Studio and API/MCP explorer |
| Workspace | Staging & releases | Private tests and selected publication |
| Workspace | Team & access | Members, shops, sessions and integration keys |
| Workspace | Settings | Company, taxes, countries, languages, methods and AI connections |
Shop today and the price playground
Shop today and personal workspace areas share configurable reports for ordered revenue, order count, average order, refunds, best products, sales channels, observed traffic, conversion and the purchase journey. Select periods, daily/weekly/monthly/yearly grouping, timezone, currency and channel scope. Add, reorder and resize cards, select charts or tables and save your personal overview. Existing native orders and consent eligible observations supply the values. Build an overview and understand the numbers.
The side preview has a price playground for quantity and consumer/business-group context. It calls the actual calculator without creating a cart, order or inventory mutation. The selected product can become context for a conversation. Studio interface.

Products and categories
Searchable product list
Search by name/product number and filter active status, category or low stock. The default page is 25 products with bounded cursor pagination. Create a unique product, maintain its price/stock and other fields, save and activate deliberately; new products start inactive. Tenant and revision checks apply to UI, HTTP and MCP writes alike. Stable validated import IDs are also admitted through the product-creation API; duplicate IDs conflict.

Eleven connected editor tabs
| Tab | What you can maintain |
|---|---|
| General | Name/description, product number, manufacturer identifiers, EAN/GTIN, digital/free-shipping flags and rich description |
| Prices & stock | Gross price, stock, tax assignment, min/step/max quantities, delivery, list/regulation/reference prices and rule/group quantity tiers |
| Media | Gallery, cover, order, alt text, upload/URL entry and optional private AI image drafts |
| Variants | Existing child SKUs and reviewed option combinations with independent number, price and stock |
| Categories & channels | Multiple category assignments and explicit per-channel visibility |
| Specifications | Translated properties/specifications plus weight and dimensions |
| SEO | Localized metadata and slug fields; a complete route/CMS generator is separate |
| Cross-selling | Search and assign other products belonging to the same shop |
| Attachments & downloads | Immutable product files and paid digital access |
| Reviews | Inspect and publish/hide customer submissions |
| Safety & compliance | Translated manufacturer/responsible-person contacts, warnings and sector-specific product facts |
Each editor uses one Content language. Inherited values are distinguishable from explicit translations; a missing/null value inherits, while an intentional empty description remains empty. Saving binds the product revision and updates its relevant translations/associations atomically. Full field contracts.

Pricing, quantities and inventory
The price/stock tab combines current gross price, tax, inventory, purchase limits, quantity steps and optional list/regulation/reference prices. Tier rows can target a customer group and saved rule. Delivery and free-shipping fields feed checkout; changing a parent does not invent stock for its independently purchasable child SKUs. Save the reviewed revision to apply changes.

Visual and Markdown descriptions
The visual editor supports bold/italic/underline, headings, quotations, lists, links, safe image/video blocks, undo/redo and preview. It stores bounded typed document blocks, not executable HTML. Markdown edits the same description through an explicit Apply Markdown step; unapplied source changes block an accidental save. Some rich attributes/video/underline are outside the Markdown subset and are disclosed rather than silently discarded.

Edited UI sequence of actual current controls. See the capture inventory for the individual stills and the action scope.
Variant combination generator
Add up to five option groups, enter comma-separated values and Generate combinations. Review up to 50 combinations, deselect unwanted rows and set each SKU, price and stock before creation. Existing variants remain independently editable. Creation reports individual failures and permits an explicit retry; newly created children start inactive. The parent's live stock is not a sum guessed from the browser table.

Edited UI sequence of actual current controls. See the capture inventory for the individual stills and the action scope.
Galleries and image drafts
Add PNG/JPEG/WebP files or an allowed image URL, preview a cover, reorder, set alt text and save the product. Drag/drop and multiple selection share the same admission path. Uploads are bounded to 8 MiB each, 20 gallery images and 50 retained assets per tenant; successful files remain available when another upload fails. Public delivery follows explicit linkage/publication, not possession of a private URL.
AI image studio is optional: generation/edit jobs require enabled image capability, a configured independent image model and server-held credentials. Results are private review drafts with persisted job/revision state. They do not replace live media automatically. The supplied fashion photographs are checked-in artwork, not evidence of a live image-provider call during this tour. Media and job behavior.

Categories, specifications, SEO and digital assets
Categories form a translated parent/child tree. Page, folder and HTTPS link types have separate active/navigation-visible controls; inclusion of descendant products is explicit. A channel chooses its navigation root. Product pages remain cursor-paginated; category navigation is bounded to 2,000 nodes. This does not supply full Shopware CMS layouts, dynamic product groups, manufacturer entities or original DAL schemas.
Specifications expose localized merchant properties and dimensions; SEO stores translated title/description/slug information. Attachments use immutable bytes and deliberate publication. Product digital access and review moderation have their own tabs and rights. Categories and product scope · Asset/purchase ownership.

Category and channel assignment
Assign one product to multiple categories and select its permitted sales channels. This connects category navigation to actual product visibility; the parent inclusion rule and each channel's navigation root remain explicit.

Specifications and physical properties
Add translated specification rows and maintain named property/value entries such as the bundled Nord Atelier brand. Weight, width, height and length are independent physical fields used by the native product contract. Content-language changes follow the same inheritance rules as the description.

SEO metadata
Maintain the selected language's meta title, meta description and URL slug, with the product preview shown underneath. These fields are persisted product metadata; they do not claim automatic search-engine ranking or a complete CMS route generator.

Cross-selling
Search the current shop's catalog and select the related products explicitly. The linked recommendations belong to this product and are separate from merchant-approved observed co-purchase relationships in Shop intelligence.

Review moderation
Open Reviews to inspect customer submissions and their status. Publish or hide actual submissions deliberately; only published reviews contribute to the public rating. The captured coat has no submitted reviews, so its moderation list is empty.


Customers, orders and documents
CRM, address books and customer groups
Search customers and maintain contact/company/VAT/phone/birthday fields, preferred payment, language, channel and permitted status/group information. Billing and delivery defaults are independent. Address fields include recipient/company, street/number, postcode/city, country/subdivision and additional lines. Product/customer/order links open the relevant central editor within the current shop/stage.
Customer groups have translated names and configurable gross/net display. Rules and pricing can target them. Group/status changes revalidate authority and revoke stale customer sessions/cart privileges. Required groups and referenced shipping/payment definitions have dependency guards; an in-use object cannot simply be removed through the UI. New guest orders retain an explicit guest identity instead of acquiring account ownership by email. CRM/history · Operations.


Order workflow and fulfillment
The bounded chronological order list opens immutable items, quote/addresses/customer snapshots, payment/delivery, tracking, documents and activity. Next actions are derived from the shop's state machine; they are not arbitrary status strings. Revision and request-key checks guard transitions. Saved changes emit events for flows.
The workflow definition can contain translated custom states/edges under validation. Invalid/unreachable transitions, removal of persisted states and illegal terminal/cyclic definitions fail. Order workflows are also selectable release units. Delivery stores tracking and internal dispatch/delivery state; a status change does not purchase a carrier label or prove physical delivery.

Payments and numbered PDFs
Payment receipts remain distinct from order status and recorded order value. Manual confirmation and configured provider capture/refund use their own permissions. Durable workers reconcile provider jobs; an uncertain external result is visible. Invoice, delivery-note and cancellation PDFs have immutable numbered snapshots and stable request-key behavior. Company/channel issuer and order data are frozen when issued; later customer/company edits do not rewrite a PDF. Cancellation documents do not themselves refund a payment.
Issuer details must be configured before generation. Templates support the four interface languages within the renderer's font limitations. Legal/e-invoice compliance, arbitrary original Shopware document templates, carrier services and full upstream partial/multicurrency payment behavior are outside this native slice. Document and payment scope.
Version history and validated restore
Supported histories cover products, categories, customers, orders, company/shared/channel settings, rules, campaigns, flows, channels and knowledge sources. Version history loads bounded revisions and exact Before/After fields. Actor, origin and reason are recorded where known; pre-history edits are not reconstructed with invented authors.
Restoring a supported state requires an explicit confirmation and the current revision. It runs normal validation and creates a new revision. Product stock is preserved; customer credentials/identity provenance remain current; restored knowledge needs publication review again. Orders are inspectable and do not replay financial operations. Deleted objects are not generally resurrected by this control. Exact entity-history boundary.

Edited UI sequence of actual current controls. See the capture inventory for the individual stills and the action scope.
Assistant and shop intelligence
Conversations and reviewed changes
The merchant assistant persists conversations, messages, verified context and proposals. It receives bounded current catalog, history, observations, eligible sources and selected app facts/tools. The server attaches actual product/app/record revisions. A merchant reviews the stored fields and explicitly approves; application is atomic and rejects stale state. An LLM cannot grant permissions, execute SQL, approve itself or silently modify live content.
Choose configured Ollama, OpenAI Responses or Anthropic Messages adapters. Cloud API credentials differ from consumer subscriptions; calls may incur provider charges. Missing configuration, malformed output and provider failures are reported without silent substitution. Conversation leases and process admission keep network calls outside database transactions. Remote app-service mutations are not made atomic by a model proposal. Inference and app planning · Provider setup.

Connected views of the knowledge workspace
| View | Use it for |
|---|---|
| Overview | Actual catalog/source/publication/observation totals and next steps |
| Connections | Products, curated needs/complements and provenance-aware relationships |
| Sources | Private documents, published product/shop sources and connected app evidence |
| Learning & decisions | Observed co-purchases, simulation provenance and explicit recommendation decisions |
| Test & use | Question/product/audience selection and exact available evidence |
| AI guardrails | Explicit bounded pricing autonomy, current rights and product-specific limits |
| Visitor behavior | Consented traffic and behavioral observations, connected to shop knowledge |
| Experiments | Recorded experiment context, observations and evidence boundaries |
| Customer simulator | One to six editable fictional buyers test private native search, baskets and simulated purchases; saved runs support stock/budget/failure comparison. Guide |
Catalog facts, curated demo relationships, private app evidence, observed purchases and merchant-approved recommendations remain distinguishable. Transactional event projection deduplicates repeated order/capture evidence. Publishing/dismissing a hypothesis changes eligibility for customer recommendations; marking an experiment does not run a randomized trial. Memory is durable shop evidence, not online model-weight training. Knowledge workspace.

Private sources, explicit publication and real retrieval
Add text, searchable PDF, TXT or Markdown up to 2 MiB; choose document/data sheet/manual/care guide/FAQ/shipping/returns/warranty/brand kind and whole-shop or product scope. Sources store fingerprints/chunks and start private. A customer publication decision is separate and revision-bound. Editing resets public approval, removes old embeddings and rebuilds chunks. Archive/restore retains the deliberate private review boundary. Scanned PDFs need prior OCR.

Edited UI sequence of actual current controls. See the capture inventory for the individual stills and the action scope.
Test & use runs real lexical retrieval with no LLM call or write. It displays exact excerpts, source IDs/fingerprints and audience eligibility. Configured live answers can additionally use Qdrant semantic candidates, checked against current PostgreSQL state. Private Gmail/Analytics evidence informs authorized merchant planning, not public product answers. Publication and retrieval details.

AI translations and media jobs
Enable and save a target content language in Settings. A translation job processes bounded product steps, persists progress/drafts and supports resume/cancel. Names, descriptions, SEO and human-readable rich/specification text can be translated; IDs, URLs, units and document structure stay fixed. Review and apply individual/all bounded drafts; concurrent manual changes become conflicts, and repeat apply is idempotent. Results never change live products automatically.
Media generation/edit jobs similarly produce private review drafts. Both paths require available provider capabilities and their independent workers. They validate structure and revisions; they do not certify linguistic accuracy, product truth or image quality. Translation workflow · Image jobs.
Rules, campaigns and Flow Builder
Saved rules and starter processes
New shops have a main channel, three starter rules and two order/payment note flows. They do not automatically activate marketing discounts or external messages. Rules expose native conditions and reviewed source-named Shopware conditions with typed configuration, nested AND/OR/NOT/XOR and saved-rule references. Event projection freezes relevant definitions/facts for the admitted execution. A Boolean preview evaluates the actual cart without effects.
The registry binds 108 of 114 reviewed source-named condition types; six unsupported runtime types remain visibly disabled. This is a native subset with bounded comparison evidence, not full upstream Rule Builder parity or unrestricted PHP execution. Condition inventory and lifecycle.

Coupons and campaigns
Create translated percent/fixed discounts, coupon codes or automatic campaigns and free-shipping effects. Configure priority, exclusivity, active windows, rule eligibility and global usage caps. Applying TRY10 in the example uses actual tax-adjusted totals; concurrent redemption counts use transactional checks. Search/edit/enable/remove definitions through dependency-aware, revision-bound operations. Campaign semantics.

Branches, actions, delays and execution traces
The Flow canvas builds an acyclic graph of 1–100 steps: condition Yes/No branches, actions, delay and stop. Native actions include customer/order tags, custom fields, attribution, group/status changes, guarded order/payment/delivery transitions, documents and download access. Configured email, installed app actions and AI proposals add external/approval boundaries.

Edited UI sequence of actual current controls. See the capture inventory for the individual stills and the action scope.
Delays up to 30 days persist as scheduled continuations. SQL leases/node receipts survive restarts and refresh current rights before actions. The workspace periodically refreshes actual branch decisions, steps, results and errors. Confirmed effects are not blindly repeated; ambiguous external effects need reconciliation. Events include catalog/order/payment/delivery, knowledge decisions and namespaced app events. Runtime, actions and limitations.
Settings and international commerce
Company, brand and channel inheritance
Maintain structured legal/company identity, address, contact, private bank fields, brand text and logo. The scope selector chooses the shared basis or a channel override. Missing/null fields inherit; a string replaces only that field; explicit empty optional values stay empty. Reset restores inheritance. Channel/basis revision checks prevent stale saves and preserve drafts.
Company logos are bounded PNG/JPEG/WebP uploads normalized to PNG and private until linked. Storefront brand/logo/legal notice use an explicit public projection excluding private banking/domestic tax fields. Document issuer uses the order's channel and an immutable snapshot. Company settings.

Countries and destination taxes
The geography picker bundles 249 ISO-assigned country entries plus explicitly separate Kosovo, with names/aliases/codes, continents and US subdivisions. Tenant overlays can add validated custom countries/subdivisions. Choose delivery destinations, then provide explicit tax coverage and eligible methods; enabling a country does not invent a zero tax rate.
Tax classes have country rates/fallbacks and prioritized destination rules for subdivisions, exact/prefix/range postcodes, UTC date windows and saved-rule conditions. The resolver uses authoritative pre-tax/pre-discount facts, avoids recursive quote conditions and preserves completed order snapshots. Shipping tax supports highest/proportional allocation. This is merchant configuration, not a live worldwide tax-law service. International contracts.

Languages, shipping and payment settings
Shop-main and enabled content locales drive product/category/settings/app editors. Custom content locales extend beyond the four interface languages; they do not automatically translate UI vocabulary. Shipping/payment names, country/region labels, tax labels, specifications, SEO and rich content use deliberate field inheritance. Settings contain one selected language instead of duplicate language walls.
Shipping maintains fees, country/rule availability, delivery times and tax allocation; payment maintains manual/simulated/configured provider mode, country/customer eligibility and descriptions. A channel inherits checkout settings until an explicit field-level override. Switching a dirty scope asks for save/discard. Dependency checks protect referenced methods and preserve existing order snapshots. Shared basis and overrides.



Sales channels and connected experiences
Main storefront and three-step channel creation
A shop's persisted main storefront cannot be deleted or changed to headless. It can be paused/resumed or made private; personal previews allow an authorized merchant to inspect it while public shoppers and agents are denied. Additional storefront/headless channels share its catalog/team but have distinct names, enabled languages, navigation root, selected products and settings overrides. Channel-bound carts cannot be silently reassigned to another channel.
The creation assistant has Basics → Catalog & languages → Review & create. It supports searchable product selection and inherited settings; the final review is explicit. Separate SaaS shops have independent data/membership, whereas channels belong to one shop. Unused additional channels have revision/dependency-checked lifecycle operations. Domains & experiences displays each owned address, channel assignment and editor link. DNS/certificate provisioning for external domains remains an operator responsibility. Channel creation · Management, domains and previews.


Edited UI sequence of actual current controls. See the capture inventory for the individual stills and the action scope.
Managed Storyfront experiences
Experience onboarding installs the public Storyfront integration in the same transaction as its owned frontend binding. Migration 055 repairs older Experience shops without repeated package revisions. Apps, Storyfronts and the channel connection list show the same domain/channel and open the existing deployment-selected editor. App deactivation is blocked while its frontend dependencies remain. Installation neither copies private code nor publishes a draft.
Original Storyfront runs as a separate service connected to Veyndo's catalogue and native checkout. The current public acceptance includes an embedded purchase, return to the original Experience and an empty original bag after reload. Deployment-specific editor and renderer details retain their own release evidence. Current public status · Generic connection contract.
Optional companion catalog publication and checkout transfer
For independently operated companion installations, the Storyfront app connects to an operator-configured private companion service. It publishes a bounded catalog snapshot with real SKU mappings, translations and allowed product media, reports job status/counts and opens its configured storefront. Shopper intent transfers through a single-use cart ticket into the authoritative VEYNDO checkout. The ticket expires, is consumed once and rotates the cart token; merchant credentials do not enter the shopper link.
A native install alone does not deploy the private service, generate an AI story release or enable customer account SSO. Provider configuration, consent/tracking, continuous sync and companion ownership remain explicit. The earlier end-to-end Storyfront evidence is retained and dated in its guide. Storyfront integration.
The earlier companion-service setup capture is retained in the 6 October recording inventory; it is not the management state of an already connected Experience shop.
Trusted identity, Studio handoff and hosted frontends
The latest generic experience boundary lets a trusted server verify a merchant, provision an owned empty/fashion shop, use inherited structured inference and bind a public frontend alias to an active channel. Identity assertions are route-bound, short-lived and protected against durable replay. The shared signing key delegates verified identity authority and stays in trusted server runtimes; it is never a browser integration key.
A personal merchant can issue a one-use 60-second Studio ticket. Redeeming it rechecks current membership; Studio removes login_ticket from the URL before network requests. Normal personal sessions result, without a password/bearer token in a link. Hosted frontend aliases and shop IDs share collision checks; requests resolve authoritative tenant/channel from storage. The public proxy strips cookies/merchant Authorization, disallows redirects and restricts endpoints/body sizes.
These adapters are opt-in and disabled without operator configuration. Trusted inference has a durable 50-call allowance per verified email per UTC day; this is a prototype abuse boundary, not SaaS billing. The public private-service deployment and owned connection were observed in the latest release review; those observations do not certify Google/Apple OAuth, every email delivery or production scale. Trust contract, routes and configuration.

Apps and App Studio
Discover, install and inspect
The library has Installed and Discover, search and categories, status filtering, passive cover/icon metadata and a common detail page. Ordinary fresh shops show the eight bundled choices without silently connecting external services. Experience-created shops already show Storyfront installed/enabled because the mount transaction owns that installation. Details expose App details, App workspace, Data, and Version & permissions. Activation is revision-bound and permission checked; an installed app can retain records when disabled.
The bundled catalog is not an external marketplace of arbitrary vetted services. Product Lab and custom packages can be installed from reviewed manifests separately. Library and package lifecycle.

The eight bundled apps
| App | Actual capability | Configuration / boundary |
|---|---|---|
| Personalize this product | Product inscription form, Wasm validation, server-calculated taxed surcharge and immutable order configuration | Install/enable its package; generic cart contribution ABI also supports the gift-message example |
| PayPal | Native provider configuration/status plus authoritative Orders v2 checkout/capture/refund path | Own Sandbox/Live account; server-held credentials; actual PSP account run remains unverified |
| Shopware Payments | Published integration/settings contract with explicit availability status | Official private standalone connector required; not silently substituted with demo payment |
| Storyfront | Managed Experience connections/editor links, or companion catalog publication/status and checkout transfer | Experience mounts install the integration automatically; private rendering, publication and companion setup remain separate |
| Google Analytics | Consent-gated GA4 storefront events plus acquisition/product reports and private evidence | Configured tracking/OAuth service; measurements disclose thresholds/sampling, not causal uplift |
| Gmail | Read-only label-based support import, initial/history cursor sync and private planning evidence | Configured OAuth service; no attachments or mail-sending capability |
| Slack | Configured channel/order or deliberate Flow notifications with bounded escaped templates | Own service/token/destination; notifications require explicit setup |
| Email delivery | SMTP with verified TLS, Resend or SendGrid, text/HTML/CC/BCC, previews/test mode, four-language order confirmations and durable receipts | Own service/sender/credentials; disabled/test mode initially; provider acceptance differs from inbox delivery |
OAuth/token refresh and connector queues live in independent app services with their own encrypted configuration/storage. Imported content is evidence, never an instruction. Disconnect fences/removes its active planning sources. Order-event and equivalent Flow notifications are two distinct paths; intentionally choose one if only one message is wanted. Connected apps · Email delivery.

Current capture: delivery is disabled, no sender credentials are configured and no provider request is made.
Guided app starting points
Developers → App Studio → New app offers storefront, admin, connected experience, payment connector, shipping connector, ERP/external systems, event/Flow actions, incoming webhook and scheduled automation. Choose placement, translated fields and explicit exposure to create an ordinary editable manifest. A template is a contract starting point, not an implementation of every provider's business logic.
Editor placements include an independent admin module, product-general section/new product submenu, customer/order fields, product-detail surface and storefront page. App data lives in namespaced records in four fixed shared tables with validated same-shop core references; the host binds the currently open product/customer/order. Missing context cannot cause an unfiltered private read. Assistant types and mounts.

Visual design and typed data models
The palette contains text, forms, grids, cards, inputs, choices, dates, buttons, images, tabs/frames, metrics and charts. Drag/drop onto a snapping raster; resize, select several controls, align/distribute, set tab order and open properties/code-behind. Stacked/grid layouts remain available. Undo/redo edits the same manifest. One content-language selector serves localized view/field text. Public forms are rejected; explicit public reads remain separate from authenticated writes.

Edited UI sequence of actual current controls. See the capture inventory for the individual stills and the action scope.

Data models include date/time, explicit-currency money, scaled decimals, private images/files, rich text and multiple relations alongside translated/JSON/scalar fields. Shared app record/reference/index tables enforce RLS, scoped relations, recursive validation, uniqueness and quotas. Explicit rename/remove/convert/fill migrations retain bounded recovery snapshots; arbitrary SQL is prohibited. Manifest/storage contracts.

Working preview, immutable versions and app data
F5 runs the current autosaved draft in an actor-private, expiring sandbox without publishing a package. Changes hot-reload actual app records; schema edits reset the private preview. For publication, select a staging sandbox, save an immutable version, inspect changes/digest and approve installation. Working sandbox preview runs the actual native renderer with real managed records. For embedded forms, choose a real matching object, save, reopen and inspect persisted data/revision. Package publication and app-data publication are independent.

Code-behind can validate a form, call its allowed gateway action, refresh the view and display a translated result. Breakpoints pause between bounded instructions. The sequence below shows the current private renderer saving a product-bound care record. Package publication remains a separate step.

Edited UI sequence of actual current controls. See the capture inventory for the individual stills and the action scope.
My apps / Edit app opens the same canvas for the next compatible version. App Studio Trash supports recoverable project archival; it does not erase installed versions or their records. Version bounds include 16 views, 32 blocks/view, 12 models, 16 fields/model and 24 actions/routes. App Studio workflow.
Coding agents, custom services and SDK surfaces
The Coding agent view exports a task/manifest contract with credential placeholders for an authorized external Codex/Claude workflow; it does not launch a CLI or shell. AI generation is optional and produces a reviewed draft. Visual and agent editing share the manifest/version path.
Full apps can own admin modules, product/order panels, storefront pages/home/header/detail/cart/account surfaces, namespaced HTTP aliases, MCP tools, selected planning facts and an independent service/database/model. Product Lab is a runnable example. Custom UI runs in an opaque iframe with a scoped SDK bridge; it receives no merchant bearer token and cannot replace parent DOM. Per-action rights, public reads, MCP exposure and selected planning tools are separate decisions. Full app platform and SDK.
External calls have deadlines/payload/admission limits and do not hold a core DB connection. Operator configuration supplies trusted service/UI origins. Canonical signatures, dependency/channel validation, scoped app callback keys and server-enforced surface grants are implemented. Arbitrary source builds/rollout and hostile-code microVM containment remain external.
App events, schedules and signed webhooks
Apps emit namespaced events and subscribe through durable at-least-once delivery. Receivers deduplicate with stable keys. Flow-enabled actions use the same authorized gateway. Scheduled emit actions support bounded six-field UTC schedules, at most eight per app and at most one tick/minute/schedule; SQL prevents duplicate ticks across restarts/replicas. Private stages do not execute them.
Incoming webhook declarations admit bounded typed payloads signed with an operator-held HMAC key, timestamp and stable event ID. Identical repeats return the original receipt; different bytes under one ID fail. Public customer/order references are forbidden. These contracts still require real provider/service implementations. Schedules/webhook evidence.
Pure Wasm commerce hooks
Four checked-in B2B purchase policies cover company limit, EUR 100 budget reserve, EUR 50 minimum and EUR 250 single-order cap. Approved WAT is compiled/probed before activation; checkout uses no host imports/WASI/network/filesystem, 10,000 fuel units, 1 MiB memory and a 256 KiB stack. Saved changes refresh stale process caches; traps roll back the purchase. These are alternative policies for one B2B ABI, not arbitrary PHP plugins or a general compiler. Policy examples and activation.
The personalization app uses its separate generic configuration/cart-contribution ABI to connect customer input, validation, taxed surcharge and order display. It does not gain unrestricted host access from App Studio.
Workspace access and releases
Personal membership and precise rights
A personal identity can belong to multiple independent shops with owner/administrator/editor/viewer defaults and 32 fine scopes for catalog, customers, orders, documents, payments, settings, team, apps and knowledge. Invitations, memberships and integration keys cannot delegate beyond the actor's current authority. Every request checks active membership in PostgreSQL. Role/revocation changes apply to later requests across replicas; the final owner is protected.
Invitations expire after 24 hours and are used once. Codes are shared manually; automatic invitation mail is not implemented. The local instance bootstrap token is privileged setup authority, not a merchant integration credential. Customer, merchant and platform sessions remain distinct. Access rules · Operations permissions.

Expired-session recovery and API/MCP keys
Protected Studio links require sign-in before private content loads. An expired active session presents a blocking reauthentication dialog, preserving drafts and editor context. Only the same account/current membership can resume; failed writes are not replayed. Authorization/provider/network errors are distinguished from authentication expiry.
Create named, hashed, scoped integration keys with 1–90 days of validity. Eligible personal administrators can explicitly choose no expiry. Keys are shown once and are rechecked against the creator's current membership. The API explorer lists source-derived methods and paths with access metadata; installed app routes are discovered at runtime. Its live tester supports authorized GET and MCP tools/list, with a selected scoped key, without replacing Studio identity or exposing operator binary routes. Sessions and explorer.

Private stages and selected publication
A sandbox clones catalog/translations/categories, settings/company, experience state, rules/flows/campaigns/channels, app packages, selected public app data/documents and B2B company/unit policies/catalog selections. It excludes live customer accounts/orders, payment attempts/provider keys, observed shopper behavior, private app records and B2B employees/financial decisions. Sandbox inventory is simulated; publishing product content preserves live stock. Unauthenticated access to the private tenant is blocked. Authorized members can run synthetic guest purchases and customer scenarios in a full sandbox; personal read-only previews cannot place orders. External service effects remain blocked.
Review changes compares stage content with its recorded live baseline. Select only the needed units: products, categories, apps, app data, assets/documents, rules, campaigns, flows, channels, settings, company/channel overrides, experience, order workflow and B2B company/unit policy/catalog selections. Each selected domain requires its own current rights. A release is atomic and rejects concurrent live baseline conflicts; there is no automatic conflict merge or universal rollback button. Clone and release boundary.

Edited UI sequence: a private product-content change, its explicit selection and recorded publication. This capture demonstrates product publication; app package and app-data publication use their own review units.
VEYNDO Platform
Separate operator console and shop directory
The public service hub at admin.veyndo.ai links merchant and platform entry points. A platform grant is separate from merchant ownership and the bootstrap token. Operators see a bounded searchable shop directory, staging separately, per-shop team/business/channel/app information and 7/30/90-day statistics. Access is checked on every operator request; platform access does not automatically authorize every merchant Studio.
Metrics distinguish recorded gross order value, simulation and confirmed captures by currency. Captures are not net revenue after refunds/fees. Stored lifetime HTTP requests are not visitors. Daily buckets use the database/UTC calendar. Metric definitions.

Shop creation, addresses and inherited AI
Create an empty/sample shop with an optional existing owner. No shared-password demo customers are created by operator provisioning. Payments start simulated. With configured wildcard routing, shops use https://SHOP_ID.veyndo.ai; old public query links retain product/channel/language context during upgrade. Studio/private stages keep their authenticated origin. DNS/certificates, arbitrary custom domains, billing and island migration are separate operator work.
Global provider configuration has an enabled/default Ollama/OpenAI/Anthropic choice, provider models/endpoints and independent image capability/model. Shops inherit it or have an explicit override. Provider keys are write-only and encrypted with the runtime key; they are not returned to the browser. A configured status reports saved configuration, not provider health or a completed inference call. Disabling a provider denies use; there is no silent fallback. AI and address controls.

Pause, trash and restore
Pause requires a reason and current revision. It blocks new customer actions/AI/writes and defers queued automation across the shop and its stages; admitted merchant reads and existing payment reconciliation remain available. Already running work may finish. Move to Trash requires exact shop-ID confirmation and preserves records for recovery.

The current operator view shows pause and recoverable trash controls. This screenshot does not perform either action.
Restore reactivates preserved records. Trash is not physical erasure/GDPR purge and does not refund orders, cancel external subscriptions or erase provider obligations. Platform activity records operator changes. Lifecycle admission.
Actual infrastructure diagnostics
Infrastructure probes PostgreSQL version/size/connections, Qdrant readiness, Rust pool/cache/queue state and measured mean/maximum HTTP timings. Linux cgroups can expose current-process/container CPU/RAM with sufficient samples; unavailable values display a dash. These are current probes, not invented fleet utilization, p99 latency, capacity or guaranteed failover.

Shared APIs, storage and verification
HTTP, Store API, MCP and UCP
Browser shopping, merchant HTTP and protocol adapters call shared operations. MCP publishes typed shopping/knowledge/merchant/app tools filtered by current rights; direct invocation is independently authorized. The stdio bridge forwards to the running Core rather than implementing another calculator. The native HTTP MCP subset uses stateless JSON responses and no SSE subscription. UCP's documented checkout adapter shares carts, quotes and order behavior.
The selected ai.veyndo.app.shopping.b2b_negotiation extension adds native RFQs,
buyer counterproposals, merchant offers, original-cart acceptance, current purchasing
constraints and separate approval requests to that checkout. Its profile negotiates
software compatibility, never company authority; prices, budget, stock, final order
and Flow events stay with the same native owners. Versioned contract and working
purchase sequence. This vendor extension does not claim a
ratified upstream commercial-negotiation capability or autonomous bargaining.
A reachable HTTPS endpoint and account-side registration are still required for hosted ChatGPT/Claude clients. A custom UI connector requiring OAuth needs its own gateway; a scoped token alone does not implement an OAuth authorization server. Connection instructions · API catalog · Protocol scope.

Durable state and independent workers
Ordinary PostgreSQL is authoritative for products, inventory, orders, users/rights, conversations/proposals, history, app records, relationships, source vectors and durable queues. Qdrant is a private rebuildable search index; candidates are hydrated/checked against current tenant, product revision, digest, price and stock. Legacy AGE/pgvector conversion preserves existing data; fresh installs do not require those extensions.
Atomic stock/order/idempotency/outbox transactions avoid partial commerce writes. Independent HTTP, memory/outbox, payment, app-event, translation and media roles use SQL leases/receipts. An HTTP-only process needs the appropriate workers for queued effects. Core tables and managed app tables use forced RLS together with scoped application operations and tenant-aware foreign keys. Production must use a non-owner, non-bypass role with strict startup admission; schema-owner local runs are a separate development configuration. Explicit trusted system scope and database administrators remain privileged. Architecture · Storage/migration · Isolation.
What the verification establishes
CI checks source ownership, frontend build/localization, Rust formatting/lint/tests, original Shopware PHP comparisons, real isolated PostgreSQL/HTTP regressions and selected extracted Lean policies. Existing price/context/tax/comparison/rule suites contain 7,000 bounded original-PHP comparisons. Formal claims name exact production policies and exclude SQL/provider/browser/whole-system correctness.
Million-product commerce measurements are dated workload-specific observations; they do not establish semantic recall, production capacity or a Shopware speed ratio. This remains an extensible working prototype with explicit gaps in full Shopware DAL/CMS/plugin parity, real PSP certification, full production identity/provider acceptance, core-wide RLS, distributed quotas, automatic relocation/failover and legal compliance. Testing · Formal boundary · Performance · Complete parity matrix.
Keep the guide current
For a feature change, update its section and detailed guide, capture the real UI when it changes, and replace the relevant image/GIF. Keep provider configuration, local contract tests and observed external results distinguishable. Preserve dated evidence rather than relabeling old media as a new capture. Main-branch Pages builds render these Markdown sources and copy the media automatically. Documentation publishing.
Multi-currency shops and channels
Configure a shop currency registry and select offered/default currencies per sales channel. Customers switch currencies on a server-requoted cart. Merchants choose automatic saved-rate conversion, exact fixed product/variant prices or durable bulk generation. Payments, refunds, documents and order history retain original precision. Revenue reports separate invoice currencies. The same context is exposed through Store API, MCP and the implemented UCP checkout routes. Currency settings, rates, API contract and limits.
Modular B2B and EDI — 12 October 2026
Native company units, current employee rights, private catalogs, currency-bound
budgets, separate approval, RFQ negotiation, quick order and repeat lists reuse
the existing checkout, inventory, order, document and Flow owners. The Studio and
customer account use the same API/MCP contracts. Setup, source owners and precise
B2B comparison. The independent extensions/apps/edi/ package owns
bounded EDIFACT/UBL/cXML parsing, mapped private requisition import and immutable
native document export; no Core codec or second ledger. EDI profiles, deployment
and network/certification limits.
Connected feature audit — 12 October 2026
The integration matrix links POS, B2B/EDI, marketplaces and behavioral intelligence to their actual versions, settings, sandbox, rights, API/MCP and event owners. Native analytics now has inherited enabled/retention/ intake controls; B2B editors expose history and selected configuration publication. Provider fixture success remains distinct from live account/transport acceptance.
Partial fulfillment and direct carriers
Orders can split physical line quantities into multiple packages without repricing or decrementing inventory again. Shared HTTP/MCP, current rights, revision checks, customer package visibility and Flow events use the existing native order owner. Package-specific delivery notes and immutable private carrier PDFs use the native receipt store. A provider-neutral shipping assistant declares the same native job/callback contract; no shipping provider is bundled or configured. Synthetic service tests demonstrate package intent, original PDF/tracking, unknown-effect fences and current permissions. Shipping workflows and limits.
Connected App Studio workbench
See the illustrated workbench guide for multiple placements, compact adjustable panels, the contextual AI drawer, model-backed form editing, shared Flow visuals, installed app settings and scoped integration keys. These extend the existing native Manifest, runtime and release owners.
3D product media
Upload self-contained GLB models, preview them in Studio and bind native product variants to their own geometry or an embedded material. Shoppers rotate and zoom inside the normal gallery, with the selected SKU retaining its native price, stock and checkout. Setup, model contract and sandbox publication.