[MODULO] Seleccionar fecha de entrega pedidos PrestaShop

publicado en: Módulos, Prestashop | 88

[ACTUALIZACIÓN MARZO 2020] He trabajado en actualizar este modulo para PrestaShop 1.7 y ahora es totalmente compatible. Puedes descargarlo desde el enlace que encontrarás más abajo

[ACTUALIZACIÓN ENERO 2017] Después de unos comentarios me he puesto a repasar el módulo y parece contener un problema cuando se ha seleccionado el proceso de compra en un solo paso. Si se tiene habilitado esta forma de procesar el pedido no se guarda la fecha de entrega. Estoy intentando solucionarlo pero por el momento no lo he conseguido, espero tenerlo en breve

Para una tienda online que estoy desarrollando he creado un modulo para resolver una de las peticiones que tenia en cuanto a la funcionalidad del ecommerce.

Se trata de una tienda de alimentación y necesitaba poder ofrecer al cliente la posibilidad de escoger el dia que queria recibir su pedido, ya que al ser productos frescos y congelados no se pueden simplemente dejar en el buzón, por esto era necesario que el cliente pudiera escoger el momento mas o menos exacto (un rango de horas) en el que le viene bien que el repartidor le entregase su compra.

Está pensado para funcionar con el repartidor propio de la tienda y no uno externo, de forma que se tiene control total sobre el envío.

Con estas caracteristicas me puse a ver módulos ya creados en el foro de PrestaShop. Aunque he encontrado un par de módulos que funcionaban más o menos como deberían no me gustaban como estaban desarrollados. Queria algo más simple, un módulo que sólo hubiera que instalarlo y no modificar archivos del nucleo para que en las actualizaciones no dieran problemas. Encontrar un módulo que cumpliera con esto ya era más complicado, por no decir imposible. Así que como no lo encontraba me decidí a crearlo yo mismo.

Dicho esto he desarrollado este pequeño módulo que cumple justo con lo que necesitaba, añadir en el proceso de compra una opción para escoger la fecha en la que el cliente quiere recibir el pedido.

Por defecto tiene asignados los tres días siguientes a la fecha del pedido para la entrega y una serie de horas, por el momento no se puede modificar estás opciones desde el back office pero modificar el tpl para adecuarlo a las necesidades de cada uno es muy sencillo, se podría incluso añadir un calendario que nos permita escoger un día más lejano y no sólo los tres días siguientes. Este módulo además tiene en cuenta que ni sábados ni domingos se realiza reparto, por lo que no muestra estos días en el desplegable.

Seguramente este módulo os venga muy bien, pero es posible que necesite alguna modificación, en ese caso no tengais reparo en poneros en contacto conmigo a través de la sección de contacto para ver que se puede hacer.

Como siempre os invito a comentar para conocer vuestra opinión y en este caso más que nunca para conocer vuestra experiencia con esta creación.

A continuación podeis ver una imagen de como lo deberiais ver en el detalle del pedido. Debe aparecer un cuadro con la siguiente información, obviamente cambiando la fecha que aparece por la que ha seleccionado el cliente

Tabla de contenido

fecha-entrega

> Descargar modulo para seleccionar la fecha de entrega en un pedido de PrestaShop 1.6 <

He recibido bastantes peticiones solicitando algunas modificaciones en el modulo por lo que al final he decidido ponerme manos a la obra y hacer ciertos cambios para intentar hacerlo más genérico de forma que encaje con las necesidades de mucha más gente. Por un lado tenemos el modulo que hay sobre estas lineas que ya sabeis como funcionan y bajo este texto disponeis de una segunda versión.

Esta segunda versión del modulo simplifica todo el proceso añadiendo una sola casilla en la que al pinchar, se nos desplegará un calendario en el que podrán seleccionar sin problema alguno una fecha dentro del calendario, además en la parte baja hay un selector de hora para que se asi posible escoger entre una de todas las horas disponibles.

> Descargar nueva versión del modulo para seleccionar la fecha de entrega en un pedido de PrestaShop 1.6 <


Como comentaba al principio de esta entrada, una nueva versión de este modulo para seleccionar la fecha de entrega está ya disponible y es completamente compatible con PrestaShop 1.7. Puedes descargarlo ahora pinchando en el siguiente enlace:


> Descargar modulo seleccionar fecha de entrega en un pedido PrestaShop 1.7 <


