Ajout de la prise en charge d'une langue à HCL Commerce
Avant de commencer
Procédure
- Composez la requête d'API REST pour ajouter une langue dans HCL Commerce.Pour ajouter une langue, vous devez utiliser l'API REST administrative suivante :
- Langues (https://localhost:443/rest/admin/v2/languages)
Pour composer l'appel API, vous avez besoin des détails suivants pour identifier les paramètres régionaux de la langue à ajouter.- Le code de langue. Ce code doit suivre la norme ISP 639-1 (alpha-2), par exemple "nl" pour la langue néerlandaise (Pays-Bas).
- Le code pays. Ce code doit suivre la norme ISP 3166-1 (alpha-2), par exemple "NL" pour les Pays-Bas.
- Id de langue. Cet ID doit être un entier négatif. Cet ID est utilisé pour identifier les paramètres régionaux linguistiques dans HCL Commerce.
POSTpour l'appel d'API. Le corps de l'appel peut ressembler à l'exemple de corps suivant :{ \"id\": {{langId_nl}}, \"localeName\": {{localeName}}, \"language\": {{language}}, \"country\": {{country}}, \"variant\": null, \"encoding\": \"UTF-8\", \"mimeCharSet\": \"UTF-8\" } - Composez la requête d'API REST pour ajouter les informations descriptives, telles qu'un nom d'affichage, à la nouvelle langue.Lorsque vous ajoutez des informations descriptives linguistiques, vous devez utiliser l'API REST administrative suivante :
- Descriptions de la langue (https://localhost:443/rest/admin/v2/language-descriptions)
Ce nom d'affichage descriptif est utilisé par les clients et les utilisateurs professionnels pour identifier la langue. Ce nom peut être visible dans la vitrine lorsque les utilisateurs parcourent le magasin dans cette langue ou dans d'autres langues. Il s'affiche également pour la langue dans Management Center. Lorsque vous ajoutez une nouvelle langue, ajoutez un nom pour votre nouvelle langue dans toutes les langues prises en charge par votre site afin que les utilisateurs de la vitrine puissent identifier la nouvelle langue, quelle que soit la langue prise en charge dans laquelle ils parcourent un magasin. Ajoutez également un nom descriptif pour toutes vos langues prises en charge dans votre nouvelle langue, afin que les utilisateurs puissent identifier les autres langues lorsqu'ils parcourent un magasin dans votre nouvelle langue.
Le corps de l'appel permettant d'ajouter des informations descriptives peut ressembler à la structure de corps suivant :{ \"descriptionLanguageId\": {{langId_nl}}, \"description\": {{ownLanguage}}, \"languageId\": {{langId_nl}} }- Le paramètre
descriptionLanguageIdindique l'ID de langue de la langue pour laquelle la description est associée. - Le paramètre
languageIdindique la langue qui doit être activement sélectionnée pour la description à utiliser. Par exemple, si la valeur de cet ID est "-1" (anglais des Etats-Unis), la valeur dedescriptionest le nom descriptif de la langue qui est définie avec la valeurdescriptionLanguageId.
- Exécutez vos appels d'API REST et ajoutez la langue à HCL Commerce.Pour exécuter vos appels d'API REST, vous pouvez regrouper vos appels REST dans une collection JSON avec les appels API pour ajouter la langue à un magasin afin d'exécuter tous les appels dans l'ordre. La collection suivante montre comment regrouper les appels d'API pour l'ajout d'une langue.
{ "info": { "_postman_id": "ae005479-0194-47e1-941a-19201b53f624", "name": "New Language", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "item": [ { "name": "Create", "item": [ { "name": "Post Language", "request": { "auth": { "type": "basic", "basic": [ { "key": "username", "value": "{{username}}", "type": "string" }, { "key": "password", "value": "{{password}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n\t\"id\": {{langId_nl}},\n \"localeName\": {{localeName}},\n \"language\": {{language}},\n \"country\": {{country}},\n \"variant\": null,\n \"encoding\": \"UTF-8\",\n \"mimeCharSet\": \"UTF-8\"\n}" }, "url": { "raw": "https://{{ts-hostname}}:{{ts-port}}/rest/admin/v2/languages", "protocol": "https", "host": [ "{{ts-hostname}}" ], "port": "{{ts-port}}", "path": [ "rest", "admin", "v2", "languages" ] } }, "response": [] }, { "name": "PostLanguage Description in new language", "request": { "auth": { "type": "basic", "basic": [ { "key": "password", "value": "{{password}}", "type": "string" }, { "key": "username", "value": "{{username}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Content-Type", "type": "text", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n\t\"descriptionLanguageId\": {{langId_nl}},\n\t\"description\": {{ownLanguage}},\n\t\"languageId\": {{langId_nl}}\n}\n" }, "url": { "raw": "https://{{ts-hostname}}:{{ts-port}}/rest/admin/v2/language-descriptions", "protocol": "https", "host": [ "{{ts-hostname}}" ], "port": "{{ts-port}}", "path": [ "rest", "admin", "v2", "language-descriptions" ] } }, "response": [] }, { "name": "Post English Language Description in new Language", "request": { "auth": { "type": "basic", "basic": [ { "key": "password", "value": "{{password}}", "type": "string" }, { "key": "username", "value": "{{username}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Content-Type", "type": "text", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"descriptionLanguageId\": {{langId_en}},\n \"description\": {{englishNewLanguage}},\n \"languageId\": {{langId_nl}}\n}" }, "url": { "raw": "https://{{ts-hostname}}:{{ts-port}}/rest/admin/v2/language-descriptions", "protocol": "https", "host": [ "{{ts-hostname}}" ], "port": "{{ts-port}}", "path": [ "rest", "admin", "v2", "language-descriptions" ] } }, "response": [] }, { "name": "Post Langugae Description in English", "request": { "auth": { "type": "basic", "basic": [ { "key": "password", "value": "{{password}}", "type": "string" }, { "key": "username", "value": "{{username}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Content-Type", "type": "text", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n\t\"descriptionLanguageId\": {{langId_nl}},\n\t\"description\": {{englishLanguage}},\n\t\"languageId\": {{langId_en}}\n}\n" }, "url": { "raw": "https://{{ts-hostname}}:{{ts-port}}/rest/admin/v2/language-descriptions", "protocol": "https", "host": [ "{{ts-hostname}}" ], "port": "{{ts-port}}", "path": [ "rest", "admin", "v2", "language-descriptions" ] } }, "response": [] }, { "name": "Post Languages to SAS", "request": { "auth": { "type": "basic", "basic": [ { "key": "password", "value": "{{password}}", "type": "string" }, { "key": "username", "value": "{{username}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Content-Type", "type": "text", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\r\n \"storeId\": {{storeAssetStroreId}},\r\n \"languageId\": {{langId_nl}},\r\n \"currency\": null\r\n}" }, "url": { "raw": "https://{{ts-hostname}}:{{ts-port}}/rest/admin/v2/store-languages?", "protocol": "https", "host": [ "{{ts-hostname}}" ], "port": "{{ts-port}}", "path": [ "rest", "admin", "v2", "store-languages" ], "query": [ { "key": "languageId", "value": "-1", "disabled": true } ] } }, "response": [] }, { "name": "Post Languages to CAS", "request": { "auth": { "type": "basic", "basic": [ { "key": "password", "value": "{{password}}", "type": "string" }, { "key": "username", "value": "{{username}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Content-Type", "type": "text", "value": "application/json" } ], "body": { "mode": "raw", "raw": "\r\n{\r\n \"storeId\": {{catalogAssetStoreId}},\r\n \"languageId\": {{langId_nl}},\r\n \"currency\": null\r\n}" }, "url": { "raw": "https://{{ts-hostname}}:{{ts-port}}/rest/admin/v2/store-languages?", "protocol": "https", "host": [ "{{ts-hostname}}" ], "port": "{{ts-port}}", "path": [ "rest", "admin", "v2", "store-languages" ], "query": [ { "key": "languageId", "value": "-1", "disabled": true } ] } }, "response": [] }, { "name": "Post Languages to Store", "request": { "auth": { "type": "basic", "basic": [ { "key": "password", "value": "{{password}}", "type": "string" }, { "key": "username", "value": "{{username}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Content-Type", "type": "text", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\r\n \"storeId\": {{esiteStoreId}},\r\n \"languageId\": {{langId_nl}},\r\n \"currency\": null\r\n}" }, "url": { "raw": "https://{{ts-hostname}}:{{ts-port}}/rest/admin/v2/store-languages?", "protocol": "https", "host": [ "{{ts-hostname}}" ], "port": "{{ts-port}}", "path": [ "rest", "admin", "v2", "store-languages" ], "query": [ { "key": "languageId", "value": "-1", "disabled": true } ] } }, "response": [] } ] }, { "name": "Build Index", "item": [ { "name": "BUILD INDEX", "event": [ { "listen": "test", "script": { "id": "1597ae48-ade9-48ce-b346-09a43a00ff06", "exec": [ "pm.environment.set(\"JobId\", pm.response.json().jobStatusId);", "" ], "type": "text/javascript" } } ], "request": { "auth": { "type": "basic", "basic": [ { "key": "password", "value": "passw0rd", "type": "string" }, { "key": "username", "value": "spiuser", "type": "string" } ] }, "method": "POST", "header": [], "body": { "mode": "raw", "raw": "" }, "url": { "raw": "https://{{ts-hostname}}:{{ts-port}}/wcs/resources/admin/index/dataImport/build?masterCatalogId=10001", "protocol": "https", "host": [ "{{ts-hostname}}" ], "port": "{{ts-port}}", "path": [ "wcs", "resources", "admin", "index", "dataImport", "build" ], "query": [ { "key": "masterCatalogId", "value": "10001" } ] } }, "response": [] }, { "name": "JOB STATUS", "request": { "auth": { "type": "basic", "basic": [ { "key": "password", "value": "passw0rd", "type": "string" }, { "key": "username", "value": "spiuser", "type": "string" } ] }, "method": "GET", "header": [], "body": { "mode": "raw", "raw": "" }, "url": { "raw": "https://{{ts-hostname}}:3738/search/admin/resources/index/build/status?jobStatusId={{JobId}}", "protocol": "https", "host": [ "{{ts-hostname}}" ], "port": "3738", "path": [ "search", "admin", "resources", "index", "build", "status" ], "query": [ { "key": "jobStatusId", "value": "{{JobId}}" } ] } }, "response": [] } ] } ] }Pour utiliser cette collection, vous devez définir les variables d'environnement de l'API. Les appels API de la collection sont structurés avec des variables. Les valeurs utilisées pour les variables peuvent être incluses dans un fichier JSON distinct. Le fichier suivant comprend des exemples de valeurs pour la définition du néerlandais des Pays-Bas.
Remplacez les exemples de valeurs définis dans le fichier par les valeurs des magasins et la langue que vous ajoutez à votre environnement. Vous pouvez ensuite utiliser la collection et les fichiers de valeurs pour exécuter les requêtes d'API afin d'ajouter la langue.{ "id": "436186fc-583d-4a22-ab90-a79f8ed560e8", "name": "Language", "values": [ { "key": "language", "value": "\"nl\"", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "country", "value": "\"NL\"", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "localeName", "value": "\"nl_NL\"", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "langId_nl", "value": "-1015", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "langId_en", "value": "-1", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "ts-hostname", "value": "localhost", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "ts-port", "value": "443", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "search-port", "value": "3738", "description": "", "enabled": true }, { "key": "ownLanguage", "value": "\"Nederland\"", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "englishLanguage", "value": "\"Dutch Netherlands\"", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "englishNewLanguage", "value": "\"Verenigde Staten Engels\"", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "username", "value": "wcsadmin", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "password", "value": "wcs1admin", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "esiteStoreId", "value": "1", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "storeAssetStroreId", "value": "11001", "description": { "content": "", "type": "text/plain" }, "enabled": true }, { "key": "catalogAssetStoreId", "value": "10501", "description": { "content": "", "type": "text/plain" }, "enabled": true } ], "_postman_variable_scope": "environment", "_postman_exported_at": "2019-04-04T14:03:22.468Z", "_postman_exported_using": "Postman/7.0.7" }