
L’une des nouvelles fonctionnalités les plus intéressantes de Sitecore 10 est la sérialisation de contenu de Sitecore (SCS), un outil de sérialisation, de partage, de contrôle de version et de déploiement d’éléments de contenu. Il remplace les outils externes comme TDS ou Unicorn.
Dans cet article, je vais vous expliquer comment configurer facilement SCS pour commencer à sérialiser vos éléments en un rien de temps. Je vais vous montrer comment sérialiser des éléments en dehors d’un projet Visual Studio, de sorte que vous verrez que vous n’avez pas besoin d’outils externes pour le faire. Bien sûr, la sérialisation peut être effectuée dans le cadre d’une solution VS, et la configuration est exactement la même.
J’ai installé localement la démo Sitecore Commerce 10 Storefront, nous avons donc beaucoup d’articles à sérialiser.
Mon serveur local CM est https://sc10sc.dev.local
Mon serveur d’identité est https://scidentityserver.dev.local
En plus d’une instance Sitecore 10, vous devrez avoir .Net Core 3.1 installé sur votre serveur.
La configuration se déroule en trois temps:
- Installer Sitecore Management Service
- Installer Sitecore Command-Line Interface (CLI)
- Se connecter a notre instance et serialiser les items
Installez le service de gestion Sitecore
Vous devez installer le package Sitecore Management Service sur votre instance locale de Sitecore CM afin de prendre en charge l’interface de ligne de commande Sitecore.
- Téléchargez le module Sitecore Management Services sous forme de package compressé (Sitecore Management Services Module ZIP Package) depuis Sitecore Downloads
- Installez ce module depuis le Panneau de Controle

Installer l’interface de ligne de commande (CLI) Sitecore
Ouvrez la console Powershell et changez de répertoire dans un nouveau dossier. Comme je l’ai déjà écrit, nous allons configurer cette sérialisation en dehors de tout autre projet ou outil. Mais si vous souhaitez que la sérialisation ait lieu dans une solution Visual Studio, vous pouvez allez dans le répertoire à la racine de votre solution.
Installez la CLI Sitecore en tant qu’outil de projet local en tapant les instructions suivantes:
cd d:\
mkdir Serialization
cd Serialization
dotnet new tool-manifest
dotnet tool install Sitecore.CLI --add-source https://sitecore.myget.org/F/sc-packages/api/v3/index.json
Sérialisation de vos objets
Vous devez maintenant initialiser votre projet et créer le fichier racine pour la sérialisation: sitecore.json
Dans votre console Powershell, ecrivez:
dotnet sitecore init
Un nouveau fichier est maintenant créé, sitecore.json
{
"$schema": "./.sitecore/schemas/RootConfigurationFile.schema.json",
"modules": [ "./TODO/*.module.json" ],
"serialization": {
"defaultMaxRelativeItemPathLength": 100,
"defaultModuleRelativeSerializationPath": "serialization"
}
}
Dans l’élément “modules”, vous indiquerez les modules Sitecore que vous souhaitez sérialiser. Vous pouvez pointer vers de nombreux modules, séparément ou avec des caractères joker (*). Il utilise la structure de dossiers de votre solution. Si vous êtes dans une solution basée sur Helix (avec les sources de chaque module placées sous le dossier “src/Foundation|Feature|Project/$ModuleName$”), vous vous retrouverez probablement avec une valeur comme “src/*/*/*.module.json “. Cela indiquera au sérialiseur de rechercher chaque fichier .module.json dans les dossiers trois étages sous le dossier source “src”.
Pour le bien de notre article, et pour voir comment changer Sitecore DB, supposons que nous voulons sérialiser deux types d’éléments différents:
- Les objets à partir de /sitecore/content/Sitecore/Storefront/Home (master DB)
- Les objets à partir de /sitecore/client/Applications/MarketingAutomation (core DB)
Nous crééons deux répertoires sous notre d:\Serialization
cd d:\Serializationmkdir contentmkdir client
Dans chaque répertoire, nous crééons un fichier json: content.json and client.json
Ces fichiers remplissent les fichiers d’instructions avec les chemins et les informations dont SCS a besoin pour chaque pièce. Le contenu et les valeurs possibles des variables de ces fichiers sont expliqués dans la documentation Sitecore
content.json
{
"namespace": "Content",
"references": "",
"items": {
"includes": [
{
"name": "content",
"path": "/sitecore/content/Sitecore/Storefront/Home",
"allowedPushOperations": "createUpdateAndDelete",
"scope": "itemAndDescendants"
}
]
}
}
client.json
{
"namespace": "Client",
"references": "",
"items": {
"includes": [
{
"name": "client",
"path": "/sitecore/client/Applications/MarketingAutomation",
"allowedPushOperations": "createUpdateAndDelete",
"scope": "itemAndDescendants",
"database": "core"
}
]
}
}
Mon fichier sitecore.json est maintenant
{
"$schema": "./.sitecore/schemas/RootConfigurationFile.schema.json",
"modules": [
"./client/client.json",
"./content/content.json"
],
"serialization": {
"defaultMaxRelativeItemPathLength": 100,
"defaultModuleRelativeSerializationPath": "serialization"
}
}
Tous les fichiers sont définis. Nous devons maintenant nous connecter à notre instance Sitecore. Dans la console Powershell, saisissez
cd d:\Serializationdotnet sitecore login --authority
https://sc10identityserver.dev.local --cm https://sc10sc.dev.local --allow-write true
Un navigateur s’ouvre et vous demande de vous connecter à votre instance Sitecore CM et vous devez accepter d’attribuer les autorisations à l’API Sitecore et à l’accès hors ligne.

