Skip to main content

Supported blocks

This document provides an overview of block implementation status in the Strapi CMS integration.

All blocks in the Strapi integration are fully implemented with:

  • Complete GraphQL fragments for data fetching
  • Mappers that transform Strapi data to the O2S block model
  • Cache integration for optimized performance

Implementation status

The following table shows the implementation status of all blocks available in the O2S framework:

BlockStatusStrapi TypeNotes
articleArticle (separate module)Fully implemented
article-listComponentComponentsArticleListFully implemented
article-searchComponentComponentsArticleSearchFully implemented
categoryComponentComponentsCategoryFully implemented
category-listComponentComponentsCategoryListFully implemented
faqComponentComponentsFaqFully implemented
featured-service-listComponentComponentsFeaturedServiceListFully implemented
invoice-listComponentComponentsInvoiceListFully implemented
notification-listComponentComponentsNotificationListFully implemented
order-detailsComponentComponentsOrderDetailsFully implemented
order-listComponentComponentsOrderListFully implemented
orders-summaryComponentComponentsOrdersSummaryFully implemented
payments-historyComponentComponentsPaymentsHistoryFully implemented
payments-summaryComponentComponentsPaymentsSummaryFully implemented
quick-linksComponentComponentsQuickLinksFully implemented
service-detailsComponentComponentsServiceDetailsFully implemented
service-listComponentComponentsServiceListFully implemented
surveyjs-formComponentComponentsSurveyJSFully implemented
ticket-detailsComponentComponentsTicketDetailsFully implemented
ticket-listComponentComponentsTicketListFully implemented
ticket-recentComponentComponentsTicketRecentFully implemented
user-accountComponentComponentsUserAccountFully implemented
product-details-Not implemented
product-list-Not implemented
recommended-products-Not implemented
bento-grid-Not implemented
cta-section-Not implemented
document-list-Not implemented
feature-section-Not implemented
feature-section-grid-Not implemented
hero-section-Not implemented
media-section-Not implemented
notification-summary-Not implemented
notification-details-Not implemented
pricing-section-Not implemented
ticket-summary-Not implemented

Blocks with mock data

Some blocks return static mock data instead of fetching content from Strapi. This is typically used for blocks where the actual data comes from external backend services rather than CMS content:

  • notification-details - Returns mock notification details (data comes from notifications service)
  • product-details - Returns mock product details (pending full Strapi integration)
  • product-list - Returns mock product list configuration (pending full Strapi integration)
  • recommended-products - Returns mock recommended products labels (pending full Strapi integration)

These blocks have their visual configuration (labels, table columns, etc.) managed in Strapi, but the actual data is fetched from their respective backend services.

Block structure

Each block in Strapi follows a consistent structure:

  1. GraphQL Fragment - Located in ./src/modules/cms/graphql/fragments/blocks/ - defines what data to fetch
  2. Mapper - Located in ./src/modules/cms/mappers/blocks/ - transforms Strapi data to O2S model
  3. Service Method - Defined in CmsService - provides cached access to block data

Example: FAQ Block

GraphQL Fragment:

fragment FaqComponent on ComponentComponentsFaq {
__typename
id
title
subtitle
items {
title
description
}
}

Service Method:

getFaqBlock(options: CMS.Request.GetCmsEntryParams) {
const key = `faq-component-${options.id}-${options.locale}`;
return this.getCachedBlock(key, () => this.getBlock(options).pipe(map(mapFaqBlock)));
}