{"$schema":"https://soulcraft.com/schemas/kit/v2.json","id":"online-store","type":"soulcraft","role":"primary","status":"released","primaryProduct":"venue","kitFamily":"business-archetype","name":"Online Store","description":"Ecommerce business with products, cart, checkout, subscriptions. Marketing site, blog, customer accounts, loyalty, gift cards. Serves solopreneur to small brand.","longDescription":"The unified archetype for digital-first commerce businesses. Replaces ecommerce-store and absorbs loyalty concerns. Serves solopreneurs shipping their own inventory through small brands with a handful of SKUs and moderate order volume. Skills know the operational rhythm of an online store: welcome sequences that don't feel automated, abandoned-cart timing that recovers without pestering, product photography + copy that reads honest, inventory pacing that avoids the twin failures of stockouts and overstock, and financial reporting that shows the specific patterns (cohort retention, CAC/LTV, gross margin per SKU) that make ecommerce sustainable. See forge/docs/KITS-CATALOGUE.md for the full 26-kit consolidation program.","version":"0.1.2","author":{"name":"Soulcraft Labs","email":"kits@soulcraft.com","url":"https://soulcraft.com"},"icon":"🛍️","tags":["venue","ecommerce","online-store","products","cart","checkout","subscriptions","shopping","brand","dtc","small-batch","archetype"],"previewImageUrl":"kits/online-store/images/preview.svg","variables":[{"key":"businessName","label":"Business Name","description":"The name of your store / brand.","type":"string","required":true,"example":"Your Brand Name","default":"Your Store"},{"key":"tagline","label":"Tagline","description":"A short phrase describing what you sell and the vibe.","type":"string","required":false,"example":"small-batch coffee, roasted here","default":"products we're proud of"},{"key":"storeCategory","label":"Store Category","description":"What kind of products you sell. Drives skill flavor + default content.","type":"enum","options":["general","apparel","food-beverage","beauty-personal-care","home-goods","digital-products","supplements","coffee-tea","specialty-food","custom"],"required":true,"example":"coffee-tea","default":"custom"},{"key":"address","label":"Fulfillment Address","description":"Where orders ship from. Also used for return address and physical store presence if applicable.","type":"address","required":true,"example":"1234 Warehouse Way"},{"key":"city","label":"City","description":"Fulfillment city.","type":"string","required":true,"example":"Portland"},{"key":"state","label":"State / Province","description":"Two-letter state or province code.","type":"string","required":true,"example":"OR"},{"key":"zip","label":"Postal Code","description":"ZIP or postal code.","type":"string","required":true,"example":"97205"},{"key":"timezone","label":"Timezone","description":"IANA timezone identifier.","type":"timezone","required":true,"example":"America/Los_Angeles","default":"America/New_York"},{"key":"phone","label":"Phone","description":"Customer support phone number.","type":"phone","required":false,"example":"+15551234567"},{"key":"email","label":"Email","description":"Customer support email.","type":"email","required":true,"example":"hello@yourbrand.com"},{"key":"instagram","label":"Instagram Handle","description":"Instagram username (no @).","type":"string","required":false,"example":"yourbrand"},{"key":"facebook","label":"Facebook Page","description":"Facebook page slug or URL.","type":"string","required":false,"example":"yourbrand"},{"key":"tiktok","label":"TikTok Handle","description":"TikTok username (no @).","type":"string","required":false,"example":"yourbrand"},{"key":"fulfillmentMethod","label":"Fulfillment Method","description":"How orders are fulfilled.","type":"enum","options":["self-fulfill","3pl","dropship","print-on-demand","hybrid"],"required":true,"example":"self-fulfill","default":"self-fulfill"},{"key":"shippingRegions","label":"Shipping Regions","description":"Which regions you ship to (comma-separated: US, CA, MX, EU, UK, AU, worldwide).","type":"string","required":true,"example":"US,CA","default":"US"},{"key":"enableSubscriptions","label":"Enable Subscriptions","description":"Enable recurring subscription products (coffee monthly, supplements auto-refill).","type":"boolean","required":false,"default":"false"},{"key":"enableWholesale","label":"Enable Wholesale","description":"Enable a B2B wholesale tier (verified buyers get bulk pricing).","type":"boolean","required":false,"default":"false"},{"key":"enableMemberPricing","label":"Enable Member Pricing","description":"Enable tiered pricing (members get discount + early access + exclusive products).","type":"boolean","required":false,"default":"false"},{"key":"enableGifting","label":"Enable Gifting","description":"Enable gift wrapping + gift messages at checkout, gift card sales.","type":"boolean","required":false,"default":"true"},{"key":"enableProductBundles","label":"Enable Product Bundles","description":"Enable bundled SKUs (buy the set for a discount).","type":"boolean","required":false,"default":"false"},{"key":"enableProductReviews","label":"Enable Product Reviews","description":"Enable customer reviews on product pages.","type":"boolean","required":false,"default":"true"}],"shared":{"industry":"ecommerce","category":"online-store","glossary":{"Customer":"The person who purchases. Distinct from 'client' (services, ongoing) or 'guest' (hospitality).","SKU":"Stock Keeping Unit — a specific product variant (color + size). One product can have many SKUs.","Order":"A purchase event. May contain multiple line items / SKUs.","Cart":"In-progress purchase before checkout completes. Abandoned cart = cart with items but no checkout.","CAC":"Customer Acquisition Cost — total marketing spend / customers acquired.","LTV":"Customer Lifetime Value — total revenue over the customer relationship.","AOV":"Average Order Value — total revenue / order count.","COGS":"Cost of Goods Sold — the direct cost of the products sold. Includes inventory cost + fulfillment.","Gross margin":"(Revenue - COGS) / Revenue. For DTC, 55-70% is typical; below 50% is fragile.","Cohort retention":"% of a monthly cohort still purchasing in month-N. The single strongest predictor of DTC brand health.","Return rate":"% of orders returned. Category-specific — apparel 15-40%, food/beverage 1-3%, home goods 5-15%."},"aiExpertise":["Running small-batch DTC and specialty ecommerce brands","Product photography + copy that reads honest (not stock-photo aesthetic)","Welcome + abandoned-cart + win-back email sequences","Inventory management for shipped products (reorder timing, stockouts, overstock)","Financial reporting for ecommerce (gross margin per SKU, CAC/LTV, cohort retention)","Subscription product design and churn management","Customer service touchpoints (post-purchase, delivery issues, returns)","Content marketing for DTC brands (blog, social, email) tied to product story"],"suggestions":[{"label":"Weekly sales report","prompt":"Use the revenue-report skill to summarize last week's revenue, top SKUs, and any anomalies worth investigating."},{"label":"Segment customers","prompt":"Use the customer-insights skill to cluster customers into behavioral segments and recommend actions per segment."},{"label":"Refresh product copy","prompt":"Use the product-copy skill to rewrite our top 3 products' copy in a consistent voice."},{"label":"Draft this week's blog","prompt":"Use the blog-draft skill to write a post for {{businessName}} tied to a current product or seasonal moment."},{"label":"Inventory check","prompt":"Use the inventory-health skill to flag what's critical, low, and overstocked, and estimate reorder timing."},{"label":"Design an abandoned cart sequence","prompt":"Use the email-campaign skill to draft a 3-email abandoned-cart recovery sequence."}],"dataModelHints":["person","event","concept","thing"],"dataModel":{"entities":[{"domain":"location","type":"Place","description":"The fulfillment location. For 3PL / dropship, may be conceptual.","products":{"workshop":{"view":"map","icon":"📍"},"venue":{"mapsTo":"TenantMeta","pos":false}}},{"domain":"product","type":"Concept","description":"A product concept — the item as advertised. Has SKUs as variants (color, size).","products":{"workshop":{"view":"gallery","icon":"📦"},"venue":{"mapsTo":"ProductMeta","pos":true}}},{"domain":"sku","type":"Thing","description":"A specific variant — Product + color + size. What actually ships and gets counted in inventory.","products":{"workshop":{"view":"board","icon":"🏷️"},"venue":{"mapsTo":"SkuMeta","pos":true}}},{"domain":"order","type":"Event","description":"A purchase event with line items, shipping address, payment status, fulfillment status.","products":{"workshop":{"view":"timeline","icon":"📥"},"venue":{"mapsTo":"OrderMeta","pos":true}}},{"domain":"customer","type":"Person","description":"A person who has purchased or created an account. Tracks order history, LTV, preferences.","products":{"workshop":{"view":"gallery","icon":"👤"},"venue":{"mapsTo":"CustomerMeta","pos":true}}},{"domain":"cart","type":"Event","description":"In-progress purchase. Becomes an order at checkout or an abandoned cart after timeout.","products":{"workshop":{"view":"board","icon":"🛒"},"venue":{"mapsTo":"CartMeta","pos":true}}},{"domain":"subscription","type":"Concept","description":"Recurring product subscription. Only present when enableSubscriptions is true.","products":{"workshop":{"view":"board","icon":"🔁"},"venue":{"mapsTo":"SubscriptionMeta","pos":true}}},{"domain":"inventory_item","type":"Thing","description":"Stocked inventory (per SKU). Tracks current stock, reorder threshold, unit cost.","products":{"workshop":{"view":"board","icon":"📦"},"venue":{"mapsTo":"InventoryItemMeta","pos":true}}},{"domain":"transaction","type":"Event","description":"Payment event — order payment, subscription charge, refund.","products":{"workshop":{"view":"stats","icon":"💳"},"venue":{"mapsTo":"TransactionMeta","pos":true}}},{"domain":"review","type":"Document","description":"A customer review of a product. Only present when enableProductReviews is true.","products":{"workshop":{"view":"board","icon":"⭐"},"venue":{"mapsTo":"ReviewMeta","pos":false}}},{"domain":"content_page","type":"Document","description":"CMS page or blog post.","products":{"workshop":{"view":"board","icon":"📝"},"venue":{"mapsTo":"ContentPageMeta","pos":false}}}],"relationships":[{"from":"sku","to":"product","verb":"variant-of","description":"A SKU is a specific variant of a product."},{"from":"order","to":"customer","verb":"placed-by","description":"An order is placed by a customer."},{"from":"order","to":"sku","verb":"contains","description":"An order contains one or more SKUs (line items)."},{"from":"cart","to":"customer","verb":"belongs-to","description":"A cart belongs to a customer or anonymous session."},{"from":"transaction","to":"order","verb":"settles","description":"A transaction settles an order."},{"from":"review","to":"product","verb":"about","description":"A review is about a specific product."},{"from":"inventory_item","to":"sku","verb":"tracks","description":"An inventory item tracks the stock level of a specific SKU."},{"from":"subscription","to":"customer","verb":"belongs-to","description":"A subscription belongs to a customer."}]}},"workshop":{"difficulty":"intermediate","templateTier":5,"aiPersona":{"role":"You are the operating brain for a small-batch DTC ecommerce brand. You follow the Soulcraft voice baseline (forge/docs/SOULCRAFT-VOICE.md): warm, human, interactive, confident but not cocky, no fabrication, concrete over abstract, first-person plural for the brand, contrarian when a plan won't work. Your domain overlay: you know the daily rhythm of running an online store (open orders overnight, pull-pack-ship, customer service triage, restock check), the weekly rhythm (marketing calendar, inventory reorder, financial pulse), and the monthly rhythm (cohort retention analysis, CAC/LTV, new product planning). Your tone modifier is 'craft-brand' — like the founder of a specialty coffee brand who cares about the sourcing, the roast profile, AND the unit economics. You are opinionated about product photography (real, not stock) and email sequences (helpful, not automated-feeling).","expertise":["Small-batch DTC and specialty ecommerce operations","Product photography + copy standards (honest, sensory, no stock-photo energy)","Welcome + abandoned-cart + win-back email sequences","Inventory management for shipped products (avoiding both stockouts and overstock)","Financial reporting: gross margin per SKU, CAC/LTV cohort analysis, AOV trends","Subscription product design + churn management","Customer service touchpoints (post-purchase, delivery issues, returns)","Content marketing tied to product story (blog, social, email)"],"tone":"collaborator","avoidances":["Do not fabricate revenue numbers, customer names, or specific outcomes.","Do not use ecommerce-guru buzzwords ('unlock', 'scale', 'growth-hack', 'funnel optimization') as filler — say specifically what changes.","Do not recommend growth tactics that damage brand trust (fake scarcity timers, urgency countdowns, dark UX patterns) — small-batch brands live on trust."]},"workspaceConfig":{"paradigm":"analyst","defaultTab":"explore","defaultView":"board","defaultFile":"README.md"},"graphGuidance":{"conceptCreation":{"triggers":["User adds a new product / SKU","User references a specific customer","User discusses a supplier or fulfillment partner","User mentions a sales channel (Instagram, Amazon, wholesale)"],"typeMapping":{"product":"concept","sku":"thing","customer":"person","order":"event","cart":"event","supplier":"organization","review":"document"}},"rules":["Products are Concepts (advertised item); SKUs are Things (specific variant that ships).","Orders and Transactions are separate — one order can have multiple transactions (initial + refund).","Reviews attach to Products (the concept), not to SKUs."]},"qualityGates":{"projectChecks":["At least one product with real copy + photo + inventory-tracked SKU is defined.","Shipping policy (regions, timing, cost structure) is documented.","Return policy is documented.","If enableSubscriptions is true, subscription cadence + skip/pause rules are documented."]}},"venue":{"experienceTypes":[],"subdomainPrefix":"shop","catalogThemeId":"soulcraft-light","theme":{"primary":"oklch(0.30 0.06 30)","bgBase":"oklch(0.99 0.005 60)","accent":"oklch(0.68 0.15 30)","textPrimary":"oklch(0.20 0.02 60)","displayFont":"Fraunces","bodyFont":"Inter"},"features":{"cms":true,"blog":true,"website":true,"pos":true,"customerAccounts":true,"notifications":true,"analytics":true,"subscriptions":true,"loyalty":true,"giftCards":true,"apps":true},"terminology":{"participant":{"singular":"customer","plural":"customers"},"offering":{"singular":"product","plural":"products"},"reservation":{"singular":"order","plural":"orders"},"group":{"singular":"cart","plural":"carts"},"document":{"singular":"invoice","plural":"invoices"},"host":{"singular":"team member","plural":"team members"},"space":{"singular":"shop","plural":"shops"},"partySize":"Order size","checkIn":"Order received"},"chatSuggestions":[{"label":"Track my order","message":"How can I check on my recent order?","emoji":"📦"},{"label":"Product question","message":"I have a question about one of your products.","emoji":"❓"},{"label":"Shipping + returns","message":"What are your shipping and return policies?","emoji":"🚚"},{"label":"Subscribe","message":"Do you offer subscription options?","emoji":"🔁"}],"fees":{"billingModel":"subscription","feeMode":"none","platformFeeRate":0},"seedData":{"seed":false,"demo":false},"authGate":"action","authExemptRoutes":["/","/blog","/blog/*","/shop","/shop/*","/products","/products/*","/about","/faq","/shipping-returns","/contact"],"pages":[{"slug":"home","type":"homepage","label":"Home","navOrder":0,"showInNav":false},{"slug":"shop","type":"catalog","label":"Shop","navOrder":10,"showInNav":true},{"slug":"blog","type":"blog","label":"Journal","navOrder":20,"showInNav":true,"featureGate":"blog"},{"slug":"about","type":"cms","label":"About","navOrder":30,"showInNav":true,"cmsPageSlug":"about"},{"slug":"faq","type":"cms","label":"FAQ","navOrder":40,"showInNav":true,"cmsPageSlug":"faq"},{"slug":"shipping-returns","type":"cms","label":"Shipping & Returns","navOrder":50,"showInNav":true,"cmsPageSlug":"shipping-returns"},{"slug":"contact","type":"cms","label":"Contact","navOrder":60,"showInNav":true,"cmsPageSlug":"contact"}],"navigation":{"sections":[{"id":"orders","label":"Orders","stationIds":["orders-dashboard"]},{"id":"operations","label":"Operations","stationIds":["inventory-status","customer-health"]}]},"stations":[{"id":"orders-dashboard","label":"Orders","route":"/manage/orders","icon":"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2z","roles":["staff","manager","owner"],"scope":"kit","context":"digital","group":"Operations"},{"id":"inventory-status","label":"Inventory","route":"/manage/inventory","icon":"M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2z","roles":["staff","manager","owner"],"scope":"kit","context":"physical","group":"Operations"},{"id":"customer-health","label":"Customer Health","route":"/manage/customer-health","icon":"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5z","roles":["manager","owner"],"scope":"kit","context":"digital","group":"Operations"}]}}