Cliquez sur “Oui, Autoriser” et fermez cette fenêtre de navigateur.
Vous êtes maintenant prêt et vous pouvez commencer à importer vos éléments de site Web avec la commande:
dotnet sitecore ser pull
Sitecore CLI répertorie tous les éléments qui seront sérialisés et crée un dossier de «sérialisation» sous chaque module avec les descriptions de chaque élément Sitecore en language Yaml. Vous pouvez utiliser la sérialisation json si vous la configurez dans leApp_Config\Sitecore\CMS.Core\Sitecore.Serialization.config file


Si vous souhaitez modifier un élément et le désérialiser vers Sitecore, utilisez la commande suivante
dotnet sitecore ser push
Les différentes commandes de la CLI Sitecore sont:
SITECORE LOGIN | |
sitecore login | Se connecte à une instance Sitecore. |
SITECORE INIT | |
sitecore init | Initialise une configuration de projet dans le dossier en cours. |
SITECORE PUBLISH | |
sitecore publish | Publie tout le contenu de la base de données Master à la base de données Web. |
SITECORE SER or SITECORE SERIALIZATION | |
sitecore ser diff | Compare les éléments de contenu de deux instances Sitecore. |
sitecore ser explain | Explique si le chemin d’un élément de contenu est inclus et pourquoi. |
sitecore ser info | Affiche les informations de configuration de sérialisation. |
sitecore ser package | Répertorie les commandes du package de sérialisation. |
sitecore ser package create | Crée un package d’éléments de contenu (content items) sérialisés. |
sitecore ser package install | Installe un package d’éléments de contenu (content items) sérialisés dans une instance Sitecore. |
sitecore ser pull | Sérialise les éléments de contenu (content items) d’une instance Sitecore vers votre système de fichiers. |
sitecore ser push | Pousse les éléments de contenu sérialisés de votre fichier système vers une instance Sitecore. |
sitecore ser validate | Vérifie la validité des éléments de contenu sérialisés. Peut résoudre les problèmes courants avec l’argument –fix. |
sitecore ser watch | Surveille les modifications apportées aux éléments de contenu dans une instance Sitecore et sérialise automatiquement les modifications apportées à votre système de fichiers. |