The structured catalog gives Tephlo exact product facts. Saved carts turn those facts into a reviewable request for your workspace — not a placed order, checkout or payment.
Both live in the Content group, but they solve different problems. An article explains a returns policy, sizing guide or product story in prose. A catalog row carries typed fields the platform can validate and use deterministically: an SKU, name, price and currency, stock facts, categories, brand and bounded attributes.
A row may still be useful for an answer when it is incomplete. To enter a cart, however, it must belong to the active catalog generation and carry the server-validated identity and commercial facts the action requires. The console marks rows that are not actionable.
Members whose role includes catalog management use Content → Catalog to add, edit and remove managed products. Each change checks the catalog version, so a stale browser cannot silently overwrite somebody else’s newer edit. The product mutation and catalog-version advance commit in one database transaction, so customers never read a half-written managed edit.
Products imported through a supported Knowledge catalog remain read-only on this screen. Edit their source and re-import them instead. The console labels managed and imported rows so the source of truth is not ambiguous.
Ordinary documents still belong on the Knowledge page. Do not duplicate the same live price in an article and a catalog row: the structured row is the commercial source of truth.
Where the active workspace profile permits cart management, a customer can ask the assistant to save or remove an exact catalog item. The operation is deterministic and bound to that customer, channel and tenant. The model can express the request, but it cannot choose a different SKU, price, quantity or workspace behind the action.
An active cart expires after its retention window and duplicate delivery is idempotent: a provider retry does not add the same line twice merely because the message was delivered again.
Submitting a cart creates a potential order in Business → Orders to approve. Members who can view orders can open it and review the price snapshot; contacting the customer and recording one of the declared states needs order approval:
AWAITING_REVIEW → CONTACTING_CUSTOMER / CONFIRMED / REJECTED / CANCELLED / EXPIRED
CONTACTING_CUSTOMER → CONFIRMED / REJECTED / CANCELLED / EXPIREDA confirmed, rejected or cancelled decision is sent to the customer automatically on their channel, in their language, as soon as the messaging window allows (a re-engagement template goes first when it is closed). The confirmation tells them that payment is handled manually for now and that the team will contact them to arrange payment and delivery; nothing is charged in the chat. The request shows whether the customer has been told.
“Confirmed” means the workspace confirmed the request in this internal workflow. It is not proof of payment, inventory reservation, shipment or fulfilment. Keep the external payment and delivery outcome in the system that actually performs it.
Customer ownership uses a purpose-separated subject digest rather than a raw phone number or email in the commerce tables. Cart and potential-order data is included in the workspace privacy export and erasure lifecycle; lifecycle events retain only closed status codes and timestamps needed for content-free audit evidence. Members can view only their own workspace’s records.
The shipped workflow is intentionally internal. It does not synchronize with Shopify, WooCommerce, an ERP, a payment processor, delivery service or warehouse. A future adapter may connect one of those systems through a server-owned tool and the same authorization boundary; a URL or instruction in Knowledge cannot create that integration today.