Adición de soporte para un idioma a HCL Commerce

Puede utilizar la API de REST para actualizar la base de datos de entorno para añadir soporte a HCL Commerce para mostrar texto y contenido en un idioma distinto de los idiomas admitidos predeterminados.

Antes de empezar

Cuando se añade un idioma, es necesario saber y utilizar el código de idioma ISO 639-1 (Alpha-2) y el código de país ISO 3166-1 (Alpha-2) para el idioma. Para obtener más información sobre estos estándares, consulte También debe asegurarse de que su entorno local (código de idioma y código de país) sea una combinación válida soportada por Java. Para obtener más información, consulte :

Procedimiento

  1. 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.
    Estos códigos deben unirse mediante un carácter subrayado ("_") para formar el entorno local que se utiliza para identificar el idioma, por ejemplo, "nl_NL". Con esta información, puede crear el primer cuerpo 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\"
    }
    
  2. 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:

    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 de description es el nombre descriptivo del idioma que se establece con el valor descriptionLanguageId.
    Debe completar varias llamadas POST para incluir una descripción del idioma recién añadido para todos los idiomas admitidos de la tienda e incluir una descripción de todos los idiomas admitidos de la tienda dentro del idioma recién añadido.
  3. 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).
    {
    	"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"
    }
    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.