Integración con Commerce Cloud
El archivo embed_snippet_sandbox.html contiene el código JavaScript que hay que insertar en las plantillas de Commerce Cloud para mostrar el chat del agente.
Qué hace el snippet
- Detecta automáticamente el locale del cliente del primer segmento de la URL (ej:
/es-es/→es_ES,/fr-fr/→fr_FR). - Guarda el locale en
window.HAWKERS_LOCALEy el idioma corto enwindow.HAWKERS_LANG. - Carga el SDK de Agentforce Messaging desde Salesforce.
- Inicializa el agente con
siteUrl,agentIdydomainUrldel sandbox. - Pasa el idioma detectado como parámetro de UI al widget de chat.
Parámetros del snippet (sandbox)
| Parámetro | Valor |
|---|---|
siteUrl | https://saldum--uat.sandbox.my.site.com/AFMHawkersProductAdviso1781091729027 |
agentId | 0XxRR0000009yJV0AY |
domainUrl | https://saldum--uat.sandbox.my.salesforce.com |
| Messaging SDK | https://test-service.force.com/embeddedservice/agentforcemessaging/0.3/init.js |
:::info Para producción
Crear un snippet equivalente con los valores del org de producción. La URL del SDK no lleva el prefijo test-service.
:::
Dónde insertar el snippet en SFCC
common/layout/page.isml— Template principal de layout (aplica a todas las páginas). Opción recomendada para activación global.- Page Designer component — Alternativa para activarlo solo en páginas concretas.
- Activación gradual — Insertarlo solo en páginas de categoría y detalle de producto (PLP/PDP).
Inconsistencias de locale: snippet vs. Apex
El embed snippet mapea locales que no están en la clase Apex, lo que provoca fallback incorrecto a es_ES para esos mercados:
| Locale en snippet | Estado en Apex | Consecuencia |
|---|---|---|
en_FR · en_IT · en_PT · en_RO | ❌ No soportados | Fallback a es_ES (incorrecto para esos países) |
en_CZ · en_GR · en_BG · en_IN | ❌ No soportados | Fallback a es_ES |
el_GR | ✅ Soportado | OK — pero el snippet lo mapea como en_GR, que no coincide con el_GR del Apex |
Acción recomendada: Alinear los mapeos del snippet con los de la clase Apex, o añadir los locales faltantes a LOCALE_URL_FIELD si esos mercados tienen campos de precio propios.