MERSIN HATAY RESTAURANT · 2025 – ACTUALIDAD
Mersin Hatay Restaurant
La web en tres idiomas de un restaurante de cocina de Hatay en Mersin. Una carta con precios e información sobre alérgenos, blog, preguntas frecuentes y contacto; la carta y los precios se gestionan desde un panel de administración propio.
Mi función: Diseño, desarrollo y mantenimiento: toda la responsabilidad técnica es mía.
- turco, inglés, ruso
- 3 idiomas
- platos en la carta
- 200+
- ley turca que cumple la web
- 4207
- tests automatizados
- ~320
El problema
Entre los clientes del restaurante hay turistas que no hablan turco y visitantes de habla rusa. La carta tenía que estar completa en cada idioma, y cada idioma debía poder encontrarse en los buscadores como una página propia.
Los precios cambian en la carta QR del sistema de caja; actualizarlos a mano uno por uno en la web lleva tiempo y da lugar a errores. Además, en Turquía la publicidad de bebidas alcohólicas está limitada por la ley n.º 4207.
Arquitectura
Web
- Tailwind CSS
TR · EN · RU
Panel de administración
- Tailwind CSS
Carta, precios y blog
Laravel 13
- Laravel
Blade y Eloquent
Base de datos
- PostgreSQL
Carta, contenido y cola
Carta QR
Importación de precios desde la caja
Las traducciones están en la misma fila, en una columna aparte por idioma; para el orden alfabético turco, la base de datos usa una collation ICU.
Lo que he construido
Carta en tres idiomas
Categorías, platos, raciones y extras en turco, inglés y ruso; si falta una traducción al ruso, se muestra el campo en inglés.
Precios y alérgenos
Precio, información sobre alérgenos, raciones y extras en cada plato.
Importación de precios desde la carta QR
Los precios de la carta QR del sistema de caja se asocian a los productos en el panel, se revisan antes y se aplican en la web en una sola operación.
SEO multilingüe
Cada idioma en su propia dirección (/en, /ru); etiquetas hreflang, un sitemap dinámico con variantes de idioma y datos schema.org de tipo Restaurant.
Formulario de contacto con protección antispam
Protección por capas contra bots con Cloudflare Turnstile, un control de tiempo en el formulario y limitación de envíos.
Panel de administración
Categorías de la carta, platos, imágenes, opciones y entradas del blog se gestionan en un solo lugar.
Problemas difíciles que he resuelto
- 1
Sincronizar precios con el sistema de caja
Escribí un flujo de importación que lee la carta QR de la caja y asocia sus líneas a los platos de la web: sugerencias, asociación manual, vista previa y aplicación en una sola transacción de base de datos.
- 2
Cumplir la prohibición de publicidad del alcohol
Reduje los textos sobre bebidas alcohólicas a pura información de producto según la ley n.º 4207, añadí un aviso de +18 y aseguré la regla con un test automatizado.
- 3
Un tercer idioma en producción
Añadí el ruso con la web en funcionamiento: 7 categorías, 212 platos, 594 nombres de opciones, 10 preguntas frecuentes y 10 entradas del blog. Las traducciones que faltan recurren al inglés, para que ninguna página quede vacía.
- 4
Sin sistema de reservas, a propósito
El restaurante tiene tanta afluencia que ningún sistema de reservas digital puede llevar el control de la sala sin errores. Por eso eliminé la reserva online y dirijo a los clientes al teléfono. Una etiqueta sobre los botones de llamada muestra, en la hora local del restaurante, si está abierto ahora y cuándo vuelve a abrir.
Tecnologías
- Laravel
- PHP
- PostgreSQL
- Tailwind CSS
- Vite
- GitHub Actions
Servicios relacionados
¿Está construyendo un sistema similar? Podemos trabajar juntos desde la arquitectura hasta la puesta en producción.
Contactar