PS PrestaShop Principiante

Prefijo Telefónico Internacional (dfphoneintl)

Instalación, configuración y reglas de normalización E.164 del módulo de prefijo telefónico internacional con bandera para PrestaShop 8 y 9.

Actualizado Versión del módulo 1.0.0

Presentación

DataFirefly International Phone Input (dfphoneintl) añade un selector de prefijo telefónico con bandera en los campos Teléfono y Teléfono móvil de PrestaShop, y uniformiza los números al formato internacional E.164 en la base de datos. El módulo actúa en dos niveles: en el navegador para la experiencia de usuario, y en el servidor para garantizar que toda inserción o actualización de dirección — incluso vía API, back-office o importación — produce un número normalizado.

Formato de almacenamiento: para un cliente francés que introduce 0633547864, el valor guardado en la base es +33633547864 — prefijo del país, eliminación del 0 inicial (trunk prefix), sin espacios ni separadores.

Requisitos

  • PrestaShop 8.0.0 a 9.99.99
  • PHP 7.4 mínimo (8.1+ recomendado)
  • Sin dependencias externas — el módulo no incluye ninguna librería de terceros

Instalación

  1. Descargue el archivo dfphoneintl-1.0.0.zip desde su cuenta de cliente DataFirefly.
  2. En el back-office de PrestaShop, vaya a Módulos → Gestor de módulos → Subir un módulo.
  3. Arrastre y suelte el archivo ZIP y haga clic en Instalar.
  4. El módulo se registra automáticamente en los hooks necesarios. No se crea ninguna tabla SQL — los prefijos se leen desde la tabla nativa ps_country.

Configuración

Vaya a Módulos → Gestor de módulos → DataFirefly International Phone Input → Configurar. Hay tres ajustes disponibles:

  • Activar en el campo «Teléfono» — activa o desactiva el selector y la normalización en el campo phone.
  • Activar en el campo «Teléfono móvil» — lo mismo para el campo phone_mobile.
  • Países preferidos — lista de códigos ISO2 separados por comas (ej. fr,be,lu,ch,gb,us,de). Estos países quedan fijados en la parte superior del desplegable. Valor por defecto: fr,be,lu,ch,gb,us,de,es,it,nl.

Los países mostrados en el selector provienen de los países activados en su tienda (Transporte → Zonas geográficas → Países). Un país desactivado, o sin prefijo definido en la columna call_prefix, no aparece.

Funcionamiento en el navegador

Páginas cubiertas

El selector aparece en todas las páginas del front-office con campos de teléfono: creación de cuenta, registro, gestión de direcciones, proceso de compra (5 pasos y one-page), página de identidad, página de contacto y seguimiento de pedido como invitado.

Sincronización con el país

Cuando el cliente cambia el país en el formulario de dirección, el prefijo del selector se actualiza automáticamente. Seleccionar Bélgica cambia el prefijo a +32, Alemania a +49, etc. Esta sincronización también funciona durante las recargas AJAX del checkout nativo: el módulo escucha los eventos PrestaShop updatedAddressForm, updatedAddress, updateCustomerAddressForm y changedCheckoutStep, con un MutationObserver debounced como red de seguridad para temas muy personalizados.

Detección en direcciones existentes

Si el campo ya contiene un número en formato internacional (edición de una dirección existente), el módulo detecta el país correspondiente mediante coincidencia del prefijo más largo (longest dial-code match): +1242... se reconoce como Bahamas y no como Estados Unidos.

Funcionamiento en el servidor

La normalización del servidor está conectada a los hooks actionObjectAddressAddBefore y actionObjectAddressUpdateBefore. Antes de cada INSERT o UPDATE en la tabla ps_address, los campos phone y phone_mobile pasan por la clase DfPhoneFormatter. Esto cubre todos los canales de escritura: formularios front, back-office, webservice, importaciones CSV y módulos de terceros que manipulan la clase Address.

Reglas de normalización

Para una dirección asociada a un país con prefijo +33:

  • Número que empieza por + → se conserva tal cual, solo se eliminan los separadores: +33 6 33 54 78 64 se convierte en +33633547864.
  • Número que empieza por 00 → el 00 se reemplaza por +: 0033633547864 se convierte en +33633547864.
  • Número que empieza por 0 (trunk prefix) → el 0 se elimina y el prefijo se antepone: 0633547864 se convierte en +33633547864.
  • Número que ya empieza por el prefijo sin + → simplemente se añade el +: 33633547864 se convierte en +33633547864.
  • Cualquier otro número compuesto solo de dígitos → se antepone el prefijo.

Las direcciones existentes no se modifican retroactivamente en la instalación. La normalización se aplica en el siguiente guardado de cada dirección. Para una normalización masiva de los datos existentes, contacte con el soporte — un script SQL con la misma lógica está disponible bajo petición.

Compatibilidad de temas y checkout

  • Tema Classic PS 8 (Bootstrap 4) y tema PS 9 (Bootstrap 5) soportados nativamente.
  • Checkout de 5 pasos y one-page checkout (OPC) soportados.
  • Las banderas son emojis Unicode (Regional Indicator Symbols): sin sprites ni CDN, renderizado nativo en todos los navegadores y sistemas modernos.
  • Multitienda: parámetros globales, lista de países filtrada por tienda.
  • Multidioma: nombres de países mostrados en el idioma del visitante.

Solución de problemas

El selector no aparece

  • Compruebe que el campo está activado en la configuración del módulo.
  • Compruebe que su tema usa los nombres de campo estándar phone / phone_mobile (o address[phone] / address[phone_mobile]). Para un campo renombrado por un tema custom, contacte con el soporte.
  • Vacíe la caché de PrestaShop (Parámetros avanzados → Rendimiento) tras la instalación.

Las banderas se muestran como letras (FR, BE…)

Comportamiento esperado en algunos sistemas Windows antiguos que no renderizan los emojis de bandera. El prefijo +33 sigue visible y el módulo permanece totalmente funcional.

El prefijo no sigue el cambio de país

En un tema muy personalizado cuyo select de país no usa el nombre id_country, la sincronización automática no puede engancharse. El MutationObserver reinicializa igualmente el widget, y el cliente puede elegir manualmente su prefijo. Contacte con el soporte con la URL de su tienda para una adaptación.

Desinstalación

La desinstalación elimina las tres claves de configuración del módulo. Los números ya normalizados en la base permanecen en formato internacional — ningún dato de cliente se modifica ni se elimina.

Soporte

Soporte por email incluido, actualizaciones incluidas durante 12 meses. Garantía de devolución de 14 días en todos los módulos DataFirefly.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte