Overview
The Catalog module provides:- Product Management - Create and manage products with variants, options, and attributes
- Category System - Organize products into hierarchical categories
- Collections - Group products into custom collections
- Attribute System - Define custom product attributes and attribute groups
- Search & Filtering - Product search and advanced filtering capabilities
- Inventory Management - Track product stock levels
Module Structure
The Catalog module is located atpackages/evershop/src/modules/catalog/ and contains:
GraphQL Types
Product Type
Category Type
Collection Type
Key Features
Products
Manage products with variants, custom options, images, and pricing
Categories
Hierarchical category structure with unlimited nesting
Collections
Group products into custom collections for marketing
Attributes
Define custom product attributes like color, size, material
Database Schema
The Catalog module defines these main tables:product- Core product dataproduct_description- Product descriptions and contentproduct_image- Product imagesproduct_inventory- Inventory trackingcategory- Category hierarchycategory_description- Category descriptionscollection- Product collectionsattribute- Product attributesattribute_group- Attribute groupingproduct_attribute_value_index- Product-attribute relationships
Working with Products
Creating a Product
Products are created through the admin panel or API. The product creation process:- Define basic product information (name, SKU, price)
- Add product description and images
- Set inventory and shipping details
- Configure product attributes
- Assign to categories and collections
- Publish the product
Product Variants
EverShop supports product variants for items that come in different options (e.g., sizes, colors):Categories
Category Hierarchy
Categories support unlimited nesting:- Root categories (
parentId = null) - Subcategories (
parentIdreferences parent category) - Category URLs are automatically generated from the hierarchy
Category Assignment
Products can be assigned to multiple categories through theproduct_category junction table.
Collections
Collections allow you to group products for:- Featured products - Highlight specific products
- Seasonal collections - Group by season or event
- Product type collections - Group by product type
- Custom collections - Any custom grouping
Attributes
Attribute System
The attribute system allows you to define custom product properties:Attribute Types
- text - Single-line text input
- textarea - Multi-line text input
- select - Single selection dropdown
- multiselect - Multiple selection
Attribute Groups
Attributes are organized into groups for better organization in the admin panel.Search & Filtering
Product Search
The Catalog module provides full-text search capabilities:Filtering
Products can be filtered by:- Category
- Price range
- Attributes (color, size, etc.)
- Stock status
- Custom filters
Inventory Management
The inventory system tracks:- Stock quantity - Current stock level
- Stock availability - In stock / Out of stock status
- Manage stock - Enable/disable inventory tracking
- Stock updates - Automatic updates on orders
Best Practices
SEO Optimization: Always set
urlKey, metaTitle, and metaDescription for products and categories to improve search engine visibility.Related Documentation
Catalog Services API
Learn about the Catalog services API
GraphQL Queries
Explore catalog GraphQL queries
Admin Components
Product and category admin components
Storefront Components
Product display components