Configurar los plazos de entrega y la recogida

Delivery time rules gestiona las estimaciones de entrega, la elección de fecha y hora por parte del cliente, y un selector de recogida o entrega a domicilio. Los responsables de la tienda lo configuran en Settings → POM Tweaks → E-Commerce → Shipping → Delivery time rules. Funciona con el checkout clásico de WooCommerce, incluidos los diseños de checkout de POM Theme, y con el almacenamiento de pedidos HPOS de WooCommerce.

Usa una página de checkout clásica que contenga [woocommerce_checkout]. El selector de fecha y el selector de tipo de entrega no son controles del bloque Checkout. Configura las zonas de envío y los métodos de pago en WooCommerce antes de añadir reglas de entrega.

Añadir un horario

  1. Abre Delivery time rules, selecciona Enable y haz clic en Add new en su repetidor.
  2. Introduce un Rule name y, opcionalmente, una descripción para tu equipo.
  3. Añade los tramos de apertura en cada día de la semana. Introduce el tiempo de preparación en Estimated delivery time y, a continuación, la hora de inicio y de fin. Mantén los tramos dentro del mismo día, en orden cronológico y sin solapamientos.
  4. Deja Slot interval (minutes) vacío para usar el tiempo de preparación en cada tramo horario, o introduce un intervalo independiente. Con First slot starts → Window start plus preparation time, una apertura a las 09:00, una preparación de 30 minutos y un intervalo de 30 minutos generan un primer tramo de 09:30–10:00. Un tramo debe terminar antes de que cierre el tramo de apertura.
  5. Opcionalmente, establece Max order per delivery rule para cada tramo de apertura. El límite se aplica a cada tramo horario; déjalo vacío para no aplicar ningún límite. Cero cierra el tramo.
  6. Configura la selección del cliente, la disponibilidad y las etiquetas tal como se describe a continuación y, después, haz clic en Save.
  7. Ve a WooCommerce → Settings → Shipping → Shipping zones, edita un método de envío y selecciona su Delivery time rule. Selecciona Show fixed times, no ranges si quieres horas de llegada individuales en lugar de rangos de tramos.
  8. Repite el proceso para otros métodos de envío. Cada instancia puede usar una regla distinta. Usa Default delivery rule en POM Tweaks si los métodos sin una asignación explícita deben compartir un horario.

Conserva el identificador de una regla al ajustar sus horas: los métodos de envío hacen referencia a esa regla. Eliminar una regla también elimina su horario de los métodos que siguen haciendo referencia a ella. Una regla predeterminada se aplica tanto a los carritos solo virtuales como a los métodos de envío sin asignar. Una lista opcional de Product category IDs separada por comas limita una regla a los carritos que contienen un producto de una de esas categorías.

Elegir cómo seleccionan la hora los clientes

Sin Allow customers to choose delivery date / time, la regla muestra una hora de llegada estimada. El servidor recalcula esa estimación cuando se crea el pedido. Las estimaciones no reservan un tramo ni impiden el checkout cuando no hay ninguna estimación disponible.

Con la selección del cliente habilitada, elige entre:

  • Same day: elige una de las horas restantes de hoy, teniendo en cuenta el tiempo de preparación.
  • Same day and subsequent days: elige la primera hora disponible de hoy o una fecha y hora personalizadas.
  • Only days after: selecciona una fecha a partir del inicio de disponibilidad configurado. Sin tiempo de antelación, las horas restantes de hoy también están disponibles.

El calendario carga las horas de la fecha seleccionada. Los días de la semana sin tramos de apertura y las fechas en Not available dates no tienen horas seleccionables. First available date number y First date period excluyen desde hoy hasta el desfase especificado para los horarios cuyo primer tramo incluye el tiempo de preparación. Los horarios que usan At window start (legacy schedule) permiten la propia fecha del desfase. Por ejemplo, un desfase de un día empieza pasado mañana para los primeros y mañana para los segundos.

