El sitio web de pedidos
Lo que el sitio web hace por los clientes: sus páginas, el menú y el creador de comidas, el carrito y el pago, las cocinas y las zonas de reparto, el seguimiento de pedidos, las cuentas y las recompensas, las etiquetas de analítica y los buscadores.
Para el paquete Full Stack
Páginas
Cada página existe en inglés en /en y en árabe en /ar. Una ruta sin idioma va a /en.
| Ruta | Qué muestra |
|---|---|
/en | La página de inicio: nueve secciones creadas en el editor de la página de inicio del panel, desde la portada y las categorías hasta los platos populares, el combo, el creador de comidas, la entrega, las recompensas y las preguntas. |
/en/shop | El menú, con controles de búsqueda, categoría, dieta y orden que se guardan en la dirección, así que cada vista se puede compartir. Un plato que no se puede pedir en este momento sigue visible y lo indica. |
/en/categories | Las categorías del menú. |
/en/products/<slug> | Un plato: galería, tamaño y extras con el precio en el botón, un campo de instrucciones, cantidad de 1 a 10, ingredientes, alérgenos, reseñas y platos relacionados. El combo tiene su propia página en la misma dirección, con sus opciones y sus suplementos. |
/en/cart | El carrito, con un código promocional, entrega o recogida, la dirección de entrega, una fila de sugerencias y un total que calcula la API. |
/en/checkout | Contacto, entrega y pago en una sola página junto al resumen del pedido. Abierto a invitados. |
/en/order-confirmation/<number> | El pedido que se acaba de hacer, siguiéndolo desde la cocina hasta la puerta. |
/en/track-order | Seguimiento del pedido por número de pedido y correo, sin cuenta. |
/en/locations | Las cocinas: una comprobación del código postal para la entrega o la recogida, si están abiertas y su horario, las zonas de reparto y un mapa. |
/en/about, /en/contact, /en/faq, /en/privacy, /en/terms | Páginas de soporte y legales. Un mensaje del formulario de contacto llega a las notificaciones del panel, para el propietario y los gerentes. |
/en/auth/login, /en/auth/register, /en/auth/forgot-password, /en/auth/reset-password | Inicio de sesión, registro y restablecimiento de contraseña para los clientes. |
/en/account | El área con sesión iniciada: un resumen con los puntos de recompensa, los pedidos y su detalle con opción de volver a pedir, las direcciones guardadas, el perfil, el seguimiento de pedidos y los platos guardados. |
El menú, los combos y el creador de comidas
- El menú de demostración tiene 64 platos en ocho categorías, cada uno con textos en inglés y en árabe, imágenes, opciones, alérgenos y etiquetas de dieta. El personal lo edita todo en el panel.
- Las opciones de un plato son grupos de elecciones, como un tamaño o unos extras, cada una con su propio cambio de precio. El precio del botón sigue a las elecciones.
- El combo es un principal, un acompañamiento y una bebida por un solo precio,
$19.99en la demo, con un suplemento por algunos cambios. El creador de comidas de la página de inicio elige los tres y abre el combo con esa elección. - Un plato que el personal marca como no disponible, o uno cuyo stock controlado se agota, sigue en el menú pero no se puede añadir.
Cocinas, entrega y recogida
- Cada pedido lo cocina una cocina. La demo tiene cuatro: Central, Riverside, Uptown y Harbor, cada una con su propio horario, zona horaria, tiempo de preparación y códigos postales de entrega.
- La entrega solo llega a los códigos postales que indica cada cocina; la recogida es en la propia dirección de la cocina. El cliente introduce un código postal, y el sitio web elige una cocina que da servicio a esa zona y está abierta, o le ofrece alternativas.
- Una cocina solo acepta pedidos mientras está abierta. La carga de datos inicia el restaurante con un reloj de demostración que mantiene todas las cocinas a las 20:55, para que en la demo se pueda pedir a cualquier hora; el personal lo cambia al reloj real en Settings, Restaurant.
- El tiempo estimado es el tiempo de preparación de la cocina más 5 a 15 minutos para la entrega, y más 0 a 10 para la recogida.
- El mapa de la página de ubicaciones se dibuja en código a partir del punto en el mapa de cada cocina, y no necesita ningún servicio de mapas.
Carrito y pago
- El carrito de un invitado vive en el navegador. El carrito de un cliente con sesión iniciada se guarda en el servidor, y el carrito de invitado se fusiona con él al iniciar sesión.
- Cada total, en el carrito y en el pago, lo calcula la API a partir de su propio menú y sus ajustes, así que lo que ve el cliente es lo que se cobra. Si un precio cambió o un plato dejó de estar disponible desde que se llenó el carrito, el pago muestra el cambio y pide al cliente que lo acepte.
- Tarifas en la demo: entrega
$2.99, recogida gratuita y un mínimo de entrega de$10.00. El personal las cambia en Settings, Restaurant. - El código promocional
TASTE10descuenta un 10% de los artículos del menú. Los códigos no se combinan con puntos canjeados salvo que el personal lo permita para ese código. - Un invitado paga con un nombre, un correo y un número de teléfono; los datos y la dirección predeterminada de un cliente con sesión iniciada rellenan el formulario.
- El pago se hace en la propia página de Stripe o de PayPal, o con el pago de demostración cuando no hay ningún proveedor configurado. Después de pagar, el cliente vuelve a la página del pedido.
Seguimiento de pedidos
Un pedido pasa por pendiente, confirmado, en preparación y listo, luego en reparto y entregado, o directamente a entregado cuando se recoge. Un invitado lo sigue en /en/track-order con el número de pedido y el correo con el que lo hizo; un cliente lo ve en su cuenta. La cronología se actualiza sola mientras la cocina trabaja. Un número desconocido y un correo incorrecto reciben la misma respuesta, así que el seguimiento no sirve para encontrar pedidos de otras personas.
Cuentas de cliente y recompensas
- Los clientes se registran con un nombre, un correo y una contraseña de al menos 8 caracteres. Solo inician sesión en el sitio web: una cuenta de cliente no puede abrir el panel.
- Recompensas. Un pedido pagado gana un punto por cada dólar de comida después de descuentos, una vez entregado. 100 puntos descuentan
$5.00de un pedido en el pago. La cuenta muestra el saldo y el historial. El personal cambia los dos números en Settings, Restaurant. - Los platos guardados acompañan al cliente de un dispositivo a otro, y un pedido anterior se puede volver a pedir con un clic.
- El restablecimiento de contraseña envía por correo un enlace a la página de restablecimiento del sitio web cuando la API tiene un proveedor de correo configurado. El enlace funciona una vez, durante una hora.
- Reseñas. La página de un plato muestra sus reseñas, la media, el número de reseñas y el desglose por estrellas. El sitio web no tiene formulario para escribir una: la API recibe la reseña de un cliente con sesión iniciada en
POST /api/reviews, y las reseñas de la demo vienen de la carga de datos.
Analítica y píxeles de seguimiento
Hay seis redes conectadas. Activa una poniendo su id en el .env del sitio web y volviendo a construirlo:
| Variable | Red |
|---|---|
NEXT_PUBLIC_GTM_ID | Google Tag Manager |
NEXT_PUBLIC_GA4_MEASUREMENT_ID | Google Analytics 4 |
NEXT_PUBLIC_META_PIXEL_ID | Facebook e Instagram |
NEXT_PUBLIC_TIKTOK_PIXEL_ID | TikTok |
NEXT_PUBLIC_SNAPCHAT_PIXEL_ID | Snapchat |
NEXT_PUBLIC_PINTEREST_TAG_ID |
- Un id en blanco no carga ningún script. Si configuras solo uno, configura
NEXT_PUBLIC_GTM_ID: Tag Manager puede cargar los demás. Si GA4 funciona dentro de Tag Manager, deja en blanco el id de GA4 o cada sesión se contará dos veces. - El sitio web informa de
page_view,view_item,add_to_cart,remove_from_cart,add_to_wishlist,view_cart,begin_checkout,purchase,search,sign_upylogin, con los platos, el valor y la moneda (NEXT_PUBLIC_ANALYTICS_CURRENCY,USDpor defecto). - Las etiquetas se cargan en cuanto se carga la página. Si vendes en la UE o en el Reino Unido, pon antes un banner de consentimiento delante de ellas.
Buscadores
Cada página define su propio título, su descripción y su dirección canónica, con el otro idioma como alternativa. Las páginas de carrito, pago, cuenta, seguimiento e inicio de sesión están marcadas como noindex. /sitemap.xml incluye cada página pública en los dos idiomas y cada plato publicado, y /robots.txt apunta a él. Configura domain.url en src/config/brand.config.ts con tu dirección real para que ambos la usen.
La versión de demo pública
Incluido con tu compra. Inicia sesión para leerlo o ábrelo en tu descarga.
Cómo se comporta el sitio web en una versión de demo pública y cómo quitar ese código.
Cómo encaja el código del sitio web
Incluido con tu compra. Inicia sesión para leerlo o ábrelo en tu descarga.
La estructura del código y las convenciones que debes mantener al cambiarlo.