SEO mapping developer information
Design
Model
The SEO mapping build process uses the catalog post processing mechanism to process the products (more information can be found here).
The BuildSeoMappingsProcessor
uses the SeoMappingBuilder
to build up the list of SEO mappings of the product catalog by passing each product item to the builder. After processing all products the SEO mappings are saved using the IMappingStorage<SeoAttribute>
. The latter calls the pipeline named mercury.seo.savedata
for saving the data.
Build SEO mappings sequence diagram
The SeoMappingBuilder
instantiates the SeoMappingMerger
with the initial SEO mappings which are retrieved from the IMappingStorage<SeoAttribute>
. The reason for this is, because the previous generated values need to be maintained. The SeoMappingMerger
will return the resulting complete list of SEO mappings.
The SeoMappingBuilder
will map each ProductItemContainer
to a list of ProductWithVariant
objects and retrieves the SEO mappings of these objects from the SeoMapper
. The SEO mappings will be passed to the SeoMappingMerger
for merging which contains business logic to process duplicate mappings etc.
The SeoMapper
is responsible for translating catalog field values to SEO values. The catalog fields which are required for translation can be configured. A format string for the product URL segment and prefix for SEO values can be configured as well. See Configuration SEO mapping for more information about configuration settings.
Build SEO mappings class diagram
Configuration
The process for the generation of the SEO mappings is configured in the catalogPostProcessor
configuration section. For more information, see the catalog post processing article.
Extension points
Pipelines
The following pipelines are offered as extension points for customization:
- mercury.seo.savedata
- mercury.seo.getdata
mercury.seo.savedata
This pipeline saves the SEO mappings.
Mercury provides a processor for saving the SEO mappings to the Sitecore media library and is located in the namespace Mercury.Foundation.Seo.Catalog.Pipelines.SaveData.Seo
.
mercury.seo.getdata
This pipeline retrieves the SEO mappings.
Mercury provides a processor for retrieving the SEO mappings from the Sitecore media library and is located in the namespace Mercury.Foundation.Seo.Catalog.Pipelines.GetData.Seo
.
Configure scheduler
Mercury provides Command
items for the catalog post processing job so this can be scheduled.
The SEO mapping catalog post processing jobs can be scheduled as follow:
- Create a schedule item in Sitecore
- Configure the schedule item
- Command:
/sitecore/system/Tasks/Commands/Mercury SEO Catalog/RebuildSeoMappingCommand
- Items: The website root
- Schedule: Schedule when task should run
- Command: