Skip to main content

Knowledge Base

A collection of articles and tutorials to help you get the most out of your development experience with the EverShop platform.

Architecture Overview

A deep dive into the EverShop platform architecture. Learn about our modular monolith design, request lifecycle, module system, and the distinction between the source code and project folder structures.

Configuration Guide

A comprehensive guide to configuring an EverShop application. Learn about configuration layers, environment variables, and all the key settings for your store.

Command-Line Interface

Comprehensive guide to EverShop's command-line interface with detailed explanations of commands for building, developing, and managing your online store.

Store Settings

How EverShop stores merchant-editable settings in the setting table, the sync and async getter family, and how to migrate extension code from config keys to setting getters.

The Routing System

A deep dive into the EverShop routing system. Learn how routes are defined for API endpoints and pages, how the folder structure works, and how to generate URLs.

The Middleware System

Learn about the middleware system in EverShop. How middlewares work and how to create, add, and remove middleware functions from a route.

Registry and Processors

The Registry and Processor system is EverShop's primary mechanism for extending and transforming data across modules without modifying core code.

Pages

EverShop pages are located in the `pages` folder of each module. Learn how to create pages in your extension.

RESTful API Routes

Learn how to build and manage RESTful API endpoints in EverShop to provide robust backend functionality with proper authentication and validation.

GraphQL

This document explains how the EverShop GraphQL system works, how to create a GraphQL type, and how to extend existing GraphQL types.

Data Fetching

EverShop allows you to fetch data from the server using the GraphQL query language. This document explains how to fetch data from the server and pass it to React Component using GraphQL.

Events and Subscribers

EverShop provides a powerful event system that allows you to subscribe to the event and execute your code when the event is triggered.

Cron Jobs

EverShop provides a powerful cron job system that allows you to schedule tasks to run at specific intervals.

Product Recommendations

EverShop ships rule-based related products and data-driven frequently-bought-together recommendations, with global, category, and product-level configuration and two storefront widgets.

The Database

Learn how to connect to the database, build type-safe queries, and manage transactions in EverShop.

Database Migration

Learn how to use migration scripts to upgrade your database schema

Static File Serving

Learn how EverShop serves static files like images from the public directory and how to properly reference them in your code.

File Storage

How EverShop stores uploaded media, the four-processor registry seam that swaps storage backends, the built-in S3, Azure Blob and Google Cloud Storage providers, and how to write your own.

Payment Method Development

Learn how to create a custom payment method for EverShop, from registration to order placement.

Email System

Learn how EverShop sends emails, how to register a custom email service provider, and how to customize email templates and data.

Order Status Management

Understand how EverShop manages order, payment, and shipment statuses, including state transitions and custom status definitions.

Cart Field System

Learn how EverShop's cart field system works and how to add custom fields to carts and cart items.

Zero-Total Checkout

How EverShop places orders whose grand total is zero, the reserved zero_checkout payment method, and what it breaks for existing payment extensions.

Shipping Provider Development

Build a custom shipping provider for EverShop — register it at bootstrap, implement getMethods, and return live rates to the checkout.

Carrier Development

Build a carrier integration for EverShop — register it at bootstrap, implement optional label, tracking and pickup capabilities, and drive shipment status from carrier events.

Multi-Shipment and Fulfillment

How EverShop models many shipments per order, how per-shipment phases roll up into the order-level shipment status, and the service APIs extension authors must use.

Multi-Language Stores

How EverShop enables multiple storefront languages, resolves a locale per request, prefixes URLs, and exposes the active locale to themes and resolvers.

Fast Refresh

Fast Refresh is a Evershop feature that gives you instantaneous update on edits made to your code. It is enabled by default in the development mode.

Translation

Author translations for EverShop as CSV dictionaries loaded at runtime, and look them up with translate() on the server and _() on the client.

Sitemap & robots.txt

EverShop automatically generates and serves a search-engine sitemap (sitemap.xml) and a robots.txt, including hreflang alternates for multi-language stores.

URL Redirects

How EverShop keeps old entity URLs alive after a url_key or category change — the url_redirect table, where redirects are captured, chain collapse, and the bare-slug fallback.

Metafields

Metafields let you attach typed, validated custom data to EverShop entities — products, categories, customers, orders, and more — store it in a JSONB column, and read it back through GraphQL.

Blog

How EverShop's core blog module works — storefront routes and friendly URLs, the database schema, the GraphQL surface, comment moderation, reactions, reading time, the featured blogs widget, blog URNs, metafields, and sitemap collectors.

Page Builder

How the EverShop page builder works under the hood — the draft changeset model, the preview overlay, publish and scheduled rollouts, and how to make your own storefront route page-builder-editable.

Large-Catalog Performance

What breaks when an EverShop catalog reaches hundreds of thousands of products, the query patterns that cause it, and the fixes shipped in 2.2.1.

Checkout Settings

The guest-checkout toggle, where it is enforced, the shipping-note option, and how to add your own pre-order validation rules.

Package Management

The package (parcel sizing) entity added in EverShop 2.2.1 — schema, dimension snapshots, tare weight, the packing strategy, and how carriers receive parcels.

Error Handling and Degradation

How EverShop 2.2.1 fails — SSR render errors, partial GraphQL results, the root error boundary — and what that means for component and resolver authors.