Product ops
Cross-site data entry, listing modes, and admin deep-links. Every TSI storefront needs product entry → list → purchase → optional resale.
Commerce flow
Product metadata branches listing mode; purchase creates custody; resale re-enters marketplace.
flowchart LR
subgraph entry["Data entry"]
IMP[Import / upsert]
QUEUE[Publish queue]
IMP --> QUEUE
end
subgraph list["List"]
CAT[Catalog PDP]
MKT[Marketplace order]
QUEUE --> CAT
QUEUE --> MKT
end
subgraph buy["Purchase"]
STRIPE[Stripe checkout]
PO[ProductOrder]
CAT --> STRIPE --> PO
end
subgraph custody["Custody"]
INC[in_custody]
SHIP[claim-ship]
RSL[resell]
PO --> INC
INC --> SHIP
INC --> RSL
RSL --> MKT
endPer-site admin links
Reference data-entry implementation — PC import, publish queue, custody resell
co2t-ts-pokepocket-site · Physical cards (MORC) · pokemon_card
Set STACK_*_SITE_URL on deploy-console
CO2T.earth marketplace — product admin port from co2trust-site
co2t-ts-co2t-earth-site · Carbon credits (CORC/FORC) · corc / forc
Set STACK_*_SITE_URL on deploy-console
Methodology storefront — admin inventory when catalog seeded
co2t-ts-co2true-site · Entertainment / digital · TBD
Set STACK_*_SITE_URL on deploy-console
Product type × listing mode matrix
What each storefront supports for catalog, marketplace, and custody-driven resale. Phase 6 columns reflect live TSI dev (b79dd4c / d7d615d).
| Storefront | Product types | Entry pattern | In-person pickup | Shipped (address at checkout) | Marketplace (Seaport order) | Unclaimed resale (custody) | Phase 6 |
|---|---|---|---|---|---|---|---|
| pokepocket | MORC / collectible cards (PC-SKU) | PriceCharting import → publish queue → bulk publish | live | partial | partial | live | Custody resell + claim-ship live; marketplace browse only |
| co2t-earth | CORC / FORC credits, BIOCHAR | Supplier product editor (port from co2trust-site) | n/a | planned | planned | n/a | Admin products scaffold; full listing editor open |
| co2trust (reference) | CREDIT, DELIVERY | co2trust-site admin product list + listing editor | n/a | live | live | n/a | Legacy reference — not on TSI dev storefront |
| co2true | Entertainment / methodology SKUs | Mirror pokepocket admin when catalog seeded | planned | planned | planned | n/a | Admin shell only — inventory TBD |
main-api product routes
Server routes for data entry, orders, and Phase 6 custody. Test lab proxies via /tools.
Storefront product admin
/admin/storefront/{storefront_id}GET /products— Supplier-scoped listPOST /products— Create with metadata enforcementPUT /products/{id}— Update productPATCH /products/{id}/listing-mode— Set listing_mode + sale_mode
Pokepocket import
/admin/pokepocketPOST /pricecharting/collection— Preview PC collectionPOST /pricecharting/import— Import SKUsPOST /remediation/retag— Metadata retag
Product orders
/co2trust-services/v1/product-ordersPOST /— Create orderGET /user— Buyer ordersGET /supplier/{supplier_id}— Supplier orders
Custody (Phase 6)
/co2trust-services/v1/custodyGET /products/{id}— Event chainPOST /products/{id}/claim-ship— Shipment requestPOST /products/{id}/resell— Unclaimed resale listing
Storefront runtime
/co2trust-services/v1/storefrontGET /{storefront_id}/policies— Policy copyGET /{storefront_id}/checkout/transfer-status— Post-Stripe status
Console hub role
This page complements Platform ops (live probes + entity counts) and Partner launch (onboarding checklist). Operators use Product ops to jump into per-site admin UIs and verify listing-mode coverage before partner storefronts go live. Canonical architecture: PRODUCT-DATA-ENTRY-LAYER ↗.