La integración con WooCommerce requería conocer sus hooks y trabajar sobre el checkout.
Usamos la clase DateTime de PHP sobre función recursiva para determinar la viabilidad de entrega en fechas futuras.
Hay productos que tienen un tiempo de producción mayor y, si están en el carrito, producen cambios sobre la viabilidad de entrega.
Una pastelería que ofrece sus productos frescos online necesitaba en su nuevo sitio web un sistema para:
- Poder ofrecer sus productos frescos en toda España peninsular.
- Permitir a los compradores que programen la fecha en la que quieren recibirlo.
- Que el sistema tenga en cuenta la caducidad del producto respecto a su fecha de fabricación y el tiempo de expedición respecto a la distancia a la fábrica. Decidir en base a esto si se puede programar el envío para una fecha determinada.
Es decir, un producto que caduca en 4 días no permite la programación para una fecha si no se puede fabricar en los 3 días anteriores a su entrega (por distancia, por ser domingo, fin de semana o día festivo).
Por ejemplo una tarta no puede ser programada para entregar el martes 13 de Octubre de 2020 porque el lunes 12 es festivo, el 11 es domingo, el 10 es sábado y por tanto la fabricación y envío se pueden realizar como muy pronto el viernes 9. - Además, tener en cuenta que algunos productos requieren de un tiempo mayor de elaboración en la fábrica, por lo que la fábrica necesitaría 2 días laborables seguidos para procesarlo y luego enviarlo.
- Adicionalmente, para productos que no precisan elaboración previa, permitir la posibilidad de hacer pedidos particularmente rápidos, con entrega en 3 horas en el centro de la ciudad cercana al punto de fabricación.
Una vez ordenadas todas estas ideas, capturados todos los requisitos, trabajamos para hacer un desarrollo que permita ajustarse a todas estas características.
Desarrollamos un nuevo plugin que crea un nuevo método de envio sobre la plataforma WooCommece que:
- Incluye un calendario para permitir al comprador seleccionar la fecha de entrega.
- En el calendario, las fechas que no cumplen los requisitos para que se pueda entregar (fin de semana, festivos o días en los que el producto no llegaría en buenas condiciones al destino seleccionado) aparecen inactivas, no pueden ser seleccionadas.
Por usabilidad, preferimos esta solución, que permite al cliente ser consciente de la fecha de entrega antes de realizar la compra, frente a un mensaje emergente o una notificación durante o después del proceso. - Según el destino indicado, el cliente puede seleccionar distintas formas de entrega:
- Urgente: en menos de 3 horas, solo aparece si está en el centro de la ciudad cercana a la fábrica, si el producto no requiere elaboración especial y el servicio de entrega está dentro de horario.
- En un día: si realiza el pedido por la mañana, se entrega por la tarde; si lo hace por la tarde, se entrega a la mañana siguiente. Solo está disponible en el área metropolitana cercana a la fábrica y si el producto no requiere una elaboración de más de 1 día.
- Estándar: en 24-48h, disponible en toda la península, permite seleccionar la fecha de entrega dentro del calendario de fechas.
Este plugin se integra con el sistema de comercio online que ya tienen, WooCommerce sobre WordPress, de modo que con un poco de formación específica el equipo se adaptó rápidamente a la nueva funcionalidad.
El usuario puede seleccionar la fecha de entrega mediante un calendario al realizar un pedido
Para los envíos rápidos, puede además seleccionar el rango de horas.
El tiempo de envío depende del lugar de entrega, y puede llegar a ser de menos de 3 horas.