Adición de soporte para un idioma a HCL Commerce
Antes de empezar
Procedimiento
- Cree la solicitud de la API de REST para añadir un idioma en HCL Commerce.Para añadir un idioma, debe utilizar la siguiente API de REST administrativa:
- Idiomas (https://localhost:443/rest/admin/v2/languages)
Para crear la llamada a la API, necesita los siguientes detalles para identificar el entorno local para el idioma que se va a añadir.- El código de idioma. Este código debe seguir el estándar de ISP 639-1 (Alpha-2), por ejemplo, "nl" para el idioma holandés (Países Bajos).
- El código de país. Este código debe seguir el estándar de ISP 3166-1 (Alpha-2), por ejemplo, "NL" para los Países Bajos.
- El ID de idioma. Este ID debe ser un entero negativo. Este ID se utiliza para identificar el entorno local del idioma dentro de HCL Commerce.
POST
para la llamada a la API. El cuerpo de la llamada puede parecerse al siguiente cuerpo de ejemplo:{ \"id\": {{langId_nl}}, \"localeName\": {{localeName}}, \"language\": {{language}}, \"country\": {{country}}, \"variant\": null, \"encoding\": \"UTF-8\", \"mimeCharSet\": \"UTF-8\" }
- Cree la solicitud de la API de REST para añadir la información descriptiva, como un nombre de visualización para el nuevo idioma.Cuando añada la información descriptiva del idioma, deberá utilizar la siguiente API de REST administrativa:
- Descripciones del idioma (https://localhost:443/rest/admin/v2/language-descriptions)
Este nombre descriptivo de visualización lo utilizan los compradores y los usuarios de empresa para identificar el idioma. Este nombre puede ser visible en el escaparate cuando los usuarios examinan la tienda en ese idioma o en otros idiomas. El nombre también se muestra para el idioma en Management Center. Cuando añada un nuevo idioma, añada un nombre para el nuevo idioma en todos los idiomas admitidos del sitio para que los usuarios del escaparate puedan identificar el nuevo idioma en cualquier idioma soportado en el que estén examinando una tienda. Añada también un nombre descriptivo para todos los idiomas admitidos en el nuevo idioma para que los usuarios puedan identificar los otros idiomas cuando estén examinando una tienda en el nuevo idioma.
El cuerpo de la llamada para añadir información descriptiva puede parecerse a la siguiente estructura de cuerpo:{ \"descriptionLanguageId\": {{langId_nl}}, \"description\": {{ownLanguage}}, \"languageId\": {{langId_nl}} }
- El parámetro
descriptionLanguageId
indica el ID de idioma del idioma para el que está asociada la descripción. - El parámetro
languageId
indica el idioma que debe seleccionarse activamente para que se utilice la descripción. Por ejemplo, cuando el valor de este ID es "-1" (inglés de Estados Unidos), el valor dedescription
es el nombre descriptivo del idioma que se establece con el valordescriptionLanguageId
.
- Ejecute las llamadas a la API de REST y añada el idioma a HCL Commerce.Para ejecutar las llamadas de la API de REST, puede empaquetar las llamadas de REST en una recopilación JSON con las llamadas a la API para añadir el idioma a una tienda y ejecutar todas las llamadas en secuencia. La recopilación siguiente muestra cómo empaquetar las llamadas de la API para añadir un idioma.
{ "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": [] } ] } ] }
Para utilizar esta recopilación, debe definir las variables de entorno de la API. Las llamadas a la API dentro de la recopilación se estructuran con variables. Los valores que se utilizan para las variables se pueden incluir en un archivo JSON independiente. El archivo siguiente incluye valores de ejemplo para definir el idioma neerlandés (Países Bajos).
Sustituya los valores de ejemplo que se han establecido dentro del archivo por los valores de las tiendas y el idioma que se añaden a su entorno. A continuación, puede utilizar los archivos Collection y Values para ejecutar las solicitudes de la API para añadir el idioma.{ "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" }