import { MessageTemplate, MessageTemplateCategory } from '@/types'; export const TEMPLATE_CATEGORIES: { key: MessageTemplateCategory; name: string; emoji: string; description: string; colorBadge: string; }[] = [ { key: 'customer_sales', name: 'Clientes & Ventas', emoji: '🛍️', description: 'Confirmaciones de pedido, mensajes de checkout, consultas de zapatillas y tallas especiales.', colorBadge: 'bg-emerald-500/20 text-emerald-300 border-emerald-500/30', }, { key: 'logistics_dispatch', name: 'Logística & Despachos', emoji: '🚚', description: 'Avisos de mensajero en ruta, confirmación de entrega y novedades de dirección.', colorBadge: 'bg-blue-500/20 text-blue-300 border-blue-500/30', }, { key: 'suppliers_warehouses', name: 'Proveedores & Bodegas', emoji: '🏭', description: 'Separación individual de pares, manifiesto consolidado por lote y cotizaciones.', colorBadge: 'bg-purple-500/20 text-purple-300 border-purple-500/30', }, { key: 'security_auth', name: 'Seguridad & Accesos (OTP)', emoji: '🔐', description: 'Códigos de seguridad por WhatsApp para inicio de sesión, registro y contacto administrativo.', colorBadge: 'bg-amber-500/20 text-amber-300 border-amber-500/30', }, { key: 'guarantees_policies', name: 'Garantías & Políticas', emoji: '🛡️', description: 'Explicación de garantías de flete/anticipo, políticas contraentrega y cambios de talla.', colorBadge: 'bg-rose-500/20 text-rose-300 border-rose-500/30', }, { key: 'catalog_marketing', name: 'Catálogo & Textos Comerciales', emoji: '🏷️', description: 'Descripciones de producto, textos para catálogo de WhatsApp (Meta), mensajes del asesor y respuestas del bot.', colorBadge: 'bg-indigo-500/20 text-indigo-300 border-indigo-500/30', }, ]; export const DEFAULT_MESSAGE_TEMPLATES: MessageTemplate[] = [ // 1. CLIENTES & VENTAS { id: 'order_confirmation_customer', title: 'Confirmación de Pedido al Cliente', description: 'Mensaje oficial enviado al cliente tras registrar exitosamente su pedido en la tienda.', category: 'customer_sales', channel: 'whatsapp', isActive: true, content: `🎉 *¡GRACIAS POR TU PEDIDO EN {tienda_nombre}!* 🎉 📌 *No. de Orden:* #{orden_id} 👤 *Cliente:* {cliente_nombre} 📱 *Teléfono:* {cliente_telefono} 📍 *Dirección:* {cliente_direccion} 🏙️ *Ciudad:* {cliente_ciudad} 📦 *DETALLE DE TU COMPRA:* {articulos_resumen} 💵 *Subtotal:* {subtotal} 🚚 *Envío:* {costo_envio} 💰 *VALOR TOTAL:* {total} {condicion_pago_resumen} 💳 *Método de Pago:* {metodo_pago} Estamos alistando tu paquete. Te enviaremos el número de guía o notificación de entrega. ¡Muchas gracias por tu confianza! ✨`, defaultContent: `🎉 *¡GRACIAS POR TU PEDIDO EN {tienda_nombre}!* 🎉 📌 *No. de Orden:* #{orden_id} 👤 *Cliente:* {cliente_nombre} 📱 *Teléfono:* {cliente_telefono} 📍 *Dirección:* {cliente_direccion} 🏙️ *Ciudad:* {cliente_ciudad} 📦 *DETALLE DE TU COMPRA:* {articulos_resumen} 💵 *Subtotal:* {subtotal} 🚚 *Envío:* {costo_envio} 💰 *VALOR TOTAL:* {total} {condicion_pago_resumen} 💳 *Método de Pago:* {metodo_pago} Estamos alistando tu paquete. Te enviaremos el número de guía o notificación de entrega. ¡Muchas gracias por tu confianza! ✨`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre de Tienda', example: 'DripZone Luxury', description: 'Nombre comercial configurado' }, { key: 'orden_id', label: 'No. de Orden', example: 'ORD-9842', description: 'Identificador único del pedido' }, { key: 'cliente_nombre', label: 'Nombre del Cliente', example: 'Cliente DripZone', description: 'Nombre registrado' }, { key: 'cliente_telefono', label: 'Teléfono Cliente', example: '3167455877', description: 'Celular del comprador' }, { key: 'cliente_direccion', label: 'Dirección de Entrega', example: 'Calle 5 # 24-80, Apto 302', description: 'Dirección física' }, { key: 'cliente_ciudad', label: 'Ciudad Destino', example: 'Cali', description: 'Municipio de despacho' }, { key: 'articulos_resumen', label: 'Lista de Artículos', example: '👟 Nike Air Force 1 (Talla 40) x1 - $125.000 COP', description: 'Pares solicitados' }, { key: 'subtotal', label: 'Subtotal COP', example: '$125.000 COP', description: 'Monto antes de flete' }, { key: 'costo_envio', label: 'Costo de Envío', example: 'GRATIS', description: 'Flete de la ciudad' }, { key: 'total', label: 'Total COP', example: '$125.000 COP', description: 'Monto total final' }, { key: 'condicion_pago_resumen', label: 'Resumen Anticipo / Saldo', example: '🤝 Pago 100% Contraentrega al recibir en tu casa.', description: 'Detalle de pago en puerta' }, { key: 'metodo_pago', label: 'Método de Pago', example: 'Pago Contraentrega', description: 'Pasarela o método seleccionado' }, { key: 'saldo_contraentrega', label: 'Saldo en Puerta', example: '$115.000 COP', description: 'Valor a cobrar al entregar' }, { key: 'anticipo', label: 'Valor Separación', example: '$10.000 COP', description: 'Anticipo si aplica' }, ], }, { id: 'order_checkout_wa', title: 'Pedido Web hacia WhatsApp de Tienda', description: 'Texto que el cliente abre en WhatsApp al finalizar su compra en el carrito o checkout web.', category: 'customer_sales', channel: 'whatsapp', isActive: true, content: `🎉 *CONFIRMACIÓN DE PEDIDO EN {tienda_nombre} #{orden_id}* 🎉 👤 *Cliente:* {cliente_nombre} 📱 *Teléfono:* {cliente_telefono} 📍 *Dirección:* {cliente_direccion} 🏙️ *Ciudad:* {cliente_ciudad} 📦 *Artículos:* {articulos_resumen} 💰 *Total:* {total} {condicion_pago_resumen} 💳 *Método de Pago:* {metodo_pago} ¡Hola {tienda_nombre}! Acabo de registrar mi pedido en la web. ¿Me confirman despacho por favor?`, defaultContent: `🎉 *CONFIRMACIÓN DE PEDIDO EN {tienda_nombre} #{orden_id}* 🎉 👤 *Cliente:* {cliente_nombre} 📱 *Teléfono:* {cliente_telefono} 📍 *Dirección:* {cliente_direccion} 🏙️ *Ciudad:* {cliente_ciudad} 📦 *Artículos:* {articulos_resumen} 💰 *Total:* {total} {condicion_pago_resumen} 💳 *Método de Pago:* {metodo_pago} ¡Hola {tienda_nombre}! Acabo de registrar mi pedido en la web. ¿Me confirman despacho por favor?`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre de Tienda', example: 'DripZone', description: 'Nombre de la marca' }, { key: 'orden_id', label: 'No. Orden', example: 'ORD-9842', description: 'ID de la orden' }, { key: 'cliente_nombre', label: 'Nombre Cliente', example: 'Cliente DripZone', description: 'Nombre' }, { key: 'cliente_telefono', label: 'Teléfono', example: '3167455877', description: 'Teléfono' }, { key: 'cliente_direccion', label: 'Dirección', example: 'Av 6N # 28N-12', description: 'Dirección' }, { key: 'cliente_ciudad', label: 'Ciudad', example: 'Cali', description: 'Ciudad' }, { key: 'articulos_resumen', label: 'Artículos', example: '• Jordan 4 Retro (Talla 41) x1 = $140.000 COP', description: 'Lista' }, { key: 'total', label: 'Total', example: '$140.000 COP', description: 'Total' }, { key: 'condicion_pago_resumen', label: 'Condición Pago', example: '🤝 Pago 100% Contraentrega.', description: 'Condición' }, { key: 'metodo_pago', label: 'Método', example: 'Contraentrega', description: 'Método' }, ], }, { id: 'product_direct_inquiry', title: 'Pedido Directo de Zapatilla (Modal de Producto)', description: 'Mensaje generado cuando el cliente pulsa "Pedir por WhatsApp" desde la ficha de una zapatilla.', category: 'customer_sales', channel: 'whatsapp', isActive: true, content: `Hola {tienda_nombre}! 👋 Quiero pedir las zapatillas: 👟 *{zapatilla_nombre}* 🎨 Color: *{color_nombre}* 📏 Talla: *{talla}* (Horma Nacional) 💎 Precio: *{precio} COP* 🚚 Entrega en: *{ciudad}* (Pago Contraentrega) ⚡ Deseo separar con $10.000 COP y cancelar el saldo en mi casa. ¿Me confirman disponibilidad para despacho por favor?`, defaultContent: `Hola {tienda_nombre}! 👋 Quiero pedir las zapatillas: 👟 *{zapatilla_nombre}* 🎨 Color: *{color_nombre}* 📏 Talla: *{talla}* (Horma Nacional) 💎 Precio: *{precio} COP* 🚚 Entrega en: *{ciudad}* (Pago Contraentrega) ⚡ Deseo separar con $10.000 COP y cancelar el saldo en mi casa. ¿Me confirman disponibilidad para despacho por favor?`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre de la tienda' }, { key: 'zapatilla_nombre', label: 'Modelo Zapatilla', example: 'Nike Air Force 1 White Low', description: 'Nombre de la referencia' }, { key: 'color_nombre', label: 'Color / Variante', example: 'Blanco Clásico', description: 'Color seleccionado' }, { key: 'talla', label: 'Talla Seleccionada', example: '41', description: 'Talla' }, { key: 'precio', label: 'Precio COP', example: '$125.000', description: 'Precio' }, { key: 'ciudad', label: 'Ciudad Destino', example: 'Cali', description: 'Ciudad' }, { key: 'marca', label: 'Marca', example: 'Nike', description: 'Marca del calzado' }, ], }, { id: 'product_request_size', title: 'Solicitud de Talla Bajo Pedido (Sin Stock Inmediato)', description: 'Mensaje cuando el cliente solicita una talla no disponible en stock inmediato.', category: 'customer_sales', channel: 'whatsapp', isActive: true, content: `Hola {tienda_nombre}! 👋 Estaba revisando la tienda y me gustaron mucho estas zapatillas: 👟 *{zapatilla_nombre}* 🎨 Color: *{color_nombre}* 📏 Talla que necesito: *{talla}* (Actualmente no aparece disponible en stock inmediato) 📍 Ciudad de entrega: *{ciudad}* ¿Es posible conseguir esta talla bajo pedido con sus bodegas aliadas para despacho contraentrega? Quedo muy atento, ¡muchas gracias!`, defaultContent: `Hola {tienda_nombre}! 👋 Estaba revisando la tienda y me gustaron mucho estas zapatillas: 👟 *{zapatilla_nombre}* 🎨 Color: *{color_nombre}* 📏 Talla que necesito: *{talla}* (Actualmente no aparece disponible en stock inmediato) 📍 Ciudad de entrega: *{ciudad}* ¿Es posible conseguir esta talla bajo pedido con sus bodegas aliadas para despacho contraentrega? Quedo muy atento, ¡muchas gracias!`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre de la tienda' }, { key: 'zapatilla_nombre', label: 'Modelo Zapatilla', example: 'Adidas Bad Bunny Campus Brown', description: 'Modelo' }, { key: 'color_nombre', label: 'Color', example: 'Café Gamuza', description: 'Color' }, { key: 'talla', label: 'Talla Solicitada', example: '43', description: 'Talla' }, { key: 'ciudad', label: 'Ciudad', example: 'Cali', description: 'Ciudad' }, { key: 'marca', label: 'Marca', example: 'Adidas', description: 'Marca' }, ], }, { id: 'general_store_inquiry', title: 'Consulta General a la Tienda (Botón Flotante / Menú)', description: 'Mensaje predeterminado de contacto inicial desde el botón flotante de WhatsApp o footer.', category: 'customer_sales', channel: 'whatsapp', isActive: true, content: `Hola {tienda_nombre}! 👋 Quiero consultar la disponibilidad de unas zapatillas para despacho contraentrega en 24 horas.`, defaultContent: `Hola {tienda_nombre}! 👋 Quiero consultar la disponibilidad de unas zapatillas para despacho contraentrega en 24 horas.`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre' }, { key: 'telefono_tienda', label: 'Teléfono Tienda', example: '573167455877', description: 'WhatsApp oficial' }, { key: 'ciudad_tienda', label: 'Ciudad Sede', example: 'Cali, Colombia', description: 'Ubicación' }, ], }, // 2. LOGÍSTICA & DESPACHOS { id: 'order_on_the_way', title: 'Pedido en Camino con Mensajero', description: 'Notificación enviada al cliente cuando el mensajero sale en ruta a entregar su paquete.', category: 'logistics_dispatch', channel: 'whatsapp', isActive: true, content: `👋 ¡Hola *{cliente_nombre}*! 🛵 Tu pedido #{orden_id} ya va *EN CAMINO* con nuestro mensajero. 📍 *Dirección de Entrega:* {cliente_direccion} 🏙️ *Ciudad:* {cliente_ciudad} 💵 *Saldo a Pagar Contraentrega:* *{saldo_contraentrega}* 💳 *Medio de Pago:* {metodo_pago} (Efectivo o mediante Bold al recibir) Por favor estar atento a la portería o celular. ¡Gracias por tu compra en {tienda_nombre}! 🔥`, defaultContent: `👋 ¡Hola *{cliente_nombre}*! 🛵 Tu pedido #{orden_id} ya va *EN CAMINO* con nuestro mensajero. 📍 *Dirección de Entrega:* {cliente_direccion} 🏙️ *Ciudad:* {cliente_ciudad} 💵 *Saldo a Pagar Contraentrega:* *{saldo_contraentrega}* 💳 *Medio de Pago:* {metodo_pago} (Efectivo o mediante Bold al recibir) Por favor estar atento a la portería o celular. ¡Gracias por tu compra en {tienda_nombre}! 🔥`, availableVariables: [ { key: 'cliente_nombre', label: 'Nombre Cliente', example: 'Cliente DripZone', description: 'Nombre' }, { key: 'orden_id', label: 'No. Orden', example: 'ORD-9842', description: 'ID de la orden' }, { key: 'cliente_direccion', label: 'Dirección', example: 'Carrera 100 # 16-20', description: 'Dirección' }, { key: 'cliente_ciudad', label: 'Ciudad', example: 'Cali', description: 'Ciudad' }, { key: 'saldo_contraentrega', label: 'Saldo a Cobrar', example: '$125.000 COP', description: 'Monto a recibir' }, { key: 'metodo_pago', label: 'Medio de Pago', example: 'Contraentrega', description: 'Forma de pago' }, { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre' }, ], }, { id: 'order_delivered', title: 'Pedido Entregado con Éxito y Garantía', description: 'Agradecimiento al cliente tras confirmar la entrega y recordatorio de política de cambio de talla.', category: 'logistics_dispatch', channel: 'whatsapp', isActive: true, content: `🌟 ¡Hola *{cliente_nombre}*! Tu orden #{orden_id} ha sido *ENTREGADA CON ÉXITO*. 👟 Esperamos que disfrutes al máximo tus zapatillas. 💬 Si tienes cualquier consulta sobre garantía o cambio de talla (sujeto a cobertura y políticas según tu ciudad), estamos a tu disposición por este canal oficial. ¡Muchas gracias por elegir {tienda_nombre}! ✨`, defaultContent: `🌟 ¡Hola *{cliente_nombre}*! Tu orden #{orden_id} ha sido *ENTREGADA CON ÉXITO*. 👟 Esperamos que disfrutes al máximo tus zapatillas. 💬 Si tienes cualquier consulta sobre garantía o cambio de talla (sujeto a cobertura y políticas según tu ciudad), estamos a tu disposición por este canal oficial. ¡Muchas gracias por elegir {tienda_nombre}! ✨`, availableVariables: [ { key: 'cliente_nombre', label: 'Nombre Cliente', example: 'Cliente DripZone', description: 'Nombre' }, { key: 'orden_id', label: 'No. Orden', example: 'ORD-9842', description: 'ID orden' }, { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Marca' }, ], }, { id: 'order_incident_delayed', title: 'Novedad de Entrega / Dirección No Encontrada', description: 'Mensaje cuando el mensajero no localiza al cliente o requiere re-coordinación de horario.', category: 'logistics_dispatch', channel: 'whatsapp', isActive: true, content: `⚠️ Hola *{cliente_nombre}*, te escribimos de {tienda_nombre} respecto a tu orden #{orden_id}. 🛵 Nuestro mensajero intentó realizar la entrega en *{cliente_direccion}*, pero no fue posible completar la recepción. 🤝 ¿Nos confirmas en qué horario o con qué persona podemos coordinar el reintento de entrega hoy? Quedamos muy atentos.`, defaultContent: `⚠️ Hola *{cliente_nombre}*, te escribimos de {tienda_nombre} respecto a tu orden #{orden_id}. 🛵 Nuestro mensajero intentó realizar la entrega en *{cliente_direccion}*, pero no fue posible completar la recepción. 🤝 ¿Nos confirmas en qué horario o con qué persona podemos coordinar el reintento de entrega hoy? Quedamos muy atentos.`, availableVariables: [ { key: 'cliente_nombre', label: 'Nombre Cliente', example: 'Cliente DripZone', description: 'Nombre' }, { key: 'orden_id', label: 'No. Orden', example: 'ORD-9842', description: 'ID orden' }, { key: 'cliente_direccion', label: 'Dirección', example: 'Calle 9 # 44-12', description: 'Dirección' }, { key: 'cliente_ciudad', label: 'Ciudad', example: 'Cali', description: 'Ciudad' }, { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre' }, ], }, // 3. PROVEEDORES & BODEGAS { id: 'supplier_single_separation', title: 'Separación Individual de Par a Proveedor', description: 'Mensaje enviado a la bodega para separar un par específico para una orden de cliente.', category: 'suppliers_warehouses', channel: 'whatsapp', isActive: true, content: `👋 Hola *{proveedor_nombre}*! Por favor *sepárame este par* para despacho inmediato: 👟 *Modelo:* {zapatilla_nombre} 📏 *Talla:* {talla} 📦 *Cantidad:* {cantidad} par(es) 💵 *Costo Base:* {costo_proveedor} 🏷️ *Orden Interna:* #{orden_id} 📍 *Ciudad Destino:* {ciudad_destino} ¿Me confirmas si lo tienes listo para recoger / enviar? ¡Muchas gracias!`, defaultContent: `👋 Hola *{proveedor_nombre}*! Por favor *sepárame este par* para despacho inmediato: 👟 *Modelo:* {zapatilla_nombre} 📏 *Talla:* {talla} 📦 *Cantidad:* {cantidad} par(es) 💵 *Costo Base:* {costo_proveedor} 🏷️ *Orden Interna:* #{orden_id} 📍 *Ciudad Destino:* {ciudad_destino} ¿Me confirmas si lo tienes listo para recoger / enviar? ¡Muchas gracias!`, availableVariables: [ { key: 'proveedor_nombre', label: 'Nombre Proveedor', example: 'DIFUSIÓN JOVIC STORE', description: 'Bodega' }, { key: 'zapatilla_nombre', label: 'Modelo Zapatilla', example: 'Nike Vomero 5 Silver', description: 'Modelo' }, { key: 'talla', label: 'Talla', example: '40', description: 'Talla' }, { key: 'cantidad', label: 'Cantidad Pares', example: '1', description: 'Unidades' }, { key: 'costo_proveedor', label: 'Costo Base Mayorista', example: '$90.000 COP', description: 'Costo' }, { key: 'orden_id', label: 'No. Orden Interna', example: 'ORD-9842', description: 'Orden' }, { key: 'ciudad_destino', label: 'Ciudad Destino', example: 'Cali', description: 'Destino' }, ], }, { id: 'supplier_batch_manifest', title: 'Manifiesto Consolidado de Separación por Lote', description: 'Listado completo de todos los pares pendientes agrupados para un mismo proveedor.', category: 'suppliers_warehouses', channel: 'whatsapp', isActive: true, content: `📦 *MANIFIESTO CONSOLIDADO DE SEPARACIÓN* 🏢 *Proveedor:* {proveedor_nombre} 📅 *Fecha:* {fecha} | *Total Pares:* {total_pares} 💰 *Valor Total a Pagar Proveedor:* {total_costo_proveedor} 👟 *DETALLE DE PARES A SEPARAR:* {lista_pares_separacion} 🤝 *Por favor confirmar disponibilidad y empaque para recogida del mensajero.* ¡Muchas gracias!`, defaultContent: `📦 *MANIFIESTO CONSOLIDADO DE SEPARACIÓN* 🏢 *Proveedor:* {proveedor_nombre} 📅 *Fecha:* {fecha} | *Total Pares:* {total_pares} 💰 *Valor Total a Pagar Proveedor:* {total_costo_proveedor} 👟 *DETALLE DE PARES A SEPARAR:* {lista_pares_separacion} 🤝 *Por favor confirmar disponibilidad y empaque para recogida del mensajero.* ¡Muchas gracias!`, availableVariables: [ { key: 'proveedor_nombre', label: 'Nombre Proveedor', example: 'EXCLUSIVE CC MÍO 3B', description: 'Bodega' }, { key: 'fecha', label: 'Fecha Actual', example: '29/08/2026', description: 'Fecha' }, { key: 'total_pares', label: 'Total de Pares', example: '5', description: 'Pares totales' }, { key: 'total_costo_proveedor', label: 'Total a Pagar Bodega', example: '$450.000 COP', description: 'Costo total' }, { key: 'lista_pares_separacion', label: 'Listado Numerado de Pares', example: '1. Nike Dunk Low Panda (Talla 39) x1 - $90.000\n2. Jordan 4 Retro Military Black (Talla 42) x1 - $110.000', description: 'Detalle' }, ], }, { id: 'supplier_general_contact', title: 'Contacto General con Bodega Proveedora', description: 'Mensaje rápido de contacto desde el panel de proveedores.', category: 'suppliers_warehouses', channel: 'whatsapp', isActive: true, content: `👋 Hola {proveedor_contacto}! Te escribo desde el panel de control y logística de {tienda_nombre}.`, defaultContent: `👋 Hola {proveedor_contacto}! Te escribo desde el panel de control y logística de {tienda_nombre}.`, availableVariables: [ { key: 'proveedor_contacto', label: 'Persona de Contacto', example: 'Asesor Jovic Store', description: 'Nombre asesor' }, { key: 'proveedor_nombre', label: 'Nombre Bodega', example: 'DIFUSIÓN JOVIC STORE', description: 'Bodega' }, { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre' }, ], }, { id: 'supplier_product_inquiry', title: 'Consulta de Stock de Producto a Proveedor', description: 'Consulta rápida de inventario desde la ficha del catálogo de productos hacia el proveedor.', category: 'suppliers_warehouses', channel: 'whatsapp', isActive: true, content: `Hola {proveedor_nombre}! 👋 Consulta sobre disponibilidad del modelo *{zapatilla_nombre}* (Costo base: {costo_proveedor}). ¿Tienen disponibilidad en todas las tallas?`, defaultContent: `Hola {proveedor_nombre}! 👋 Consulta sobre disponibilidad del modelo *{zapatilla_nombre}* (Costo base: {costo_proveedor}). ¿Tienen disponibilidad en todas las tallas?`, availableVariables: [ { key: 'proveedor_nombre', label: 'Nombre Bodega', example: 'Bodega Central Mayorista', description: 'Bodega' }, { key: 'zapatilla_nombre', label: 'Modelo Zapatilla', example: 'Nike Dunk Low Grey Fog', description: 'Modelo' }, { key: 'costo_proveedor', label: 'Costo Mayorista', example: '$85.000 COP', description: 'Costo' }, { key: 'marca', label: 'Marca', example: 'Nike', description: 'Marca' }, ], }, // 4. SEGURIDAD & ACCESOS (OTP) { id: 'auth_login_otp', title: 'Código OTP de Seguridad para Iniciar Sesión', description: 'Código de 6 dígitos enviado por WhatsApp al usuario para autenticación sin contraseña.', category: 'security_auth', channel: 'whatsapp', isActive: true, content: `🔐 *{tienda_nombre} - Código de Seguridad* Hola {usuario_nombre}, tu código de verificación para iniciar sesión es: 👉 *{codigo_otp}* ⏱️ _Válido por 5 minutos. No compartas este código con nadie._`, defaultContent: `🔐 *{tienda_nombre} - Código de Seguridad* Hola {usuario_nombre}, tu código de verificación para iniciar sesión es: 👉 *{codigo_otp}* ⏱️ _Válido por 5 minutos. No compartas este código con nadie._`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone Sneakers', description: 'Marca' }, { key: 'usuario_nombre', label: 'Nombre Usuario', example: 'Cliente DripZone', description: 'Usuario' }, { key: 'codigo_otp', label: 'Código de 6 Dígitos', example: '849201', description: 'Código OTP' }, ], }, { id: 'auth_register_otp', title: 'Código OTP para Verificación de Nueva Cuenta', description: 'Código enviado por WhatsApp al nuevo cliente tras registrar su cuenta en la plataforma.', category: 'security_auth', channel: 'whatsapp', isActive: true, content: `🔐 *{tienda_nombre} - Verificación de Cuenta* Hola {usuario_nombre}! Tu código de seguridad para validar tu cuenta es: 👉 *{codigo_otp}* ⏱️ _Válido por 5 minutos._`, defaultContent: `🔐 *{tienda_nombre} - Verificación de Cuenta* Hola {usuario_nombre}! Tu código de seguridad para validar tu cuenta es: 👉 *{codigo_otp}* ⏱️ _Válido por 5 minutos._`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone Sneakers', description: 'Marca' }, { key: 'usuario_nombre', label: 'Nombre Usuario', example: 'Andrés Lasso', description: 'Usuario' }, { key: 'codigo_otp', label: 'Código de 6 Dígitos', example: '392018', description: 'Código OTP' }, ], }, { id: 'admin_customer_contact', title: 'Contacto Administrativo con Usuario', description: 'Saludo institucional enviado desde el panel de control de usuarios hacia un cliente.', category: 'security_auth', channel: 'whatsapp', isActive: true, content: `Hola {usuario_nombre}! Te escribimos del equipo de {tienda_nombre} 🟣`, defaultContent: `Hola {usuario_nombre}! Te escribimos del equipo de {tienda_nombre} 🟣`, availableVariables: [ { key: 'usuario_nombre', label: 'Nombre Usuario', example: 'Cliente DripZone', description: 'Nombre del usuario' }, { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre' }, { key: 'ciudad', label: 'Ciudad Usuario', example: 'Cali', description: 'Ciudad' }, ], }, // 5. GARANTÍAS & POLÍTICAS { id: 'shipping_deposit_alert', title: 'Requerimiento de Garantía de Flete por Historial', description: 'Mensaje para clientes con cobro de flete/anticipo obligatorio debido a devoluciones previas.', category: 'guarantees_policies', channel: 'whatsapp', isActive: true, content: `🛡️ *Garantía de Despacho Requerida - {tienda_nombre}* Hola {cliente_nombre}, para procesar tu orden #{orden_id} hacia {cliente_ciudad}, se requiere la separación del flete por valor de *{costo_envio}* (100% descontable al recibir en tu puerta). 💡 Motivo: {motivo_garantia} 💳 Puedes realizar el pago en línea de forma 100% segura por Bold: {link_pago_bold} ¡Una vez confirmado tu comprobante, tu despacho saldrá de inmediato!`, defaultContent: `🛡️ *Garantía de Despacho Requerida - {tienda_nombre}* Hola {cliente_nombre}, para procesar tu orden #{orden_id} hacia {cliente_ciudad}, se requiere la separación del flete por valor de *{costo_envio}* (100% descontable al recibir en tu puerta). 💡 Motivo: {motivo_garantia} 💳 Puedes realizar el pago en línea de forma 100% segura por Bold: {link_pago_bold} ¡Una vez confirmado tu comprobante, tu despacho saldrá de inmediato!`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Tienda' }, { key: 'cliente_nombre', label: 'Nombre Cliente', example: 'Cliente DripZone', description: 'Cliente' }, { key: 'orden_id', label: 'No. Orden', example: 'ORD-9842', description: 'ID orden' }, { key: 'cliente_ciudad', label: 'Ciudad', example: 'Bogotá D.C.', description: 'Ciudad' }, { key: 'costo_envio', label: 'Costo Flete', example: '$12.000 COP', description: 'Valor del flete' }, { key: 'motivo_garantia', label: 'Motivo de Garantía', example: 'Pedido anterior no recibido en domicilio', description: 'Motivo' }, { key: 'link_pago_bold', label: 'Enlace Pago Bold', example: 'https://bold.co/p/dripzone', description: 'Pasarela oficial Bold' }, ], }, { id: 'cod_policy_notice', title: 'Aviso de Políticas de Entrega y Cambio de Talla', description: 'Resumen de políticas contraentrega y condiciones de cambio de talla para soporte al cliente.', category: 'guarantees_policies', channel: 'whatsapp', isActive: true, content: `📋 *Políticas de Compra y Entrega - {tienda_nombre}* ✅ *Pago Contraentrega:* Separas tu pedido con solo $10.000 por Bold oficial y pagas el saldo al recibir en tu domicilio (en efectivo o mediante Bold). 👟 *Garantía y Cambio de Talla:* Garantía directa de fábrica. Cambio de talla garantizado según la ciudad de destino (cobertura local con mensajero en Cali y logística de reenvío en otras ciudades). 🚚 *Envíos Nacionales:* Tiempos de entrega y valor del flete varían de acuerdo a tu ciudad. Cualquier duda o asesoría adicional, ¡estamos para servirte con todo el gusto!`, defaultContent: `📋 *Políticas de Compra y Entrega - {tienda_nombre}* ✅ *Pago Contraentrega:* Separas tu pedido con solo $10.000 por Bold oficial y pagas el saldo al recibir en tu domicilio (en efectivo o mediante Bold). 👟 *Garantía y Cambio de Talla:* Garantía directa de fábrica. Cambio de talla garantizado según la ciudad de destino (cobertura local con mensajero en Cali y logística de reenvío en otras ciudades). 🚚 *Envíos Nacionales:* Tiempos de entrega y valor del flete varían de acuerdo a tu ciudad. Cualquier duda o asesoría adicional, ¡estamos para servirte con todo el gusto!`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre' }, { key: 'ciudad_tienda', label: 'Ciudad Sede', example: 'Cali', description: 'Ciudad' }, ], }, { id: 'customer_request_received', title: 'Confirmación de Encargo Especial al Cliente', description: 'Notificación enviada al cliente por WhatsApp cuando registra una solicitud de calzado por encargo.', category: 'customer_sales', channel: 'whatsapp', isActive: true, content: `👋 ¡Hola *{cliente_nombre}*!\n\nRecibimos con éxito tu solicitud por encargo para las *{marca} {modelo}* en talla *{talla}*. 👟🔥\n\nNuestro equipo en {tienda_nombre} ya está verificando disponibilidad y mejor precio con nuestras bodegas y proveedores mayoristas. Te responderemos a este mismo chat con la cotización exacta en el menor tiempo posible.\n\n¡Gracias por confiar en {tienda_nombre}! 🚀`, defaultContent: `👋 ¡Hola *{cliente_nombre}*!\n\nRecibimos con éxito tu solicitud por encargo para las *{marca} {modelo}* en talla *{talla}*. 👟🔥\n\nNuestro equipo en {tienda_nombre} ya está verificando disponibilidad y mejor precio con nuestras bodegas y proveedores mayoristas. Te responderemos a este mismo chat con la cotización exacta en el menor tiempo posible.\n\n¡Gracias por confiar en {tienda_nombre}! 🚀`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre' }, { key: 'cliente_nombre', label: 'Nombre Cliente', example: 'Cliente DripZone', description: 'Nombre' }, { key: 'marca', label: 'Marca', example: 'Nike', description: 'Marca calzado' }, { key: 'modelo', label: 'Modelo', example: 'Air Jordan 4', description: 'Modelo' }, { key: 'talla', label: 'Talla', example: '41', description: 'Talla' }, ], }, { id: 'customer_deposit_confirmed', title: 'Confirmación de Anticipo Bold al Cliente', description: 'Notificación enviada al cliente por WhatsApp cuando su pago de anticipo de separación es acreditado por Bold.', category: 'customer_sales', channel: 'whatsapp', isActive: true, content: `🎉 *¡Tu anticipo de separación fue confirmado con éxito!*\n\nHola *{cliente_nombre}*, recibimos correctamente tu pago de *{valor_anticipo}* a través de Bold.\n\n📦 Tu orden *#{orden_id}* ya se encuentra en alistamiento y empaque para despacho a *{cliente_ciudad}*.\n🤝 *Saldo restante a pagar contraentrega:* *{saldo_contraentrega}* al recibir en tu puerta.\n\nPuedes consultar el estado de tu pedido en cualquier momento desde la app oficial de {tienda_nombre}.\n\n¡Muchas gracias por tu compra en {tienda_nombre}!`, defaultContent: `🎉 *¡Tu anticipo de separación fue confirmado con éxito!*\n\nHola *{cliente_nombre}*, recibimos correctamente tu pago de *{valor_anticipo}* a través de Bold.\n\n📦 Tu orden *#{orden_id}* ya se encuentra en alistamiento y empaque para despacho a *{cliente_ciudad}*.\n🤝 *Saldo restante a pagar contraentrega:* *{saldo_contraentrega}* al recibir en tu puerta.\n\nPuedes consultar el estado de tu pedido en cualquier momento desde la app oficial de {tienda_nombre}.\n\n¡Muchas gracias por tu compra en {tienda_nombre}!`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre de la tienda' }, { key: 'cliente_nombre', label: 'Nombre Cliente', example: 'Cliente DripZone', description: 'Nombre del comprador' }, { key: 'orden_id', label: 'No. de Orden', example: 'ORD-9842', description: 'ID de la orden' }, { key: 'valor_anticipo', label: 'Valor Anticipo', example: '$10.000 COP', description: 'Monto anticipo pagado' }, { key: 'cliente_ciudad', label: 'Ciudad Destino', example: 'Cali', description: 'Municipio de entrega' }, { key: 'saldo_contraentrega', label: 'Saldo Contraentrega', example: '$115.000 COP', description: 'Saldo en puerta' }, ], }, // 6. CATÁLOGO & TEXTOS COMERCIALES { id: 'catalog_product_desc', title: 'Descripción de Producto para Catálogo WhatsApp y Feeds', description: 'Texto oficial que acompaña cada producto en el catálogo de WhatsApp Business (Meta Commerce), feeds XML y CSV.', category: 'catalog_marketing', channel: 'whatsapp', isActive: true, content: `Colección: {coleccion_icono} *{coleccion_nombre} {tienda_nombre}* {descripcion_producto} 📏 Tallas disponibles: {tallas} (Horma Nacional) 💎 Precio oficial: {precio} COP 🚚 Envíos a toda Colombia (el valor del flete y tiempo de entrega varían según la ciudad de destino) 💵 Pago contraentrega sujeto a cobertura de tu ciudad 🛡️ Garantía de fábrica y cambio de talla (sujeto a políticas de cobertura según ciudad) 🛒 ¿CÓMO REALIZAR TU PEDIDO Y PAGO SEGURO? La atención comercial y asesoría es por este WhatsApp. Para garantizar tu despacho con factura y seguimiento en línea, el pedido y pago del anticipo ($10.000 únicamente por Bold oficial) se procesan a través de nuestra plataforma: 👉 Enlace directo de compra: {enlace_compra} 📱 O descarga la App Móvil oficial: {enlace_app} 💬 ¿Dudas con tu talla o envío? Escríbenos a este chat y un asesor te atenderá al instante.`, defaultContent: `Colección: {coleccion_icono} *{coleccion_nombre} {tienda_nombre}* {descripcion_producto} 📏 Tallas disponibles: {tallas} (Horma Nacional) 💎 Precio oficial: {precio} COP 🚚 Envíos a toda Colombia (el valor del flete y tiempo de entrega varían según la ciudad de destino) 💵 Pago contraentrega sujeto a cobertura de tu ciudad 🛡️ Garantía de fábrica y cambio de talla (sujeto a políticas de cobertura según ciudad) 🛒 ¿CÓMO REALIZAR TU PEDIDO Y PAGO SEGURO? La atención comercial y asesoría es por este WhatsApp. Para garantizar tu despacho con factura y seguimiento en línea, el pedido y pago del anticipo ($10.000 únicamente por Bold oficial) se procesan a través de nuestra plataforma: 👉 Enlace directo de compra: {enlace_compra} 📱 O descarga la App Móvil oficial: {enlace_app} 💬 ¿Dudas con tu talla o envío? Escríbenos a este chat y un asesor te atenderá al instante.`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre de la marca' }, { key: 'coleccion_icono', label: 'Ícono Colección', example: '👟', description: 'Emoji de categoría' }, { key: 'coleccion_nombre', label: 'Nombre Colección', example: 'Zapatillas Urbanas', description: 'Categoría WhatsApp' }, { key: 'descripcion_producto', label: 'Descripción Base', example: 'Zapatillas exclusivas en horma nacional...', description: 'Detalle del modelo' }, { key: 'tallas', label: 'Tallas Disponibles', example: '37 al 43', description: 'Curva de tallas' }, { key: 'precio', label: 'Precio COP', example: '$125.000', description: 'Precio de venta' }, { key: 'enlace_compra', label: 'Enlace Directo Checkout', example: 'https://drip-zone.online/checkout?productId=...', description: 'Link de compra' }, { key: 'enlace_app', label: 'Enlace Descarga App', example: 'https://drip-zone.online/app-dripzone.apk', description: 'Descarga APK' }, ], }, { id: 'catalog_order_message', title: 'Mensaje de Asesor con Enlace de Compra y Cotización', description: 'Mensaje comercial que el asesor copia o envía al cliente desde el catálogo de WhatsApp con el enlace de compra.', category: 'catalog_marketing', channel: 'whatsapp', isActive: true, content: `{saludo} Qué gusto saludarte de parte de *{tienda_nombre} Colombia* 🇨🇴 Para confirmar tu pedido de las *{producto_nombre}* en talla *{talla}* (Horma Nacional) y despacharlo con total garantía y factura: 💎 *Precio Oficial:* {precio} COP 🚚 *Pago Contraentrega:* Separas con solo *$10.000* a través de Bold oficial (PSE o tarjetas) y el saldo restante lo cancelas contraentrega (en efectivo o mediante Bold) al recibir en tu puerta. 📦 *Envío:* El valor del flete y tiempos de entrega varían según tu ciudad de destino. 🛡️ *Garantía:* Garantía directa y cambio de talla según políticas de cobertura en tu ciudad. 🛒 *Por favor completa tus datos de entrega y anticipo seguro aquí:* 👉 {enlace_checkout} 📱 *O si prefieres, descárgate nuestra App Móvil oficial:* {enlace_app} {nota_asesor} Cualquier inquietud con tu dirección o el pago, ¡aquí estamos para ayudarte!`, defaultContent: `{saludo} Qué gusto saludarte de parte de *{tienda_nombre} Colombia* 🇨🇴 Para confirmar tu pedido de las *{producto_nombre}* en talla *{talla}* (Horma Nacional) y despacharlo con total garantía y factura: 💎 *Precio Oficial:* {precio} COP 🚚 *Pago Contraentrega:* Separas con solo *$10.000* a través de Bold oficial (PSE o tarjetas) y el saldo restante lo cancelas contraentrega (en efectivo o mediante Bold) al recibir en tu puerta. 📦 *Envío:* El valor del flete y tiempos de entrega varían según tu ciudad de destino. 🛡️ *Garantía:* Garantía directa y cambio de talla según políticas de cobertura en tu ciudad. 🛒 *Por favor completa tus datos de entrega y anticipo seguro aquí:* 👉 {enlace_checkout} 📱 *O si prefieres, descárgate nuestra App Móvil oficial:* {enlace_app} {nota_asesor} Cualquier inquietud con tu dirección o el pago, ¡aquí estamos para ayudarte!`, availableVariables: [ { key: 'saludo', label: 'Saludo Personalizado', example: '¡Hola Carlos! 👋', description: 'Saludo con nombre' }, { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre comercial' }, { key: 'producto_nombre', label: 'Nombre Producto', example: 'Nike Dunk Low Grey Fog', description: 'Modelo' }, { key: 'talla', label: 'Talla', example: '41', description: 'Talla seleccionada' }, { key: 'precio', label: 'Precio COP', example: '$135.000', description: 'Precio' }, { key: 'enlace_checkout', label: 'Enlace Checkout Directo', example: 'https://drip-zone.online/checkout?...', description: 'Link de compra' }, { key: 'enlace_app', label: 'Enlace Descarga App', example: 'https://drip-zone.online/app-dripzone.apk', description: 'Link App' }, { key: 'nota_asesor', label: 'Nota Asesor (Opcional)', example: '📝 *Nota del Asesor:* Incluye cordones extra.', description: 'Nota personalizada' }, ], }, { id: 'product_copy_generator', title: 'Plantilla de Texto Comercial de Producto (Copy Automático)', description: 'Estructura base para generar la descripción atractiva de nuevos modelos al importarlos o publicarlos en la tienda.', category: 'catalog_marketing', channel: 'whatsapp', isActive: true, content: `{gancho} ✨ *¿Por qué elegir este modelo?* • 💎 *Materiales Seleccionados:* Construcción de alta resistencia, acabados prémium y silueta impecable. • ☁️ *Máximo Confort:* Plantilla ergonómica acolchada para máxima suavidad y comodidad al caminar. • 🚚 *Envíos a Nivel Nacional:* Despachos a toda Colombia (el valor del envío y tiempos de entrega varían según la ciudad de destino). • 💵 *Pago Contraentrega:* Separas tu pedido con anticipo por Bold oficial y cancelas el saldo restante en efectivo o con Bold al recibir en tu puerta. • 🛡️ *Garantía Directa:* Respaldo de fábrica y cambio de talla (sujeto a cobertura y políticas según tu ciudad). ⚠️ *Disponibilidad:* Pocas unidades por talla en inventario nacional. ¡Asegura tu par ahora!`, defaultContent: `{gancho} ✨ *¿Por qué elegir este modelo?* • 💎 *Materiales Seleccionados:* Construcción de alta resistencia, acabados prémium y silueta impecable. • ☁️ *Máximo Confort:* Plantilla ergonómica acolchada para máxima suavidad y comodidad al caminar. • 🚚 *Envíos a Nivel Nacional:* Despachos a toda Colombia (el valor del envío y tiempos de entrega varían según la ciudad de destino). • 💵 *Pago Contraentrega:* Separas tu pedido con anticipo por Bold oficial y cancelas el saldo restante en efectivo o con Bold al recibir en tu puerta. • 🛡️ *Garantía Directa:* Respaldo de fábrica y cambio de talla (sujeto a cobertura y políticas según tu ciudad). ⚠️ *Disponibilidad:* Pocas unidades por talla en inventario nacional. ¡Asegura tu par ahora!`, availableVariables: [ { key: 'gancho', label: 'Frase de Entrada (Gancho)', example: '🔥 ¡Lleva tu outfit al siguiente nivel con...', description: 'Introducción del producto' }, { key: 'producto_nombre', label: 'Nombre Producto', example: 'Adidas Campus 00s', description: 'Modelo' }, { key: 'marca', label: 'Marca', example: 'Adidas', description: 'Marca comercial' }, { key: 'categoria', label: 'Categoría', example: 'Zapatillas', description: 'Tipo de producto' }, ], }, { id: 'whatsapp_bot_inquiry', title: 'Respuesta Automática del Bot ante Consulta de Producto', description: 'Mensaje enviado por el bot de WhatsApp cuando un cliente consulta por un modelo del catálogo.', category: 'customer_sales', channel: 'whatsapp', isActive: true, content: `👟 *{producto_nombre}* ━━━━━━━━━━━━━━━━━━━━━━ 📏 *Tallas Disponibles:* {tallas} (Horma Nacional) 💵 *Precio Oficial:* *{precio} COP* 🚚 *Pago Contraentrega:* Pagas un anticipo de *$10.000* por Bold oficial para despacho garantizado y el saldo restante al recibir (en efectivo o mediante Bold). 📦 *Envío:* El costo del flete depende de la ciudad de destino. 🛡️ *Garantía:* Garantía de fábrica y cambio de talla según políticas de cobertura en tu ciudad. 🛒 *¿Cómo procesar tu pedido y pago seguro?* Para tu seguridad, asignación de factura y reserva de tu talla, el pedido y pago del anticipo ($10.000 únicamente por Bold / PSE / Tarjetas) se procesan a través de nuestra plataforma: 👉 *Enlace directo de compra:* {enlace_checkout} 📱 *O pide en nuestra App Móvil:* {enlace_app} Diligencia tus datos de envío en el enlace y hoy mismo programamos tu despacho. Si necesitas ayuda con tu talla habitual, ¡aquí estamos para asesorarte!`, defaultContent: `👟 *{producto_nombre}* ━━━━━━━━━━━━━━━━━━━━━━ 📏 *Tallas Disponibles:* {tallas} (Horma Nacional) 💵 *Precio Oficial:* *{precio} COP* 🚚 *Pago Contraentrega:* Pagas un anticipo de *$10.000* por Bold oficial para despacho garantizado y el saldo restante al recibir (en efectivo o mediante Bold). 📦 *Envío:* El costo del flete depende de la ciudad de destino. 🛡️ *Garantía:* Garantía de fábrica y cambio de talla según políticas de cobertura en tu ciudad. 🛒 *¿Cómo procesar tu pedido y pago seguro?* Para tu seguridad, asignación de factura y reserva de tu talla, el pedido y pago del anticipo ($10.000 únicamente por Bold / PSE / Tarjetas) se procesan a través de nuestra plataforma: 👉 *Enlace directo de compra:* {enlace_checkout} 📱 *O pide en nuestra App Móvil:* {enlace_app} Diligencia tus datos de envío en el enlace y hoy mismo programamos tu despacho. Si necesitas ayuda con tu talla habitual, ¡aquí estamos para asesorarte!`, availableVariables: [ { key: 'producto_nombre', label: 'Nombre Producto', example: 'Nike Air Force 1 07', description: 'Nombre' }, { key: 'tallas', label: 'Tallas Disponibles', example: '38, 39, 40, 41, 42', description: 'Tallas' }, { key: 'precio', label: 'Precio COP', example: '$125.000', description: 'Precio' }, { key: 'enlace_checkout', label: 'Enlace Compra', example: 'https://drip-zone.online/checkout?...', description: 'Link checkout' }, { key: 'enlace_app', label: 'Enlace Descarga App', example: 'https://drip-zone.online/app-dripzone.apk', description: 'Link App' }, ], }, { id: 'whatsapp_bot_greeting', title: 'Bienvenida Comercial Automática del Bot de WhatsApp', description: 'Respuesta comercial del bot ante saludos o preguntas generales de compra en WhatsApp.', category: 'customer_sales', channel: 'whatsapp', isActive: true, content: `¡Hola! 👋 Te damos la bienvenida a *{tienda_nombre} Colombia* 🇨🇴 Tu tienda oficial de sneakers, zapatillas y streetwear con horma nacional. ━━━━━━━━━━━━━━━━━━━━━━ 👀 *Puedes consultar nuestro catálogo y modelos aquí en WhatsApp o en nuestra tienda online:* 🌐 *Catálogo Completo:* {enlace_tienda} 🛒 *Procesar Pedido:* {enlace_checkout} 📱 *Descargar App Android:* {enlace_app} 💡 *¿Cómo funciona tu compra?* 1️⃣ Elige tu modelo y talla en el catálogo. 2️⃣ Los pedidos y anticipos se procesan en la web o app para asegurar tu factura y despacho inmediato. 3️⃣ Realizas un anticipo de *$10.000* únicamente por Bold oficial (PSE o tarjetas) y cancelas el saldo restante *contraentrega* al recibir en tu puerta (en efectivo o mediante Bold). 4️⃣ Envíos a todo el país con tiempos y flete según tu ciudad de destino. 5️⃣ Garantía directa y cambio de talla según políticas y cobertura de tu ciudad. 💬 *¿Te gustó algún modelo de nuestro catálogo de WhatsApp?* Indícanos el nombre o tu talla y con gusto te asesoramos y enviamos el enlace directo.`, defaultContent: `¡Hola! 👋 Te damos la bienvenida a *{tienda_nombre} Colombia* 🇨🇴 Tu tienda oficial de sneakers, zapatillas y streetwear con horma nacional. ━━━━━━━━━━━━━━━━━━━━━━ 👀 *Puedes consultar nuestro catálogo y modelos aquí en WhatsApp o en nuestra tienda online:* 🌐 *Catálogo Completo:* {enlace_tienda} 🛒 *Procesar Pedido:* {enlace_checkout} 📱 *Descargar App Android:* {enlace_app} 💡 *¿Cómo funciona tu compra?* 1️⃣ Elige tu modelo y talla en el catálogo. 2️⃣ Los pedidos y anticipos se procesan en la web o app para asegurar tu factura y despacho inmediato. 3️⃣ Realizas un anticipo de *$10.000* únicamente por Bold oficial (PSE o tarjetas) y cancelas el saldo restante *contraentrega* al recibir en tu puerta (en efectivo o mediante Bold). 4️⃣ Envíos a todo el país con tiempos y flete según tu ciudad de destino. 5️⃣ Garantía directa y cambio de talla según políticas y cobertura de tu ciudad. 💬 *¿Te gustó algún modelo de nuestro catálogo de WhatsApp?* Indícanos el nombre o tu talla y con gusto te asesoramos y enviamos el enlace directo.`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Tienda' }, { key: 'enlace_tienda', label: 'Enlace Web', example: 'https://drip-zone.online', description: 'Página web' }, { key: 'enlace_checkout', label: 'Enlace Checkout', example: 'https://drip-zone.online/checkout', description: 'Link compra' }, { key: 'enlace_app', label: 'Enlace App Android', example: 'https://drip-zone.online/app-dripzone.apk', description: 'Descarga APK' }, ], }, { id: 'shipping_city_policy_notice', title: 'Política Oficial de Envíos y Fletes por Ciudad', description: 'Texto explicativo para clientes informando que los envíos varían según la ciudad.', category: 'guarantees_policies', channel: 'whatsapp', isActive: true, content: `🚚 *Información de Envíos y Despachos - {tienda_nombre}* 📍 El costo de flete y el tiempo estimado de entrega dependen de la ciudad de destino: • *Cali y Área Metropolitana:* Despacho express en 24 horas hábiles con mensajería local. • *Otras Ciudades Principales e Intermedias:* De 2 a 4 días hábiles mediante transportadora nacional con seguimiento en línea. 💵 *Forma de Pago:* Separación con $10.000 por Bold oficial y saldo restante contraentrega en efectivo o mediante Bold al recibir. ¡Consulta la tarifa y tiempo exacto seleccionando tu ciudad en el checkout!`, defaultContent: `🚚 *Información de Envíos y Despachos - {tienda_nombre}* 📍 El costo de flete y el tiempo estimado de entrega dependen de la ciudad de destino: • *Cali y Área Metropolitana:* Despacho express en 24 horas hábiles con mensajería local. • *Otras Ciudades Principales e Intermedias:* De 2 a 4 días hábiles mediante transportadora nacional con seguimiento en línea. 💵 *Forma de Pago:* Separación con $10.000 por Bold oficial y saldo restante contraentrega en efectivo o mediante Bold al recibir. ¡Consulta la tarifa y tiempo exacto seleccionando tu ciudad en el checkout!`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre marca' }, ], }, { id: 'exchange_city_policy_notice', title: 'Política de Garantía y Cambio de Talla según Ciudad', description: 'Mensaje claro para clientes indicando que la cobertura de cambio de talla depende de la ciudad.', category: 'guarantees_policies', channel: 'whatsapp', isActive: true, content: `🛡️ *Políticas de Garantía y Cambio de Talla - {tienda_nombre}* 👟 *Horma Nacional:* Todos nuestros modelos cuentan con horma nacional colombiana estándar. 🔄 *Cambios de Talla:* La posibilidad y condiciones del cambio de talla dependen de la cobertura logística de cada ciudad: • *Cali y cobertura metropolitana:* Primer cambio de talla coordinado con nuestro mensajero local. • *Nivel Nacional:* Cambio de talla garantizado sujeto a disponibilidad de inventario; el flete logístico del reenvío se coordina según la ciudad de destino. ✅ *Garantía de Fábrica:* Respaldo total por defectos de manufactura en todos los envíos.`, defaultContent: `🛡️ *Políticas de Garantía y Cambio de Talla - {tienda_nombre}* 👟 *Horma Nacional:* Todos nuestros modelos cuentan con horma nacional colombiana estándar. 🔄 *Cambios de Talla:* La posibilidad y condiciones del cambio de talla dependen de la cobertura logística de cada ciudad: • *Cali y cobertura metropolitana:* Primer cambio de talla coordinado con nuestro mensajero local. • *Nivel Nacional:* Cambio de talla garantizado sujeto a disponibilidad de inventario; el flete logístico del reenvío se coordina según la ciudad de destino. ✅ *Garantía de Fábrica:* Respaldo total por defectos de manufactura en todos los envíos.`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre marca' }, ], }, ]; /** * Reemplaza todas las variables {variable_key} en el texto de la plantilla. */ export function interpolateVariables( templateContent: string, variables: Record ): string { if (!templateContent) return ''; return templateContent.replace(/\{([a-zA-Z0-9_]+)\}/g, (match, key) => { const val = variables[key]; if (val !== undefined && val !== null) { return String(val); } return match; // Mantener la etiqueta si no se provee valor }); } /** * Convierte el formato de WhatsApp (*negrita*, _cursiva_, ~tachado~, saltos de línea) a HTML seguro para la vista previa */ export function formatWhatsAppPreviewToHTML(text: string): string { if (!text) return ''; let html = text .replace(/&/g, '&') .replace(//g, '>'); // *negrita* html = html.replace(/\*([^\*]+)\*/g, '$1'); // _cursiva_ html = html.replace(/_([^_]+)_/g, '$1'); // ~tachado~ html = html.replace(/~([^~]+)~/g, '$1'); // saltos de línea html = html.replace(/\n/g, '
'); return html; }