https://github.com/virtocommerce/vc-module-x-cms
The X-CMS module serves as a component for managing and delivering dynamic content within the system. It provides capabilities for creating, organizing, and presenting various types of content.
https://github.com/virtocommerce/vc-module-x-cms
cms graphql xapi
Last synced: 16 days ago
JSON representation
The X-CMS module serves as a component for managing and delivering dynamic content within the system. It provides capabilities for creating, organizing, and presenting various types of content.
- Host: GitHub
- URL: https://github.com/virtocommerce/vc-module-x-cms
- Owner: VirtoCommerce
- License: other
- Created: 2024-06-17T09:06:11.000Z (over 1 year ago)
- Default Branch: dev
- Last Pushed: 2026-01-12T15:11:01.000Z (about 1 month ago)
- Last Synced: 2026-01-12T21:26:25.211Z (about 1 month ago)
- Topics: cms, graphql, xapi
- Language: C#
- Homepage:
- Size: 92.8 KB
- Stars: 0
- Watchers: 8
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Virto Commerce CMS Experience API (xCMS) Module [](https://github.com/VirtoCommerce/vc-module-x-cms/actions?query=workflow%3A"Module+CI") [](https://sonarcloud.io/dashboard?id=VirtoCommerce_vc-module-x-cms) [](https://sonarcloud.io/dashboard?id=VirtoCommerce_vc-module-x-cms) [](https://sonarcloud.io/dashboard?id=VirtoCommerce_vc-module-x-cms) [](https://sonarcloud.io/dashboard?id=VirtoCommerce_vc-module-x-cms)
## Overview
The Virto Commerce CMS Experience API (xCMS) Module is a headless content delivery layer for Virto Commerce, focused on exposing CMS data via the Experience API (xAPI).
It provides a unified GraphQL interface for dynamic content, pages, and page builder experiences, optimized for storefronts and composable frontends.
### Architecture
The module is built on top of:
- `VirtoCommerce.ContentModule.Core` – content storage and assets
- `VirtoCommerce.PageBuilderModule.Core` – page builder blocks and layouts
- `VirtoCommerce.Pages.Core` – pages and routing
- `VirtoCommerce.Xapi.Core` – Experience API infrastructure
Key architectural concepts:
- **Headless content delivery**: All content is accessed via xAPI (GraphQL) instead of direct CMS APIs.
- **Store and culture aware**: Content resolution is scoped by `StoreId`, `CultureName`, and optionally `UserId` / `OrganizationId`.
- **Search-based access**: Pages and content are retrieved from search indexes (e.g., `GetPageDocumentsQuery`) for performance.
- **Extensibility**: Module can be extended with custom GraphQL types, fields, and resolvers.
### Core Principles
- **API-first**: Designed as an xAPI wrapper for CMS capabilities.
- **Performance-oriented**: Uses search indexes and paging (`Skip` / `Take`) for scalable content delivery.
- **Multi-tenant and multi-language**: Respects Virto Commerce store and language configuration.
- **Non-intrusive**: Does not replace core CMS modules, but augments them with Experience API endpoints.
## Key Features
### Content Delivery
- **Page documents**: Retrieve page documents from the search index for the current date and context.
- **Dynamic content**: Deliver CMS content personalized by user, organization, store, and culture.
- **Routing support**: Resolve pages and content based on requested URLs and store configuration.
- **Search and filtering**: Filter pages by keyword, culture, and other contextual attributes.
## Documentation
- [xCMS module documentation](https://docs.virtocommerce.org/platform/developer-guide/GraphQL-Storefront-API-Reference-xAPI/Content/overview/)
- [Experience API Documentation](https://docs.virtocommerce.org/platform/developer-guide/GraphQL-Storefront-API-Reference-xAPI/)
- [Getting started](https://docs.virtocommerce.org/platform/developer-guide/GraphQL-Storefront-API-Reference-xAPI/getting-started/)
- [How to use GraphiQL](https://docs.virtocommerce.org/platform/developer-guide/GraphQL-Storefront-API-Reference-xAPI/graphiql/)
- [How to use Postman](https://docs.virtocommerce.org/platform/developer-guide/GraphQL-Storefront-API-Reference-xAPI/postman/)
- [How to extend](https://docs.virtocommerce.org/platform/developer-guide/GraphQL-Storefront-API-Reference-xAPI/x-api-extensions/)
- [Virto Commerce Frontend architecture](https://docs.virtocommerce.org/storefront/developer-guide/architecture/)
- [View on GitHub](https://github.com/VirtoCommerce/vc-module-x-cms)
## References
- [Deployment](https://docs.virtocommerce.org/platform/developer-guide/Tutorials-and-How-tos/Tutorials/deploy-module-from-source-code/)
- [Installation](https://docs.virtocommerce.org/platform/user-guide/modules-installation/)
- [Home](https://virtocommerce.com)
- [Community](https://www.virtocommerce.org)
- [Download latest release](https://github.com/VirtoCommerce/vc-module-x-cms/releases/latest)
## License
Copyright (c) Virto Solutions LTD. All rights reserved.
Licensed under the Virto Commerce Open Software License (the "License"); you
may not use this file except in compliance with the License. You may
obtain a copy of the License at http://virtocommerce.com/opensourcelicense
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.