Aunque no he tenido la posibilidad de probar este modulo con la versión 1.6 de PrestaShop, es posible que sea valido para aquellas tiendas online que estaban usando el proceso de compra de un solo paso, ya que como sabeis este es el modo por defecto en la nueva versión. Si alguien lo prueba en esta versión de PrestaShop espero que nos pueda comentar como funciona 🙂

Deciros también que esta nueva versión para PrestaShop 1.7 se basa en el modulo original que desarrollé, aquel que permitia seleccionar los tres dias siguientes (excluyendo fines de semana) para el reparto. Como ya he comentado esto es ideal para tiendas de alimentación y asi asegurar que la persona que tiene que recibir el pedido se encuentra en casa, pero puede ser usado para cualquier otro tipo de comercios como floristerias.



[Imagen de portada Designed by Freepik]

88 comentarios

  1. alejandra

    hola no puedo ver el demo del modulo, pero necesito algo parecido pero que ademas tenga zip code para una tienda en estados unidos, esto para antes de finalizar la compra lo puedes desarrollar, mil gracias

    • dwalins

      Hola Alejandra,

      No hay disponible una demo del módulo, para verlo deberias probarlo en un sitio de pruebas. ¿QUe necesitarias hacer exactamente con el zip code? ¿permitir o no el envio?

      Un saludo

  2. Sonnnia

    Hay un error en el módulo que no muestra la fecha del pedido en el BO, en el archivo Funciones.php en la función «getFechaEntrega» pone:

    $sql = ‘SELECT delivery_date FROM ‘._DB_PREFIX_.’fecha_entrega WHERE id_order = ‘. $id_order;

    El campo «id_order» no existe en la BBDD, se llama «id_cart», por lo que cambiando la línea por esta ya funciona bien:

    $sql = ‘SELECT delivery_date FROM ‘._DB_PREFIX_.’fecha_entrega WHERE id_cart = ‘. $id_order;

    Muchas gracias por estos módulos, la verdad que revisándolos estoy aprendiendo bastante de programación de módulos para Prestashop. Por favor no dejes de publicar tutoriales y módulos!

    Muchas gracias! 😀

    • dwalins

      Hola Sonnnia,

      Gracias por tu aporte, voy a revisar lo que me comentas para corregirlo.

      En breve espero traer más cosillas.

      Un saludo!

  3. Jesus

    Gracias por el aporte , me parece algo estupendo este modulo, pero seria posible adaptarlo para que solo funcionase con una categoria especifica?
    Por ejemplo mi tienda es de venta y vamos a poner alquiler de productos , entonces la idea es que el cliente pueda poner el dia y la fecha que le entregamos el producto en alquiler .
    No se si es factible
    Un saludo

    • dwalins

      Hola Jesus,

      Sería un poco lioso, imagina que el cliente quiere comprar y alquilar varias cosas, con este módulo no podria seleccionar para cada uno de los elementos. Se que no es algo normal pero basta que no lo tengas para que lo pidan.
      Te recomendaria quizás jugar con los campos personalizados del producto para poder meter una fecha ahi

      Un saludo

  4. walter

    hola amigo he instado tu modulo en prestashop, cuando el usuario hace la compre seleccionado una fecha en el calendario, en el backOfice donde aparece esa fecha?

    • dwalins

      Hola Walter,

      Para ver la fecha que se ha seleccionado tienes que entrar dentro de los detalles de cada pedido y en la parte superior verás que hay un recuadro con la fecha de entrega, está puesto el primero de todos para que sea lo primero que se vea

      Un saludo

  5. Juan Carlos

    Hola Roberto, gracias por tu aporte me ayudo mucho. Me gustaria saber como podria agregar un calendario para programar con 60 días de anticipación un servicio. Saludos!

  6. walter

    hola, en la parte superior estan unos iconos de fehca, total, mesajes, productos.
    en la parte que dice fecha me muestra la fecha del pedido pero no la fecha que el usuario ha seleccionado en el calendario… no encuento dicho fecha 🙁

  7. walter

    he cambiado diferentes transportistas para ver si eso es, no funciona, si dice fecha de entrega pero esta en blanco no captura nada de lo que el cliente ha seleccionado. necesito ayuda!

  8. walter

    hola, ya logre que funcionara, solo tengo una duda que clase o que le modifico para que si pueda aceptar fines de semana?, ya que mi tienda es de envio de regalos y esta disponible todos los dias de la semana?, de antemano gracias !

    • dwalins

      Hola Walter,

      Me alegra que ya te funcione. Para cambiar lo que pides tienes que modificar en el archivo seleccionarentrega.php alrededor de la linea 63, donde se empieza a hablar de las fechas de entrega, no te deberia costar nada adaptarlo a lo que buscas ya que basicamente es ser más permisivo.

      Un saludo

  9. Juan Carlos Hernandez

    Hola dwalins, cambie fechaentrega.tpl de «Seleccione una fecha de entrega del pedido» a «Seleccione una fecha para Visita Tecnica», instalo el modulo y no me muestra el cambio, que puedo hacer. Saludos!

    • dwalins

      Hola Juan Carlos,

      Deberia salirte sin más, sobre todo si lo has hecho antes de instalar el modulo, prueba borrando la caché

      Un saludo

  10. Juan Carlos Hernandez

    disculpa, como lo puedo hacer para no duplicar las fechas de envío para que no coincidan los despachos.
    Ejemplo: cliente 1 despacho lunes 9 a las 08:00 y cliente 2 despacho lunes 9 a las 08:00, seria ideal que indicara al cliente 2 que la fecha esta ocupada o algo asi.

    • dwalins

      Hola!

      Bueno eso es más complicado ya que deberia consultar antes de mostrar las fechas para eliminar esas, tal y como está el módulo esa funcionalidad no estaria contemplada, está más orientado al reparto que a dar citas y por eso no tiene en cuenta ese tipo de cuestiones

      Un saludo

  11. alvaro

    Hola me gustaria saber como agregarle un calendario para que el cliente pueda escoger la entrega cualquier dia y no solo los 3 siguientes incluyuendo sabados y domingos.

  12. Hugo

    dwalins, grandisimo trabajo, muchas gracias.
    Un peticion, en los emails que prestashop manda con el resumen de pedido, no aparace la fecha de entraga, podrias incluirlo??
    Gracias.

  13. Hugo

    Tampoco aparece esta fecha de entrega en el backoffice en el resumen del pedido.
    podrias incluirlo??

    • dwalins

      Hola Hugo,

      Me alegra que te haya gustado. El módulo ancla un bloque dentro de los detalles del pedido en el que te muestra la fecha que ha seleccionado la persona durante el proceso de compra.

      En cuanto al correo es algo que he estado pensando pero necesito ver como puedo mostrarlo en esos correos directamente desde el modulo.

      Un saludo

  14. Hugo

    Hola dwalins, no veo la fecha en los detalles del pedido, podrias indicarme donde esta?, seguro que lo pase por delante y no me di cuenta.
    Por otro lado, seria complicado cambiar el campo despleglable por un selector de fechas??
    Muchas gracias

    • dwalins

      Hola Hugo,

      Te deberia salir justo al principio arriba del todo una vez que entras a ver el pedido, el bloque ocupa todo el ancho de la pantalla con lo que deberias verlo facilmente. Si no te sale puede que se haya quedado colgado el hook en la instalación, prueba a anclarlo manualmente o a desinstalar y volver a isntalar.

      Puedes meterle el tipico calendario, deberias cambiar el desplegable por un campo de texto y añadir el datepicker de jquery por ejemplo (https://jqueryui.com/datepicker/)

      Un saludo

  15. Hugo

    Hola dwalins, ver el modulo lo veo, pero no sale la fecha de entrega, aparece en blanco.
    Y en el resumen del pedido para el usuario tampoco aparece esta fecha, como puedo solucionarlo??
    muchas gracias

    • dwalins

      Hola Hugo,

      Acabo de actualizar el post con una imagen. ¿Te aparece ese cuadro pero vacio?

      Un saludo

  16. Claudia

    Hola! he instalado este módulo, pero me ocurre igual que a otras personas, en la parte de arriba de los pedidos aparece en blanco. Pone «Fecha de entrega» pero debajo no aparece la fecha.

    ¿podrías ayudarme para anclar bien el hook de forma manual como has dicho en alguna respuesta?

    Gracias

    • dwalins

      Hola Claudia,

      Por lo que me comentas el módulo está bien anclado en el panel de control sino no te apareceria lo de Fecha de entrega. ¿Has hecho algún pedido nuevo y has seleccionado la fecha de entrega durante el proceso de compra? Para los pedidos más antiguos te saldrá vacio ya que aún no existia esa funcionalidad

      Un saludo

  17. Nacho

    Hola,
    Felicidades por el módulo, con unos cambios hemos conseguido adaptarlo a nuestras necesidades.
    En el método de envio de 5 pasos funciona perfectamente pero en OPC no funciona, registra el pedido en la base de datos pero no guarda ni fecha ni hora.
    Sabes que puede ser?
    Gracias!

    • dwalins

      Hola Nacho,

      Me alegra que se haya adaptado a vuestras necesidades. Si te soy sincero nunca lo habia probado con el pedido en un solo paso, cuando lo hice era para una tienda en concreto y no usaba ese método. Es posible que sea por el hook, voy a ver si le echo un vistazo pero me atrevería a decir que usa uno diferente y por eso no hace la acción de guardar los datos.

      Un saludo

  18. Nacho

    Tiene toda la pinta, yo creo que es este Hook (hookActionCarrierProcess) que cambia pero la verdad es que no estoy seguro y tampoco se cual seria.
    NOTA: Hemos adaptado el módulo de MailAlert para que envíe la hora y fecha de entrega al cliente en el email de pedido.

    • dwalins

      Hola Nacho,

      Correcto, ese hook en concreto es el que controla la operativa en el proceso de compra en cinco pasos. Durante ese hook salvo el registro y si el pedido es correcto actualizo el valor. El problema que me estoy encontrando es que no veo ningún punto en el que hacer la acción en el modo de un solo paso. Directamente pinchas en pagar con lo cual no tengo nada entre medias. ¿Alguna idea? La verdad que he probado con todos los hooks que tenia a mano y ninguno me valia.

      Interesante esa modificación del MailAlert, supongo que consultareis la fecha de la base de datos antes de generar el email y mandarlo no?

      Un saludo

  19. Nacho

    La verdad es que no se…, supongo que el Hook que se activa no será en de transporte sino el de pago. Has probado con el hook para el envío del pago.

    Respecto al MailAlert, realizamos una consulta a la base de datos con el id de carrito, ya que el id de pedido se genera después de enviar el email, quieres que lo ponga por aquí?

    • dwalins

      Está dificil, he probado en el unico de pago que había y el problema es que es la lista de los métodos de pago con lo cual se ejecuta antes de que el usuario haga nada. Luego cuando pinchan en pagar es un simple enlace que puede llevarte fuera de la tienda con lo cual complica más la cosa

      Estaría genial por si alguien más está interesado que pueda echarle mano, seguro que más de uno os agradece el esfuerzo 😉

  20. Nacho

    Pues aquí va:
    Debemos modificar el siguiente fichero –> modules/mailalerts/mailalerts.php
    1.- Antes de estas lineas:

    public function hookActionValidateOrder($params)
    {
    if (!$this->merchant_order || empty($this->merchant_mails))
    return;

    // Getting differents vars
    ******************************************************************************
    Añadir lo siguiente:

    //AÑADIDO PARA EL CAMPO FECHA DE ENTREGA
    public function getCustomField($id)
    {
    $sql=’SELECT delivery_date FROM `’._DB_PREFIX_.’fecha_entrega` WHERE `id_cart` = ‘.(int)$id.’ ORDER BY `id_cart` ASC’;
    $custom_fields = Db::getInstance()->getValue($sql);
    return $custom_fields;
    }

    2.- Después de las siguientes líneas:

    $carrier = new Carrier((int)$order->id_carrier);
    $message = $this->getAllMessages($order->id);

    ******************************************************************************
    Añadir lo siguiente:

    $fechadeentrega = $this->getCustomField((int)$params[‘cart’]->id);

    3.-Después de las siguientes lineas:

    ‘{gift_message}’ => $order->gift_message,
    ‘{message}’ => $message,
    ‘{order_id}’ => $order->id,
    ******************************************************************************
    Añadir lo siguiente:
    ‘{fechadeentrega}’ => $fechadeentrega

    ¡¡OJO CON LAS COMAS DEL FINAL!!

    Ahora ya por último solo debemos modificar la traducción del template de los emails que se envían y añadir {fechadeentrega}

    • dwalins

      Genial! sin duda a más de uno le va a venir de perlas esta modificación.

      Muchas gracias 😀

  21. Arturo

    Cuando instalo la segunda versión del módulo, no aparece en la lista de módulos. ¿A que se puede deber esto?

    • dwalins

      Hola Arturo,

      ¿Habias desinstalado la versión anterior? Ten en cuenta que no es una actualización sino un modulo diferente (aunque se llame igual y haga casi lo mismo) pero reutilizando la base con lo cual te recomendaria este paso antes de nada.
      Por otra parte hay una cosa que pasa a veces y que te hace buscar y buscar cuando realmente es una tonteria; fijate que en la lista de modulos justo arriba hay unos filtros, asegurate de que te muestra todos porque algunas veces se queda en activos o inactivos y por lo tanto no aparecen todos los modulos aunque uses el buscador, a mi me ha pasado un monton de veces!!

      Un saludo

    • Arturo

      Hola Dawlins, gracias por tu respuesta.
      Aún no logro solucionarlo, me aparece que el módulo ha sido agregado satisfactoriamente, sin embargo por más que lo busco no lo encuentro en módulos (Activados y desactivados, y todos los autores)

      ¿A que puede deberse esto? Con el primer módulo no hubo problema, pero con éste último, si.

    • dwalins

      Hola Arturo,
      Si tenias instalado el anterior y has ido a instalar este seguramente esté creandose nu conflicto ya que son el mismo modulo realmente. Prueba lo siguiente, desde un gestor de archivos elimina la carpeta entera del modulo que la encontraras en modulos/seleccionarentrega y una vez hagas eso instalas la versión nueva

      Prueba y me dices

      Un saludo

  22. salonsoweb

    Acabo de toparme con este módulo y me sirve genial como base, aunque la tienda que estoy trabajando también tiene el OPC activo. Aún no me he puesto a fondo, pero quizá tirando por una acción en el orderOpcController.php que se llame vía ajax como la actualización del mensaje del pedido??

    Mañana me pondré con ello a ver si lo saco, pero igual te viene bien la pista (o igual ya has pasado por ahí y voy de listo jajaja)

    Gracias en cualquier caso por el módulo!

    • dwalins

      Hola!
      Gracias por el aporte, si te digo la verdad aun estoy viendo una solución que me lleve a tener que retocar lo menos posible para que sea todo lo generico que pueda y no tener un par de versiones dependiendo del tipo de proceso de compra que se tenga configurado. ¿Tu idea seria tirando de un override? Si no aparece otra cosa la mejor alternativa sin duda seria usar ajax

      Yo antes de mañana dudo que me pueda poner a mirarlo a fondo por lo que si avanzas algo o te atascas pasate por aqui a ver si le podemos encontrar solucion

      Un saludo

  23. salonsoweb

    Hola dwalins!

    Sí, sería tirando de override. Echando un vistazo al order-opc.js encontré cómo se actualiza el mensaje del pedido por ajax, llamando al orderOpcController (función bindInputs()).

    Supongo que tiraré por ahí, añadiendo un botón a tu tpl para lanzar la orden de guardado (en mi caso necesito 2 fechas en lugar de 1 y controlarlas con la fecha de disponibilidad de los productos).

    Al final del día vuelvo a pasarme por aquí y te cuento cómo avanza el experimento 😉

    • dwalins

      Hola!
      Yo queria evitar poner un botón a toda costa porque la gente mucha veces no los ve y al final se queda la fecha sin guardar, pero visto lo visto es posible que sea la única opción «normal».
      Si es poniendo un botón no hace falta que te vayas al orderOpcController, el modulo se carga bien a la hora de mostrarse con lo cual solo habria que cambiar el hook de la acción por el botón, podrias hacerlo dentro del modulo en classes/Funciones.php y de esa forma se queda todo empaquetado dentro del modulo sin overrides y sin nada, asi te quitas el problema de que desactives los overrides desde el panel y luego te vuelvas loco buscando que es lo que pasa.

      Ya nos dirás cuando avances a ver como va 😀

    • salonsoweb

      Puessss, te he leído tarde! jeje

      Ayer al final no me puse y he empezado esta mañana con el override y ha funcionado a la perfección. No es lo más elegante ya que he tenido que hacer el override del orderOpcController.php para el método init. Simplemente añadir un nuevo method al case (línea 52 aprox).

      Y después en el order-opc.js (o en otro js que podría incluir el módulo), una petición ajax del mismo tipo que se usa para lanzar la orden de guardado.

      Yo lo he puesto en el onclick de un botón porque tengo que almacenar 2 campos más además de la fecha, pero en tu caso lo puedes poner en el blur o el change del campo fecha y que se vaya refrescando «al vuelo» cuando se modifica.

      Espero que te haya servido de pista para seguirlo, porque a mi tu módulo me ha venido genial como base.

      ¡muchas gracias! (Y si necesitas que te comente algo más de lo que haya hecho me cuentas!)

      Yo voy a seguirme con las fechas de disponibilidad…

    • dwalins

      Hola!
      Muchas gracias por la pista 😀 más de uno seguro que lo agradece si está en tu misma situacion! Cuando se modifica sin duda sería la opción más comoda para asegurarte que nadie se olvida de guardar

      Un saludo

  24. Nacho

    Hola,

    Podeis dar alguna pista más de como implementarlo en OPC, porque me interesa mucho y no se por donde meterle mano

    Thanks!

    • dwalins

      Hola Nacho,

      La idea sería si usas OPC realizar la acción en el momento en el que cambia el valor de la fecha. Para ello lo que habria que hacer seria lanzar una llamada a una función que inserte el dato usando ajax para que no se recargue la página. ¿Te manejas con ajax?

      Un saludo

    • Nacho

      La verdad es que no me manejo con Ajax, con PHP si, pero con ajax nada y con los hooks de presta a veces me pierdo un poco.

      No se si me podéis dar alguna pista un poco más concreta.

      Thanks

  25. Daniel

    Excelente modulo, me funciono en mi versión de prueba con el template default, pero al intentar subir a producción y activarlo en módulos, no me muestra ningún producto en la pagina de inicio. Alguna solución?. Saludos

    • Daniel

      Fe de errata: tenia un error en el xml con el

      gracias!

    • dwalins

      Hola Daniel!

      Me alegra que haya sido de tan facil solución y que el modulo cumpla con lo que ibas buscando.

      Un saludo

  26. Daniel

    Nuevamente por aca, cuando activo el modulo, me desaparece los productos en el frontoffice index 🙁 alguien le ha pasado esto?

    • dwalins

      Hola Daniel,

      ¿Te aparece algún error cuando desaparecen los productos? ¿Solo desaparecen en el index?

      Un saludo

  27. Dani

    Hola! he visto que en la introducción dices que da problemas en el OPC pero yo lo tengo instalado así en una tienda online y va de fábula, funciona bien. Quiero agradecer tu apoyo a las personas que como yo no tenemos tu base de conocimiento, gracias de verdad.

    • dwalins

      Hola Dani,
      Me alegra escuchar que te ha funcionado y la verdad que me intriga que te haya funcionado con el OPC, ¿esa tienda usa el tema por defecto o alguno especialmente diseñado?

      Un saludo

  28. Álvaro

    Hola, tengo dos cuestiones
    ¿Qué valor hay que poner en la configuración en el campo «Configuration value»?
    He puesto un valor aleatorio en ese campo y a la hora de seleccionar la fecha me sale los tres días disponibles pero el del medio se ve en blanco

    • dwalins

      Hola Álvaro,
      Ahora mismo la configuración no hace absolutamente nada, empecé a preparar esa parte pero quise compartirlo mientras tanto por si alguien lo necesitaba. Asi que lo puedes dejar sin ningún valor que no tiene efecto.
      Lo otro que comentas si es mas raro, voy a echarle un vistazo a ver si veo algo raro que se haya pasado por alto

    • Joel

      Hola Roberto,

      Me pasa lo mismo que a Alvaro, en 1.7.6.4, aqui te dejo pantalla http://prntscr.com/rzh57u
      ¿Cómo hago para agregar más dias? y ¿dónde quito la limitante de sabado y domingo ya que es una floreria y entregan todos los dias?
      Felicidades, muy buen trabajo.

    • dwalins

      Hola Joel,
      Podrias inspeccionar el elemento y decirme si en el select el dia que te aparece en blanco incluye algún valor?
      Para los cambios que quieres puedes hacerlo en el archivo seleccionarentrega.php y en views/templates/front/fechaentrega.tpl

      Un saludo

    • Joel

      El código se ve bien … http://prntscr.com/s3ofv4 … pero el valor de «tomorrow» no lo está generando … por otro lado, estoy en CST – 5, dónde pongo ese parámetro?

      Agradezco tu apoyo.

    • dwalins

      Hola Joel,

      Prueba una cosa, dentro del archivo seleccionarentrega.php elimina la linea 111, la que dice setlocale(LC_ALL, ‘es_ES’); a ver si eso hace alguna diferencia

      Un saludo

    • Anxo

      Tengo el mismo fallo, me aparece uno de los días en blanco, pero no es el del medio, es el miércoles… hoy marte no me aparece el 1º, ayer no me aparecía el 2º…
      Conseguisteis solucionarlo?
      Un saludo

  29. Adriana

    Buenos días Dwalins,
    Felicidades por el módulo, muy buen trabajo! Lo hemos instalado y realizado una compra a posterior pero en detalles de pedido nos sale la fecha de entrega en blanco, no se ha guardado la selección hecha por el cliente.
    Cómo podemos solucionarlo?

    Muchas gracias!

    Saludos

    • dwalins

      Buenos dias Adriana,
      ¿Que versión estais usando? ¿Puedes revisar si la información se ha guardado en la base de datos? Echa un vistazo a la tabla fecha_entrega a ver si está ahi almacenada la información

      Un saludo

    • Adriana

      muchas gracias por tu respuesta tan rápida!
      Estamos usando prestashop 1.7.5.2.
      En la tabla indicada sí está la información guardada, la seleccionada es la segunda, id_cart=60:
      delivery_date id_deliverydate id_order id_cart
      jueves 16 de abril 11:00 – 13:00 4 73
      jueves 16 de abril 13:00 – 15:00 5 60

      Gracias!

    • dwalins

      Es extraño que no te esté funcionando si guarda la fecha correctamente. Lo unico que falta del proceso es recuperar la fecha y asignarla al template. Revisa seleccionarfechaentrega.php y la funcion hookDisplayInvoice en la linea 151, antes de asignarlo a smarty deberias poder ver el valor recuperado. Si no es asi revisar el archivo Funciones.php dentro de classes y cambia la linea 64 por $sql = ‘SELECT delivery_date FROM `’._DB_PREFIX_.’fecha_entrega` WHERE id_order = ‘. $id_order;

    • Adriana

      Hola de nuevo,
      He revisado seleccionarfechaentrega.php y en la linea 151 encuentro el código $helper->submit_action = ‘submit’.$this->name; de la función displayForm(), la función hookDisplayInvoice la encuentro al final, puede ser?
      Esta función veo que recoge la información según id_order pero en la tabla fecha_entrega, este valor esta en nulo, solo se me guarda la fecha y hora seleccionada y el id_cart.
      Puedo cambiar este parametro para que recoga la información según id_cart, tanto en la función hookDisplayInvoice cómo en la getFechaEntrega() de funciones?
      Siento molestarte tanto, no domino mucho php… en caso que lo cambie, vuelvo a comprimir, desinstalo el módulo de mi BO y vuelvo a instalar con el nuevo zip?
      Muchísimas gracias!

    • dwalins

      Hola Adriana,
      Si podia estar mas abajo, depende de como lo trate al descargarlo pero esa es la funcion. Que el id_order este vacio es un problema, ¿el pedido está completado? Puedes usar id_cart, pero ten mucho cuidado de verificar que el pedido esta procesado, porque al usarlo se estaria saltando un paso de confirmación ya que el carrito existe aunque no exista pedido. Deberias poder hacer el cambio directamente sin necesidad de volver a instalar el zip, ya que estas usando el mismo hook, simplemente cambiando la funcionalidad y recargando la pagina deberia funcionarte. ¿Tu tienda usa algun otro modulo que modifique el comportamiento natural de los pedidos?

      Un saludo

    • Adriana

      Hola Dwalins, no he encontrado la solución para que me grave el id_order en la tabla fecha_entrega pero para salir del paso he preparado una consulta sql para mostrar la relación entre la fecha seleccionada y el pedido. Con esto nos vale!!
      Muchas gracias de nuevo y un saludo!

  30. Esteban

    Hola Dwalins. Me encontré hace unos días con el módulo y me parece excelente, pero no puedo lograr que funcione. Estoy utilizando prestashop 1.7.5 en mi tienda, instalo el módulo y se ve, pero al seleccionar fecha y completar el pedido, no se guardan en mi base de datos. Podrías ayudarme a encontrar el problema? Gracias!

  31. walter gimenez

    Hola , te agradesco tu modulo ,funciona bien y estoy viendo de achicar la cantidad de horas que sepueden selecionar para dejarlo en 3 tramos de 4 hs cada uno.
    gracias

  32. Fran

    Muchas gracias por tu aportación a la comunidad, funciona perfectamente y me has salvado la vida. Que dios te bendiga con 1M de Bitcoins.

  33. Juanlu

    Hola, acabamos de adquirir el módulo para nuestra tienda de pruebas en prestashop 1.7.5 y nos hemos dado cuenta de que no almacena nada en base de datos… habéis hecho algún tipo de corrección?

    • dwalins

      Hola Juanlu,

      Está probado unicamente hasta la version 1.7. Teoricamente debería funcionar pero no he visto que cambios han realizado en esta nueva versión que pueda estar afectando. ¿da algun tipo de error o simplemente no guarda nada?

      Un saludo

  34. javier

    buenas noches! excelente el módulo, es posible cargar fechas especificas
    de entrada que queden fijas. Suponte sólo 10/12 , otro 15/12 y otro 25/12,
    desde el tpl cómo sería?! un millón de gracias, excelente módulo

  35. Anxo

    Espectacular el módulo, muchas gracias por tu aporte!!

    Aunque tengo un problema al activar el módulo… me inhabilita los métodos de pago… impidiendo cerrar la compra…
    si deshabilito el módulo si me funcionan los métodos… pero si no me pone «Please wait, loading additional payment methods. Desafortunadamente, no hay métodos de pago disponibles.»

    Posible motivo?? muchas gracias

    • dwalins

      Hola Anxo,

      En un principio no debería interferir con ningun otro modulo, especialmente con los genericos de la sección de pago, ¿estás usando alguna versión especial?

      Un saludo

    • Anxo

      Estoy usando prestashop 1.7.7.1
      Los métodos de pago son los por defecto: por transferencia, prestashop checkout y el único que metí es un modulo de Bizum… pero da error con todos por separado..

      Un saludo y gracias por responder

  36. Marieta

    Hola, me ha encantado encontrar tu página y creo que me va a venir muy bien tu módulo para seleccionar la entrega. Lo he instalado pero cuando le he dado a configurar me ha salido un cuadradito que dice configuration value. Y qué se pone ahí?
    Quedo a la espera
    Muchísimas gracias
    Marieta

  37. Marieta

    Hola Dwalins, ya he visto la respuesta. Muchas gracias.
    «Ahora mismo la configuración no hace absolutamente nada, empecé a preparar esa parte pero quise compartirlo mientras tanto por si alguien lo necesitaba. Asi que lo puedes dejar sin ningún valor que no tiene efecto.
    Lo otro que comentas si es mas raro, voy a echarle un vistazo a ver si veo algo raro que se haya pasado por alto»

  38. marieta

    Soy yo otra vez. Utilizo presta 1.7.1 y desafortunadamente lo he tenido que desactivar porque me sale error 500, qué pena

  39. Paul

    Hola amigo, gran trabajo.
    Mi cuestión es que quisiera saber si es posible que de algún modo después de cierta hora me ponga un recargo al precio original, me explico mejor, quisiera que los productos de mi tienda subieran el precio en 10% después de medianoche hasta las 5am. Será muy complicado?

  40. Daniel

    Buenas,

    Tu modulo podría encajar en lo que estoy trabajando, mi empresa es de desayunos a domicilio por que el cliente debe de seleccionar las hora y dia de entrega, esos días previamente habilitados por mi y que cuando el cliente seleccionar una de las opciones de dia y hora de entra esa ya no esté disponible para el siguiente cliente. Crees que puedo adaptar tu modulo?

  41. SERGIO

    Hola,

    En primer darte las gracias por el módulo puesto que es de gran utilidad. Viendo las respuestas algunos comentarios he conseguido adaptar un poco el módulo a mis necesidades (días de envío, número de días visibles y franjas horarias), pero tengo una duda que a ver si me podéis ayudar. Necesito que el mismo día que se realiza el pedido esté operativo para el envío pero las franjas horarias disponibles para el mismo empiecen un tiempo determinado después de la hora en que se realiza el pedido (1 hora, por ejemplo). Por ejemplo:

    Yo realizo el pedido hoy, miércoles 5 de mayo de 2021, a las 10’00 de la mañana. Pues en la fecha de entrega me aparezca el día de hoy y la hora de entrega sea a partir de una hora después, en este caso de ejemplo, que la primera hora disponible para elegir sea a las 11’00.

    Muchas gracias de antemano y un saludo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *