VibeFox Estafeta for PrestaShop — Ayuda
Requisitos
PrestaShop: 8.0 a 9.x.
PHP: 8.0 o posterior con la extensión cURL. El módulo no se instala con versiones anteriores de PHP ni sin cURL.
Cuenta de DrEnvio (solo para tarifas en tiempo real): las tarifas en tiempo real de Estafeta proceden de DrEnvio, socio de Estafeta en México. Crea una cuenta en drenvio.com, activa Estafeta, configura allí tu dirección de recogida y copia la clave de API desde tu panel de DrEnvio. Es la misma clave que usa el módulo oficial de DrEnvio. Si solo usas tus propios precios, no necesitas una cuenta de DrEnvio.
Productos: los productos necesitan peso para las tarifas en tiempo real.
Clave de licencia de VibeFox: se compra en vibefox.net. Una clave funciona en un solo dominio.
Instalación
1. En el back office ve a Modules > Module Manager y haz clic en Upload a module. Elige el archivo ZIP del módulo.
2. Cuando termine la subida, haz clic en Configure, o busca VibeFox Estafeta más tarde en la lista de módulos y haz clic en Configure.
3. Introduce tu clave de licencia de VibeFox en License key en el bloque de licencia de la parte superior de la página Configure y haz clic en Activate (véase Clave de licencia).
4. Introduce la DrEnvio API key y, opcionalmente, el Origin postcode. Si la moneda predeterminada de tu tienda no es el MXN, introduce el MXN exchange rate. Define un precio por país para MX o un Fallback cost si el transportista debe seguir visible cuando DrEnvio no tenga tarifa. Haz clic en Save.
Al instalar, el módulo crea el transportista Estafeta con el texto de plazo de entrega Estafeta courier (Mexico). El transportista se asigna a todas las zonas y a todos los grupos de clientes. Puedes cambiar las zonas, los grupos de clientes, el plazo de entrega, el logotipo y los límites de tamaño en Shipping > Carriers. No definas precios allí: el precio siempre procede del módulo.
Configuración
Todos los ajustes están en la página del módulo: Modules > Module Manager > VibeFox Estafeta > Configure. Cada sección tiene su propio botón Save, que guarda toda la página. Cada guardado también borra las tarifas de DrEnvio en caché.
En la parte superior de la página, el módulo muestra advertencias: falta la clave de API de DrEnvio; la moneda predeterminada no es MXN y no hay tipo de cambio; no hay precio por país para MX ni coste de reserva (en ese caso el transportista se oculta cuando no hay tarifa en tiempo real, o nunca se muestra sin clave de API); o hay una unidad de peso de la tienda que el módulo no reconoce (los pesos de los productos se toman entonces como kg; define la unidad en International > Localization, Local units). Los campos numéricos aceptan punto o coma decimal. Un valor que no es un número válido se borra y se notifica al guardar; los demás ajustes se guardan igualmente.
General
Las zonas, los grupos de clientes y los límites de tamaño del transportista se definen en Shipping > Carriers. Estos ajustes se aplican a todas las zonas.
Enable/Disable: activa o desactiva el envío con Estafeta. Es el mismo interruptor que el estado del transportista en Shipping > Carriers.
Name: el nombre del transportista que ve el cliente en la finalización de compra. Predeterminado: Estafeta. Obligatorio. Un nombre no válido se notifica y se mantiene el anterior.
Tax: la regla de impuesto del transportista, o No tax. La tienda añade este impuesto sobre el coste del envío. Si los precios de DrEnvio incluyen IVA depende de tu cuenta de DrEnvio. Si ya incluyen IVA, elige No tax.
Tarifas en tiempo real (API de DrEnvio)
Se ofrece el servicio de Estafeta más barato para la dirección. Sin clave se usan los precios de la siguiente sección.
DrEnvio API key: la clave de API de tu panel de DrEnvio. Tras guardar, el campo queda vacío y muestra Saved — leave empty to keep it. Escribe un valor nuevo solo para cambiarla.
Remove the saved API key: visible solo mientras hay una clave guardada. Ponlo en Yes y guarda para eliminar la clave. Entonces solo se usan los Country prices y el Fallback cost. Una clave escrita en el campo de arriba sustituye a la guardada.
Origin country: el código de dos letras del país de la dirección de recogida. Predeterminado: MX. Se envía solo junto con el código postal de origen.
Origin postcode: el código postal de 5 dígitos de la dirección de recogida. Déjalo vacío para usar la dirección de origen guardada en tu cuenta de DrEnvio. Un código postal que no tenga 5 dígitos se borra y se notifica al guardar.
MXN exchange rate: DrEnvio cotiza en pesos mexicanos. Solo hace falta si la moneda predeterminada de tu tienda no es el MXN: el valor de 1 MXN en tu moneda predeterminada, por ejemplo 0.05. Sin él no se usan tarifas en tiempo real.
Precios sin tarifa en tiempo real
Se usan cuando no hay clave de API o DrEnvio no devuelve ninguna tarifa de Estafeta (API caída, código postal desconocido, aún no se ha introducido código postal). Los precios están en la moneda predeterminada de tu tienda, sin impuestos.
Country prices: un país de destino por línea, con el formato CC:PRICE, por ejemplo MX:150. Usa punto o coma decimal, sin separador de miles. Las partes con otro formato se ignoran y se notifican al guardar.
Fallback cost: el precio cuando no hay tarifa en tiempo real ni precio por país. Déjalo vacío para ocultar el transportista; 0 significa envío gratis.
Calculation type: Per order cobra el precio una vez. Per item (price x number of items) lo multiplica por el número de artículos del carrito. Se aplica a Country prices y al Fallback cost. Una tarifa en tiempo real de DrEnvio siempre es el precio de todo el paquete.
Condiciones
Free shipping from: el envío es gratis cuando el subtotal del carrito (productos que requieren envío, después de descuentos y antes de impuestos) alcanza este importe. En ese caso no se hace ninguna petición a DrEnvio. Déjalo vacío para no ofrecer nunca envío gratis.
Minimum subtotal: muestra el transportista solo cuando el subtotal del carrito (después de descuentos, antes de impuestos) es al menos este importe. Déjalo vacío para mostrarlo siempre.
Min weight: el peso mínimo del carrito en kg para que aparezca el transportista. 0 significa sin límite.
Max weight: el peso máximo del carrito en kg. El transportista se oculta si se supera. Predeterminado: 30. 0 significa sin límite.
Si Min weight es mayor que Max weight, al guardar aparece un error y ambos pesos no cambian. Los pesos de los productos se convierten de la unidad de peso de tu tienda a kg.
Disponibilidad sin zonas de envío
Ignore shipping zones: ofrece el transportista para los países indicados sin configurar zonas para él. Mientras está activo, el transportista obtiene todas las zonas, incluidas las que crees más adelante. Al desactivarlo, el transportista recupera sus propias zonas.
Countries: los países de destino para ese modo, elegidos entre los países activos de tu tienda. Déjalo vacío para todos los países. Se usa solo cuando Ignore shipping zones está activo.
Avanzado
Debug log: registra las peticiones a la API y los cálculos de tarifas en logs/vfd_est_debug.log.php, en la carpeta del módulo. El archivo no se puede abrir desde la web. Los errores de la API siempre se registran. La clave de API y las direcciones de los clientes nunca se registran. Desactiva el registro cuando termines.
Log: muestra el tamaño y las entradas más recientes del registro de depuración. Haz clic en Clear log para vaciarlo.
Remove data on uninstall: si está activo, al desinstalar el módulo se borran todos los ajustes del módulo, el transportista, los servicios de Estafeta guardados de los pedidos y el registro. Si está desactivado, todo se conserva para una reinstalación.
Cómo funciona en la finalización de compra
En el paso de envío, PrestaShop pide al módulo el precio de Estafeta. Solo cuentan los productos físicos: los productos virtuales no suman peso ni se incluyen en el subtotal. El módulo comprueba primero las condiciones: la lista Countries (cuando Ignore shipping zones está activo), el peso del carrito y el subtotal mínimo. Si se aplica el envío gratis, el precio es 0 y no se envía ninguna petición a DrEnvio.
En caso contrario, el módulo envía a DrEnvio el país y el código postal de destino, el peso del carrito, el número de artículos y el subtotal en MXN, además del código postal de origen si lo has definido. Los códigos postales mexicanos deben tener 5 dígitos; hasta que el cliente introduzca una dirección de entrega con uno, no se hace ninguna petición. DrEnvio devuelve cotizaciones de todos los transportistas de tu cuenta. El módulo usa solo las cotizaciones de Estafeta, ignora los precios cero, elige la más barata y la convierte a tu moneda predeterminada. Después, el precio se muestra en la moneda del carrito del cliente.
Cada respuesta se guarda en caché durante 1 hora. Una petición fallida o una ruta sin tarifa de Estafeta se recuerda durante 5 minutos, para que una API lenta o averiada nunca bloquee cada actualización de la finalización de compra. El tiempo de espera de la API es de 12 segundos. En estos casos el cliente no ve ningún error: se usa el precio por país o el coste de reserva, o el transportista se oculta si no hay ninguno de los dos. El motivo se escribe en el registro.
Si editas el transportista en Shipping > Carriers después de que tenga pedidos, PrestaShop lo guarda como una nueva versión del transportista. El módulo sigue la nueva versión automáticamente.
El módulo solo calcula tarifas. No crea envíos, no imprime etiquetas (guías) ni rastrea paquetes; el envío se crea en tu cuenta de DrEnvio o de Estafeta. El cliente no puede elegir un servicio concreto de Estafeta ni una oficina de Estafeta, y los tipos de cambio no se actualizan automáticamente.
Pedidos
Cuando se realiza un pedido con el transportista de Estafeta, el módulo conserva la tarifa calculada para su carrito. Los recálculos posteriores, por ejemplo en la página de pedido del back office, no la cambian.
La página de pedidos en Orders > Orders muestra un bloque Estafeta:
Estafeta service: el servicio de Estafeta de la cotización de DrEnvio y su plazo de entrega. Se muestra solo para tarifas en tiempo real.
Price source: Live DrEnvio rate, Country price (no live rate), Fallback cost (no live rate) o Free shipping threshold.
Calculated price (excl. tax): el precio de envío en tu moneda predeterminada.
Clave de licencia
El módulo funciona con una clave de licencia de VibeFox de vibefox.net. El bloque de licencia License — VibeFox Estafeta es el primer bloque de Modules > Module Manager > VibeFox Estafeta > Configure, por encima de los ajustes. Introduce la clave en License key y haz clic en Activate. Después, el bloque muestra la clave enmascarada, el estado (por ejemplo, la fecha hasta la que la licencia está activa y tu dominio) y los botones Check now para volver a comprobar el estado, Change key para introducir otra clave y Remove key para eliminar la clave de esta tienda. Debajo aparecen la línea Product: presta-shipping-estafeta y el enlace Manage licenses and domains in your account, que abre tu cuenta de vibefox.net. Solo los empleados con el permiso Configure para el módulo pueden cambiar la clave. Los textos del bloque siguen el idioma del back office (se incluyen inglés y ruso).
Si la clave no se acepta, el bloque indica el motivo, por ejemplo Key not found, This key belongs to another product, Domain limit reached o License expired on y una fecha. Después de cambiar la dirección de la tienda, o tras liberar una plaza de dominio en tu cuenta, haz clic en Check now. Si no se puede acceder al servidor de licencias, el módulo sigue funcionando con el último estado conocido.
Una clave funciona en un solo dominio: el dominio de la tienda principal, también en una configuración multitienda. Eliminar la clave de la tienda no libera su plaza de dominio. Libérala en tu cuenta de vibefox.net.
Sin una clave activa, el transportista de Estafeta no se muestra a los clientes en la finalización de compra y no se calcula ninguna tarifa. La tienda de PrestaShop no sabe que has iniciado sesión en el back office, así que el transportista también se oculta para ti: puedes configurar el módulo antes de comprar una clave, pero no probarlo en la finalización de compra. Aparece un recordatorio en Modules > Module Manager, en la pestaña Alerts. Los pedidos existentes no se ven afectados.
Cuando una licencia caduca, el módulo sigue funcionando, pero las actualizaciones y el soporte requieren renovarla. El estado se vuelve a comprobar automáticamente mientras trabajas en el back office: una vez al día durante los primeros 14 días tras introducir la clave, y después una vez a la semana. No hace falta ninguna tarea cron. Al desinstalar o restablecer el módulo, siempre se eliminan la clave de licencia y el estado de la licencia.
Solución de problemas
Estafeta no aparece en la finalización de compra: comprueba que la licencia está activa y que Enable/Disable está activado. En Shipping > Carriers, comprueba que el transportista cubre la zona del país del cliente y el grupo del cliente (o que Ignore shipping zones está activo y el país está permitido). Revisa las advertencias de la parte superior de la página del módulo, los límites de peso y el Minimum subtotal. Sin clave de API o cuando DrEnvio no tiene tarifa de Estafeta, el transportista necesita un precio por país para el destino o un coste de reserva. Los productos también pueden limitarse a ciertos transportistas en la página del producto.
Las tarifas en tiempo real no aparecen: activa el Debug log, recarga la finalización de compra y mira el campo Log de la página del módulo. Muestra el motivo: no hay clave de API; no hay tipo de cambio en una tienda cuya moneda predeterminada no es MXN; falta o no es válido el código postal; la clave de API ha sido rechazada (HTTP 401 o 403 de DrEnvio; revisa la clave de API); no hay tarifa de Estafeta para la ruta (el registro indica los transportistas que devolvió DrEnvio); o la tarifa está en una moneda distinta de MXN.
¿El precio incluye IVA? Depende de tu cuenta de DrEnvio. Si los precios de DrEnvio ya incluyen IVA, define Tax como No tax.
Las tarifas parecen desactualizadas tras un cambio: haz clic en Save en la página del módulo. Esto borra las tarifas de DrEnvio en caché.
La página indica que no se encontró el transportista de Estafeta: el transportista se eliminó en Shipping > Carriers. Restablece el módulo en Modules > Module Manager para volver a crearlo. El mismo procedimiento sirve para el mensaje The settings were saved, but the carrier could not be updated.
La página del pedido no tiene bloque de Estafeta: el bloque solo aparece en los pedidos realizados con el transportista de Estafeta mientras el módulo estaba instalado. Desinstalar con Remove data on uninstall activado borra los servicios guardados.
Desinstalación
Ve a Modules > Module Manager, abre el menú junto a VibeFox Estafeta y elige Uninstall. La clave de licencia y el estado de la licencia siempre se eliminan. Las tarifas en caché siempre se eliminan. Si Remove data on uninstall está activado, el transportista se elimina (los pedidos conservan su historial) y se borran los ajustes, los servicios de Estafeta guardados de los pedidos y el registro. Si está desactivado, el transportista solo se desactiva y los ajustes y los servicios guardados de los pedidos se conservan. Al volver a instalar el módulo, el transportista recupera el estado que tenía antes de la desinstalación.
Estafeta y DrEnvio son marcas comerciales de sus respectivos titulares. Este módulo no está afiliado ni cuenta con el respaldo de Estafeta ni de DrEnvio.
