Skip to content

Page type matrix

A reference table mapping admin labels to internal identifiers, and showing which kind of page each one drives.

Defined in Enum\CmsPageTypeEnum:

Admin labelInternal idUsed by
Product pageproduct_detailProduct detail pages
Listing pageproduct_listCategory / listing pages
Landing pagelandingpageLanding pages
Shop pagepageStandalone shop pages (e.g. About, FAQ)
Event classPlugin handlerPage kind
ProductPageLoadedEventonProductPageLoadedProduct detail
NavigationPageLoadedEventonNavigationPageLoadedCategory / listing
LandingPageLoadedEventonLandingPageLoadedLanding page
CategoryEvents::CATEGORY_LOADED_EVENTonCategoryEntityLoadedCMS navigation widget XHR
LandingPageEvents::LANDING_PAGE_LOADED_EVENTonLandingPageEntityLoadedLanding page entity load
Page kindMode enum classAvailable values
Product pageProductPageReplaceModeEnumwithoutCmsPage (default), withoutCmsPageOrReplacementCmsPages, replacementCmsPages, all
Category pageNavigationPageReplaceModeEnumwithDefault (default), replacementCmsPages, all
Landing pageLandingPageReplaceModeEnumwithDefault (default), replacementCmsPages, all

The admin labels for each value are listed in Replacement modes.

What the post-install routine seeds into the Replacement types card:

Incoming page (the base’s type)Default replacement types
Product page (product_detail)product_detail
Shop page (page)page
Landing page (landingpage)landingpage
Listing page (product_list)product_list

You can extend each row with any of the other four CMS page types. See Replacement types for guidance on when to widen.

The plugin reads its settings from SystemConfigService under the domain P2LabCmsAssigner.config.. All keys are also defined as constants on Service\SettingsService:

KeyConstantType
productPageReplaceModeKEY_PRODUCT_PAGE_REPLACE_MODEstring (enum value)
productReplacementCmsPageIdsKEY_PRODUCT_REPLACEMENT_CMS_PAGE_IDSarray of UUIDs
navigationPageReplaceModeKEY_NAVIGATION_PAGE_REPLACE_MODEstring (enum value)
navigationReplacementCmsPageIdsKEY_NAVIGATION_REPLACEMENT_CMS_PAGE_IDSarray of UUIDs
landingPageReplaceModeKEY_LANDING_PAGE_REPLACE_MODEstring (enum value)
landingReplacementCmsPageIdsKEY_LANDING_REPLACEMENT_CMS_PAGE_IDSarray of UUIDs
landingPageDefaultCmsPageIdKEY_LANDING_PAGE_DEFAULT_CMS_PAGE_IDUUID or null
productPageReplaceTypesKEY_PRODUCT_PAGE_REPLACE_TYPESarray of CmsPageTypeEnum values
shopPageReplaceTypesKEY_SHOP_PAGE_REPLACE_TYPESarray of CmsPageTypeEnum values
landingPageReplaceTypesKEY_LANDING_PAGE_REPLACE_TYPESarray of CmsPageTypeEnum values
listingPageReplaceTypesKEY_LISTING_PAGE_REPLACE_TYPESarray of CmsPageTypeEnum values

All keys are per sales channel (with a fallback to the global scope). Setting a value with salesChannelId = null writes the global default.