# Enad > AI-Native Commerce Data System — combining PIM, DAM, CDM, IDP, and DXP in a unified platform for modern e-commerce. Enad is a Commerce Data System where users manage product data, digital assets, customer data, and identities from a single platform. With built-in AI (OpenAI, Gemini, or Enad's proprietary model), it streamlines product workflows, reduces manual processes, and improves efficiency across product management operations. Enad is designed for e-commerce businesses that need to manage large product catalogs, distribute product data across multiple channels, and deliver consistent digital experiences — with no platform lock-in. ## Product - [Home](https://enad.io): Primary marketing page — product overview, features, integrations, and contact form - [Docs](https://docs.enad.io): Comprehensive documentation for developers and users - [Management API Reference](https://docs.enad.io/docs/apis/management-api#management-api): Full API reference for product data, categories, attributes, brands, collections, and bundles - [Shopper API Reference](https://docs.enad.io/docs/apis/shopper-api): Consumer-facing API for storefront product access - [OpenAPI Specs](https://swagger.enad.io): Machine-readable specs — management-api.json, shopper-api.json, auth-api.json ## Services - `https://api.enad.io` — Management API (products, variants, orders, assets, taxonomy) - `https://kamek.enad.io` — AI service (translation, content generation, image generation) - `https://usage.enad.io` — Usage and analytics API - `https://app.enad.io` — Admin frontend ## API Design - **Architecture**: REST, JSON, versioned at `/api/v1/` - **URL pattern**: `/api/v1/{team_slug}/{app_slug}/{resource}` - **Auth**: Bearer JWT. Two token resource types: `management` (data operations) and `customers` (shopper/CDM operations) - **Response envelope**: `{ success: true, data: T }` or `{ success: false, message: string, details?: string[] }` - **Pagination**: `?page={n}&per_page={n}` on list endpoints - **Multi-tenancy**: Every resource is scoped by `team_slug` + `app_slug`. Teams own multiple Apps; Apps map to stores or environments (`production | staging | test`) ## Core Capabilities - **Product Information Management (PIM)**: Full-featured PIM solution for managing products, variants, categories, attributes, and collections — with omnichannel support, multilingual capabilities, and seamless distribution across markets - **Digital Asset Management (DAM)**: Centralized management of images, videos, documents, and other digital assets — with role-based folder access and external shareable links - **Customer Data Management (CDM)**: Securely manage authenticated customer data in a centralized layer, syncing with your CRM for a unified customer journey - **Identity Provider (IDP)**: Built-in identity management for authenticating digital identities and enabling single sign-on across applications - **Digital Experience Platform (DXP)**: Optimizes digital experiences across multiple touchpoints with Product Feeds, API integrations, and a high-performance CDN ## Data Model ### Tenant Hierarchy ``` Team └── App (production | staging | test) ├── StoreGroup (B2B | B2C) │ └── Market (locale + currency + country codes) │ └── Warehouse (physical inventory location) └── Product → Variant → Stock (per Warehouse) → Price (per StoreGroup × Market) ``` ### Core Entities - **Product** — `id`, `product_name`, `product_number`, `slug`, `status` (active | draft | inactive | incomplete | archived), descriptions (plain + HTML), meta tags, custom fields, package and product dimensions, tax group. Supports per-market activation (`market_status[]`) and per-StoreGroup × Market field overrides (`omnichannel`) - **Variant** — child of Product; holds price and stock; supports independent omnichannel overrides per StoreGroup × Market - **Price** — `amount_cents_with_tax`, `sale_price_with_tax`, `reference_price_with_tax`, sale period with start/end timestamps; scoped per StoreGroup × Market - **Stock** — `quantity` per Warehouse with `inventory_date` - **Category** — hierarchical tree with `parent_id` / `children[]`; per-locale slugs, redirect history, and associated attributes - **Collection** — hierarchical manual product groupings with ordering; per-locale slugs and translations - **Tag** — `key`/`name` pairs; `filterable`; market-scoped; can attach to products and to product variants independently - **Attribute** — typed metadata fields (`text | number | boolean | color | image`); defined via AttributeTemplate; `filterable`, `translatable`; attributes can be linked to other attributes within a template - **Brand** — has logo, cover image, and named Series (`BrandSerie`); products belong to a Brand and optionally a BrandSerie - **BundleGroup / Bundle** — promotional product bundles with `fixed | relative` discount rules, quantity thresholds, compliance scoring, sale period, and market scoping - **ProductRelation** — typed `one_way | two_way` links between products with configurable relation type names - **TaxGroup** — per-market and per-country-code tax percentages, assigned at the product level - **Redirect** — old → new slug mappings per locale; auto-generated on slug changes (configurable per App) - **ThirdPartyLink** — external retailer or affiliate links attached to products - **Schedule** — `execute_at` publish/unpublish automation for products and tags ### B2B / Customer Entities - **MerchantOrganisation** — B2B accounts with multiple shipping/billing addresses, VAT, credit check, external reference, custom fields, attribute values, and user role assignments; status: `active | inactive | pending` - **MerchantUser** — end customers / B2B users with login, order history, and organisation membership ### Digital Assets (DAM) - **Image / Video / File** — stored in a hierarchical **Folder** tree with role-based access control per folder - **ShareableLink** — time-limited, password-protected public links covering any mix of folders, images, videos, and files - Assets can be linked to products, variants, categories, tags, and organisations ### Orders - Full commerce order model: sub-total, tax, discounts, shipping, gift cards, bonuses, grand total - Per-order: `currency_code`, `language_code`, `country_code`, payment method, shipping methods - `order_lines[]` capture variant and product IDs with prices at time of purchase - `merchant_user` linkage for B2B orders; `user_content[]` for customer-uploaded files ## Omnichannel Overrides Every product and variant field — name, description, images, categories, attributes, tags, collections, slug, and meta — can be overridden per StoreGroup × Market combination. This is a first-class data model feature built into the core entity structure, not a per-integration layer. ## AI & Automation ### AI Studio (DAM) Session-based image generation with an iterative feedback loop: - Iteration types: `initial` → `variation` (alternatives from a prior output) → `retouch` (edit an existing image) - Aspect ratios: `1:1`, `16:9`, `9:16`, `4:3`, `3:4` - Presets for background, model, lighting, and style — each with reference images and prompts - `num_variations` — generate multiple alternatives per prompt - AI model selector: OpenAI, Google Gemini, or Enad's proprietary model ### Kamek (Content & Translation AI) - **Content jobs** — generate or translate `name`, `description`, `short_description`, `meta_title`, `meta_description`, `slug`, `alt` across products, variants, tags, collections, categories, and images - **Human-in-the-loop approval** — generated content enters a review state; operators approve, deny, or modify individual items before committing; `denied_items[]` and `modified_items[]` tracked per job - **AI Profiles (`KamekProfile`)** — named instruction sets acting as persistent brand-voice system prompts; selectable per job; `is_default` flag - **Distill** — upload brand documents (PDFs, guidelines) to extract structured `key_facts[]`, `style_guidelines[]`, and `constraints[]` that feed into content generation prompts - **`only_missing` flag** — run generation only for items that have no existing content - **`also_generate_translations`** — bundle translation into a single content job ## Publishing Rules Configurable per-App completeness gate before a product can transition to `active` status. Configurable requirements: minimum image count, `should_have_price`, `should_have_product_name`, `should_have_brand`, `should_have_description`, `should_have_category`, `should_have_main_category`. Products failing any rule are flagged as `incomplete`. ## Infrastructure - **Image CDN**: Super-efficient image CDN delivering lightning-fast images worldwide — always optimized for the right format and size for each device - **Events & Webhooks**: Real-time notifications for product, stock, and price changes — configurable endpoint, auth header, delay, and event filtering (`enabled_events[]`) - **CSV Import**: Staged import with per-item review before commit - **Feeds**: Configurable product exports (`google_shopping | google_retailer`) with field mapping, refresh intervals, shipping rules, and per-market/language filtering - **API-First Architecture**: Headless, API-first design; connect tools and apps for smooth, unified workflows ## Integrations - **E-commerce**: Shopify, Brink Commerce, Centra, Norce, Litium - **CMS**: Storyblok, Contentful - **CRM & Marketing**: Klaviyo, Voyado, Nosto - **Advertising**: Google Merchant Center (via google-retailer integration) ## Technology Partners Vercel, Storyblok, Google Cloud, Cloudflare ## Company Enad is a Swedish company built for product teams managing complex catalogs across e-commerce, retail, and manufacturing. The platform is designed to reduce manual data work through AI automation while ensuring data quality and consistency across every sales channel. No silos, no platform lock-in, lower cost of change.