Allow checkout without a selected date permite una selección de fecha vacía; no permite una fecha bloqueada ni una hora no válida. Choose the first available time automatically oculta el desplegable de hora manteniendo las reglas de fecha. Accept same-day orders only during opening hours también restringe el pedido a un tramo de apertura abierto; úsalo cuando la tienda no deba aceptar pedidos antes de abrir.

Configura Text before date, Timepicker label, Calendar label, Calendar description, Prepend of the first option y Unavailable message para adaptarlos a tu proceso de entrega. El campo de fecha usa el control de fecha nativo del navegador y su formato. Todas las elecciones de hora y las fechas guardadas usan la zona horaria de WordPress de la tienda, incluso cuando el dispositivo del cliente está en otra zona horaria.

La capacidad se vuelve a comprobar al enviar el checkout. Un pedido anterior puede llenar un tramo mientras un cliente está completando el checkout. Los límites mantienen un recuento compartido entre las reglas de entrega del mismo tramo horario, incluidos los pedidos históricos; los estados de los pedidos no liberan esa capacidad automáticamente. El tipo de entrega y los costes de envío son independientes de la capacidad de los tramos.

Ofrecer recogida y entrega a domicilio

  1. Selecciona Enable delivery method selector.
  2. Establece el título del selector, las etiquetas de recogida y entrega a domicilio, y Default delivery type.
  3. Usa Hide local pickup u Hide home delivery para restringir las opciones. Deja disponible al menos un tipo.
  4. Local pickup method IDs contiene inicialmente local_pickup,pickup_location. Añade el ID de método de otra extensión, sin su número de instancia, si ese método representa la recogida.
  5. Opcionalmente, habilita Hide native address fields for pickup. El nombre, el correo electrónico, el teléfono y otros campos personalizados del checkout conservan su propia configuración. Cambiar a entrega a domicilio restaura los requisitos de dirección.
  6. Opcionalmente, introduce Collection points, uno por línea. Un cliente de recogida debe elegir una entrada de esta lista. Estas etiquetas no crean métodos de envío ni cambian su disponibilidad o sus precios.
  7. Haz clic en Save y, a continuación, comprueba ambas opciones en el checkout.

El selector filtra las tarifas que WooCommerce pone realmente a disposición de cada paquete. La recogida ofrece solo los métodos de recogida configurados; la entrega a domicilio los excluye. Una selección sin tarifa disponible no puede completarse. Configura un método coincidente en cada zona de envío relevante.

Si Order from table está habilitado, el selector también ofrece ese tipo. Los pedidos de mesa usan su método de mesa y el código de mesa obligatorio, sin una selección de fecha de entrega.

Verificar y revisar pedidos

Usa un producto de pruebas para verificar la primera hora disponible de hoy, una hora posterior, una fecha futura, una fecha bloqueada y cada método de recogida o entrega. Si la tienda divide los envíos en paquetes, elige fechas separadas y confirma que ambas se conservan. Verifica también el último tramo cercano a la hora de cierre y cualquier límite de capacidad.

WooCommerce → Orders incluye una columna Delivery date. Al abrir un pedido se muestra su información de entrega, incluidas las fechas guardadas históricamente. Los correos de pedido en proceso incluyen la fecha de entrega; los detalles de recogida o entrega a domicilio y el punto de recogida aparecen en los correos de Procesando y En espera. Se admiten correos de texto plano. Los paquetes de envío múltiples conservan fechas de entrega separadas.

Si no aparece ningún calendario, confirma que el módulo está habilitado, que el checkout es clásico, que el método de envío elegido tiene una regla existente o una regla predeterminada, que las restricciones de categoría coinciden con el carrito y que la selección de fecha del cliente está habilitada. Si una fecha no tiene horas, comprueba los tramos de los días de la semana, el tiempo de preparación, los rangos bloqueados y la primera fecha disponible. Una hora no puede terminar después de la hora de cierre.

Deshabilitar todo el módulo detiene sus controles y cálculos de checkout. Los datos de los pedidos existentes se conservan. Las tarifas de envío, los costes y la configuración de las zonas siguen gestionados por WooCommerce.