oneie
Version:
Build apps, websites, and AI agents in English. Zero-interaction setup for AI agents (Claude Code, Cursor, Windsurf). Download to your computer, run in the cloud, deploy to the edge. Open source and free forever.
149 lines (143 loc) • 5.54 kB
YAML
version: 2.0.0
feature: shop
extends: core
status: E-commerce and online store functionality feature
description: E-commerce products, orders, and payments
things:
types:
products:
- name: product
description: Physical or digital product (canonical 'digital_product' type)
properties:
name: string
slug: string
description: string
price: number
compareAtPrice: number?
images: string[]?
inventory: number?
sku: string?
status: string # active|draft|published|archived
- name: product_variant
description: Product variant
properties:
name: string
sku: string
price: number
inventory: number?
options: object?
business:
- name: shopping_cart
description: Shopping cart session
properties:
items: object[]?
subtotal: number?
tax: number?
shipping: number?
total: number?
sessionId: string? # Use session thing instead
- name: order
description: Purchase order (canonical 'payment' type scope)
properties:
orderNumber: string
items: object[]?
subtotal: number?
tax: number?
shipping: number?
total: number?
status: string # pending|completed|failed|refunded
shippingAddress: object?
billingAddress: object?
paymentId: string? # Use connection instead
- name: discount_code
description: Discount/coupon code
properties:
code: string
discountType: string?
discountValue: number
minPurchase: number?
maxUses: number?
usedCount: number?
validFrom: number?
validTo: number?
- name: payment
description: Payment transaction (canonical 'payment' type)
properties:
amount: number
currency: string?
paymentMethod: string?
stripePaymentIntentId: string? # Use metadata instead
status: string # pending|processing|completed|failed|refunded
processedAt: number?
connections:
types:
product_relationships:
- name: purchased # Canonical type
description: User purchased product
fromType: user
toType: product
canonical_alignment: purchased
- name: in_cart
description: Product in user cart (use shopping_cart thing instead)
fromType: user
toType: product
- name: variant_of
description: Variant of product
fromType: product_variant
toType: product
business_relationships:
- name: ordered
description: Order relates to user (use member_of or owns)
fromType: user
toType: order
- name: paid_for
description: Payment pays for order (use connection metadata)
fromType: payment
toType: order
events:
types:
commerce_events:
- name: product_added_to_cart # Maps to canonical 'commerce_event'
description: Product added to cart
canonical_alignment: commerce_event
metadata_structure: { action: cart_item_added, productId: string, quantity: number }
- name: cart_updated # Maps to canonical 'commerce_event'
description: Cart contents updated
canonical_alignment: commerce_event
metadata_structure: { action: cart_updated, total: number }
- name: cart_abandoned # Maps to canonical 'commerce_event'
description: Shopping cart abandoned
canonical_alignment: commerce_event
metadata_structure: { action: abandoned, cartValue: number }
- name: order_placed # Maps to canonical 'commerce_event'
description: Order placed
canonical_alignment: commerce_event
metadata_structure: { action: order_created, orderId: string, total: number }
- name: order_fulfilled # Maps to canonical 'commerce_event'
description: Order fulfilled
canonical_alignment: commerce_event
metadata_structure: { action: order_fulfilled, orderId: string }
- name: order_shipped # Maps to canonical 'commerce_event'
description: Order shipped
canonical_alignment: commerce_event
metadata_structure: { action: order_shipped, trackingNumber: string? }
- name: order_delivered # Maps to canonical 'commerce_event'
description: Order delivered
canonical_alignment: commerce_event
metadata_structure: { action: order_delivered }
- name: payment_processed # Canonical 'payment_event' type
description: Payment successfully processed
canonical_alignment: payment_event
metadata_structure: { status: processed, transactionId: string, amount: number }
- name: payment_failed # Canonical 'payment_event' type
description: Payment processing failed
canonical_alignment: payment_event
metadata_structure: { status: failed, reason: string }
- name: product_viewed # Maps to canonical 'content_event'
description: Product viewed
canonical_alignment: content_event
metadata_structure: { action: viewed, contentType: product }
- name: discount_applied # Maps to canonical 'commerce_event'
description: Discount applied
canonical_alignment: commerce_event
metadata_structure: { discountCode: string, discountAmount: number }